[iPhone] 이미지 프로세싱에 관해

No Comments

오랜만에 포스트를 씁니다. 이 것도 아주 예전에 정리하다만 포스트인데… 그냥 링크만이라도 쭉 써봅니다.

 

색에 대한 이해

[명도: 밝기, Brightness] 밝기 정도

[채도: ] 색상의 포함 정도

 

Ref

[1] 색상/채도/명도: http://thgusdldia2.blog.me/140094300141

[2] 픽셀 기반 처리 – (1) 밝기, 명암대비 조절http://kylog.tistory.com/18

[3] RGB <-> HSL http://stackoverflow.com/questions/3017553/converting-from-rgb-to-hsl-with-objective-c https://github.com/alessani/ColorConverter

[4] Brightness without OpenGL call

[5] 이미지프로세싱 – 시작

[6] 주파수 영역에서의 처리 – (6) 주파수 영역에서 이미지 주무르기

[7] 영역 기반 처리 – (3) 영상 선명하게 하기

[8] Color Convert objective-c RGB2HSL and HSL2RGB

[9] 색의 원리

[10] PhotoShop 기능 설명

[11] Image processing- brightness and saturation

[12] How can I change the saturation of an UIImage?

[13] iPhone development: accessing UIColor components

[iPhone Dev] 앱 스토어에 앱 업데이트 내용을 작성할 때, 예전 내용도 함께 써주는 것도 좋은 것 같습니다.

No Comments

저 같은 경우는 앱 개발을 하고 있으니, 주요 앱들의 업데이트 내역은 (최대한) 꼼꼼히 살펴 보려고 합니다.

요즘 나름 잘 나가는 앱들은 보니, 업데이트 내역을 상세히 적고 과거 업데이트 내역까지 모두 기록해주고 있습니다.

(어차피 글자 제약은 없으니…)

그리고 앱 폴더가 생긴 이후, 앱들을 잘 안 지우게 되는데, 사용자가 느끼기에 의미 없는 업데이트가 계속되면 앱을 지우는 경우도 있으니, 신뢰성을 줄 필요도 있는 것 같습니다.

아래 Album Manager의 경우는 제일 하단에 Contact까지 써주는 센서를 ㅋㅋㅋ

[iPhone Dev] RAY WENDERLICH 이 아이폰을 떠나서 안드로이드로 간다고 합니다 ㅜㅜ

2 Comments

Mobile Orchard 가 포트팅을 중단했을 때 만큼의 충격이군요.

Ray Wenderlich 이름은 생소할 수 있어도 그의 블로그 를 가보시면 “아 여기, 날 살려준 글들이 있던 그곳?” 이라는 말이 나올 것입니다.

(자신도 이야기하지만) 글도 잘 쓰고, 꾸준히 튜토리얼 형식으로 깊이있게 또 친절하게 설명해주던 그가 아이폰을 떠나 안드로이드 개발을 하겠다고 합니다.

You can now call me Ray-droid!

Why I’m Ditching iOS and Becoming an Android Developer

 

(최소한 저로써는) 앱 스토어가 하나라서 편하고, 화면 해상도가 (아직은) 두 개라서 좋고, 디바이스도 다양하지 않고, 명확한 C/C++ 스타일의 Objective C가 좋다는 장점들을 완전하게 단점으로 이야기하는 그를 보면, 진정한 Indie 개발자인가라는 생각이 됩니다.

ㅜㅜ 하지만, 한국이면 부산이라도 찾아가 소주 한 잔 기울이면서 “아직은 떠나지 말아줘” 라고 이야기 하고 싶군요.

그는 “라면을 거론하면서 떠났습니다”

We all know that if you’re a true indie developer, all you need is some ramen, a cup of hot water, and a heart bursting with a passion for making apps.

 

개인적인 해석은,

아이폰으로 성공도 했고 (돈과 명예), 애플 앱 스토어의 제약 등도 좀 질려서, 좀 더 자유로운 (그 것이 꼭 안드로이드는 아니더라도) 곳으로 가려는 것같습니다.

“아이폰, 안드로이드, HTML5 모든 것은 “도구” 라고 생각합니다. 자신의 아이디어나 지식을 표현하기 위한 도구요. 그 것이 현재의 상황에서 아이폰이 적합한 것이고, 다른 것이 더 좋거나 필요하면 도구를 바꿀 수 있는 것이겠죠”

[iPhone Dev] Camera+ 팀의 FX 만드는 과정 공개 – 개발자와 디자이너가 밀착해야 하는 이유!

No Comments

