[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] 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] UIImage에서 bitmap 정보를 가져와서 image processing을 하고 UIImage를 반환 (AloImageProcessing)

No Comments

네.. 제목처럼 해주는 것을 예제로 만들어서 첨부해봤습니다.

greyscale은 image processing의 한 예를 보여준 것이고, UIImage에서 pixcel 정보를 가져와 bitmpa으로 이미지 처리를 하고 다시 UIImage를 반환해주는게 의미를 더 가질 것입니다.

UIImage에서 bitmap을 만들 때, colorspace나 alpha 등의 bitmpa 정보 설정에 삽질을 좀 해서 정리해서 올려봅니다.

AloImageProcessing가 UIImge를 받아서 greysacale을 하고 UIImage를 반환해주는 녀석입니다.

outputImageView.image = [[[imageProcessing setImage:sourceImageView.image] greyscale] image];

-_-;; 요즘 손담비님이 좋아져서 ㅋㅋㅋ 아래와 같이

[Source Code 다운로드]
AloImageProcessing

[iPhone Dev] Simple Image Processing iPhone Library

No Comments

http://code.google.com/p/simple-iphone-image-processing/wiki/Documentation