2014-12-19 1 views
1
에서 다시 압축 이미지없이

나는수정 JPEG는 메타 데이터는 아이폰 OS

CGImageSourceCreateWithData CGImageDestinationCreateWithData

다음

CGImageDestinationAddImageFromSource

를 사용하는 것을 시도하고 있지만, 이것은 원래의 파일에서 썸네일 또는 기타 포함 된 정보를 삭제 . 내가하고 싶은 일은 파일을 읽고, 메타 데이터를 변경하고, 변경된 내용 만 써야합니다. 그러나 나는 그것에서 모두를 읽고, 그것을 다시 돌려 놓기를 위해 정착 할 것이다. 현재 1.2MB 이미지 파일은 추가 데이터가 손실되어 437kB 파일로 변환됩니다.

사용할 수있는 CGImage 이외의 것이 있습니까? iOS API로도이 작업을 수행 할 수 있습니까?

답변

0

내가 찾고 있던 것은 변경을 허용하지만 변경되지 않은 데이터를 유지하는 이미지 파일에 대한 읽기 - 수정 - 쓰기 작업이었습니다. 나는 이것이 iOS에서 가능하지 않다는 연구와 테스트를 통해 결정했습니다. 사용 가능한 가장 가까운 메커니즘은 CGImage 처리이지만 원본 이미지 (예 : 이미지, 축소판, 속성)에서 선택한 정보를 읽고 해당 정보 (이미지, 속성) 중 일부만을 사용하여 새 대상 파일을 만들 수 있습니다. 새 대상 파일에 미리보기 이미지를 포함 할 방법이 없으며 이미지를 다시 압축 할 방법이 없습니다.

0

당신이 직면 한 문제는 메타 데이터의 구조가 사용중인 특정 JPEG 파일 형식에 달려 있다는 것입니다.

CGImageProperties를 살펴 봐야합니다. 특정 파일 형식의 속성도 복사해야합니다.

+0

나는 당신이 말하는 것을 이해하는지 모르겠다. user3344003. 내가 지금하고있는 일은 jpeg 파일을 NSData로 읽는 것, 그로부터 imageSource를 생성 한 다음 imageProperties를 읽고, 수정하고, 그 수정 된 imagePropoerties를 완전히 다시 쓰는 것입니다. 이 프로세스는 파일을 외부에서보고 메타 데이터와 이미지를 볼 때 성공한 것으로 보이지만 파일 크기는 크게 줄어 듭니다. 또한 더 이상 포함 된 미리보기 이미지가 없습니다. –

+0

메타 데이터도 복사해야합니다. 이 프로세스는 메타 데이터를 저장하는 데 사용되는 파일 형식에 따라 다릅니다. – user3344003

+0

이미지 속성이 메타 데이터입니까, 그렇지 않습니까? 속성에 반환 된 EXIF, JFIF, TIFF, IPTC 및 GPS 메타 데이터 외에도 다른 메타 데이터는 무엇입니까? 정확히 내가 무엇을 찾고 있어야하는지, 그리고 내가 그걸 어떻게해야하는지 설명해 주시겠습니까? 이미지를 저장하는 데 사용 된 파일 형식은 내가 읽은 파일의 이미지 형식과 동일합니다. 이 경우 JPEG. UTI 옆에있는 다른 옵션으로 형식을 지정해야합니까? –