Camera+ 는 (이 글을 쓰는 순간에도) 미국 유료 전체 순위 5위에 꾸준히 머물러 있습니다.

Camera+는 기능도 기능이지만 UI가 너무 매력적이어서 자주 거론하고 배울려고 하고 있습니다.

글을 본지는 조금 되었는데, 너무 좋아서 소장하고 있다가 포스팅합니다. ^^;;

 

(특히 iPhone에서는) 개발자와 디자이너가 (또 기획자가) 긴밀하게 개미처럼 소통해야하는지 느끼게 하는 글인 것 같습니다.

(베르나르의 소설 개미에서 개미들은 더듬이를 통해서 생각을 완전 공유한다고 합니다. )

 

Creating a Camera+ effect

이 글은 Camera+를 개발한 팀에서 FX 효과를 어떻게 만들었는지 9단계에 걸친 자세한 설명과 동영상, 코드 예제까지 아주 친절하게 썼습니다.

과연 저렇게 자신들의 노하우를 공개할 수 있을까? 라는 생각이 들게 합니다. 그만큼 자신감이 있고 또 공유를 통한 더 발전을 꾀하기 위해서겠죠.

아래와 같은 멋진 FX를 만드는 과정입니다 (자세한 것은 원문을 보시고 여기는 간단히 정리만 하겠습니다)

 

Step 1: Concept

일반 사진 중에서 멋지게 잘 찍은 (또는 오래되어서 그 자체로 멋진 FX가 가미된) 사진을 선택합니다.

 

Step 2: First draft of the formula

포토샵으로 iPhone의 사진을 이용해서 color, contrast, tone등을 조절하면서 Step1에서 선택한 사진과 유사한 효과를 낼 수 있는 공식을 도출해 봅니다.

 

Step 3: Testing

공식을 만들고 나면 수백 장의 iPhone 사진으로 테스트를 해봅니다. 그리고 결과가 좋지 않으면 다시 Step 2로 돌아갑니다.

 

Step 4: In-app testing

코드로 Draft 버전의 FX code를 만들어서 App 내에서 테스트를 해봅니다.

 

Step 5: Wolfgang creates textures

이 부분에서 저도 좋은 아이디어를 얻었는데요, 포토샷을 이용한 공식 이외에도 이미지 위에 올린 Texture Layer를 만들어 봅니다.

(비디오를 보시면 바로 이해가 가십니다)

 

Step 6: Finalizing the FX formula in Photoshop

Step5의 texture를 적용하면서 포토샵의 공식을 조정해서 최종 본을 만들어 냅니다.

 

Step 7: Karl codes magic

FX로 사용할 코드를 만들어 냅니다.

 

Step 8: Karl optimization

코드 최적화를 통해서 성능 최적화를 합니다.

(이 부분은 사진 관련 앱을 해본 저로써는 정말 동감하는 부분입니다)

 

Step 9: Ship it!

최종으로 앱에 반영하겠죠. ㅜㅜ 예제 코드도 첨부해주는 Camera+에 감사할 따름이죠.

 

[후기]

이와 같은 과정은 디자이너 혼자, 개발자 혼자, 또는 같이라도 긴밀한 협업 없이는 힘들 것입니다.

포토샵으로 공식을 만들고, 수백장의 아이폰 사진으로 테스트하고, 코드로 만들고, 또 테스트하고, Texture를 만들고, 또 공식을 보정하고, 또 테스트하고, 코드를 만들고, 최적화하고…

고, 고, 고,….. 그런 긴 과정에서 하나의 멋진 FX를 만들어내고 있습니다.

Camera+를 보면 딱 짚어서 말하기 힘든 UI의 부드러움과 사용의 편리함을 보면, 그들의 이런 노력과 열정은 앱 전반에 있는 것 같습니다.

(e.g. Indicator 하나를 돌릴 때도 indicator가 작아진 상태에서 커지는 애니메이션을 통해서 indicator가 타나난다든지..)

 

 

 

 

 

 

 

 

[iPhone Dev] Table View를 마지막 셀로 scroll 시키기

No Comments

Table View를 마지막 셀로 scroll 시키기 입니다.

scrollToRowAtIndexPath:atScrollPosition: 으로 아래와 같이 할 수 있겠죠. 개수가 array이니 -1 이라는 부분만 주의하면 될 것입니다.

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:[myTableView numberOfRowsInSection:0] - 1 inSection:0];
[myTableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];

Ref: http://www.iphonedevsdk.com/forum/iphone-sdk-development/10861-scrolltorowatindexpath-problem.html

Older Entries