티스토리 뷰

Core Image tutorial Part. 4

 

(Ray wenderlich - Core Image tutorial: Getting Started 번역)

 

 

4편 시작)

 

Saving to Photo Album

 

사진 앨범에 저장하기 위해서, AssetsLibrary 프레임워크를 사용(... 하면 안됩니다.)

(+ iOS9 인가 에서 deprecated 되었고, 새롭게 Photos 프레임워크가 등장했고, 작업한 사진을 다시 앨범에 다시 저장하는 기능은 기존 AssetsLibrary 프레임워크에서 제공하였으나, 이제는 프레임워크를 반입하지 않아도 가능합니다. 그러므로 AssetLibrary 부분은 패스~~)

 

알아야 할게 하나 있어요. 그것은 우리가 사진을 앨범에 저장할 때, 몇 초의 시간이 걸릴 수 있고 이 프로세스는 심지어는 앱이 끝난 이후에도 계속될 수 있어요.

 

이것은 문제의 소지가 있어요. 우리가 하나의 앱에서 다른 앱으로 스위칭할 땐, 어떤 일이든지 GPU 는 중단(stop)되기 떄문입니다. 만약 사진이 저장되는 것이 끝나지 않았다면, 그것을 후에 찾으러 갔을 때, 사진이 저장되지 않는 것이죠!! (+ 열심히 필터 적용해서 작업했는데 저장이 안되서 날아가버리는 것은 정말 끔찍해요....)

 

하지만 우리는 언제나 해답을 찾아 왔죠. 해결책은 렌더링에 대한 CPU 기반의 "CIContext" 를 사용하는 것입니다. 디폴트 동작으로는 GPU 를 사용하게 되어 있습니다. 왜냐하면 GPU 가 훨~씬 빠르고, 저장 기능을 추가하기 위해서 필터링 성능을 느리게 한다는 것을 원하지 않거든요. 대신에, 우리는 두번째 "CIContext" 를 이미지를 저장하기 위해서 생성할 예정입니다. 아 참, Software renderer 는 시뮬레이터에서는 제대로 작동하지 않는다는 것을 기억하세요. (+ 실제 디바이스에서 작동해주세요)

 

앱에 새로운버튼을 추가합니다. 새 버튼은 앱에 우리가 현재 수정중인 사진을 선택한 모든 변경사항들과 함께 저장하게 해 줄 것입니다. 스토리보드르 열어 "사진 앨범에 저장" 이라고 이름을 정해주시고, 겹치지 않게 잘 오토레이아웃을 자유롭게 잡아주세용!

 

그리고 그것을 뷰 컨트롤러에 연결하여 "savePhoto(sender:)" 메소드를 만들어줍니다. 지난 번에 했던 것 처럼요. 그리고 다음의 메소드를 구현합니다.

 

 

구현 내용입니다.

 

1. 필터로부터 CIImage 아웃풋을 얻었습니다.

2. 새로운 소프트웨어 기반의 CIContext 를 생성합니다. 이 CIContext 는 CPU renderer 를 사용합니다.

3. CGImage 를 생성합니다.

4. 사진 앨범에 CGImage 를 저장합니다.

 

앱을 실행해보세요. (앗, 실제 디바이스에서 실행해야 합니다. 소프트웨어 렌더링을 사용해야 하거든요 !)

그리고 이제 사진 라이브러리에 "완벽한 이미지" 를 저장할 수 있게 되었어요.

 

 

 

What About Image Metadata ?

 

  잠깐 이미지 메타데이터에 관한 이야기를 나눠보죠. 폰에서 찍은 이미지 파일들은 파일과 관련된 다양한 데이터를 가지고 있어요. 예를들면 'GPS 좌표', '이미지 포맷', '뱡향'이 있겠네요.

 

특히 '방향'은 우리가 유지하고 있어야만 하는 것이에요. UIImage 에서 CIImage 로 로딩하고, CGImage 로 렌더링하고 UIImage 로 다시 변환하는 프로세스는 이미지로부터 메타데이터를 분해하죠. 방향을 보존하기 위해서, 우리는 이것을 기록해야만 하고 그것을 다시 UIImage 생성자로 전달해야만 합니다.

 

뷰컨트롤러에 새로운 프로퍼티를 더하세요.

다음으로, 아래의 것을 "imagePickerController(_: didFinishPickingMediaWithInfoinfo:)" 의 beginImage 를 설정하기 바로 전에 추가합니다:

이 친구는 원래의 이미지 방향을 프로퍼티에 저장할 거에요.

 

마지막으로, imageView 객체에 설정하는 UIImage 를 생성하는 "amountSliderValueChanged" 내의 라인을 고쳐보죠.

 

이제, 만약 여러분이 기본 방향이 아닌 다른 방향으로 사진을 찍는다면, 그 뱡향은 유지될 거에요.

 

 

 

이용 가능한 다른 필터들은 무엇이 있을까요?

다음에 알아보도록 하겠습니다~~~~

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함