2012-07-16 3 views
3

사용자가 camera roll에서 이미지를 선택할 수있는 요구 사항이 있습니다. 내 애플리케이션에서 이미지를 최적화하고 섬기는 사람. 나는 camera roll에서 사진을 선택하는 사용자를 위해 ALAssets 라이브러리 및 사용자 지정 선택 도구를 사용하고 있습니다. 이 작업을 완벽하게 수행 할 수는 있지만 파일 크기가 커지면 문제가 발생합니다. 다음과 같이UIImageJPEGRepresentaion()을 사용하여 UIImage를 NSData로 변환하고 파일에 저장하면 파일 크기가 바이트 단위로 증가합니다.

문제는 : 사용자가 1.7MB의 사진을, (내가 사진을 우편으로 할 때 즉, iOS에 의해보고 된 전체 크기), 선택
내가 직접로부터 바이트를 얻을 때 ALAssetRepresentation 그 중 ALAsset 그리고 NSData으로 변환하면 데이터 크기도 1.7MB입니다. 하지만, 다음과 같은 코드를 사용하여 ALAssetRepresentation에서있는 UIImage .. 오면

있는 UIImage * selImage = [있는 UIImage imageWithCGImage [assetRepresentation fullResolutionImage] 스케일 [assetRepresentation 스케일] 방향 [assetRepresentation 방향];

UIImageJPEGRepresentation()으로 압축 품질 = 1.0f로 변환하면 NSData 크기는 원래 크기 (3.2MB)의 거의 두 배가됩니다.

이상적으로 1.7MB가되어야하지 않습니까 ?? ??

예상대로 파일에 저장할 때 파일 크기는 3.2MB입니다 (xcode 4.2에서는 샌드 박스 앱의 문서 폴더를 가져 와서 확인했습니다). 내 맥에 Preview으로 파일을 열고 바이트 크기를 확인하지만 흥미로운 것은, 그것은 ...

이 도와주세요 .. 꽤 혼란이다 1.7MB (3.2 MB이었다)라고

미리 감사드립니다.

+0

마지막으로이 문제를 해결 했습니까? –

+0

나는 단지 0.95의 압축 품질로 UIImageJPEGRepresentation()을 사용했다. 이미지 크기가 줄어들어 품질이 떨어지지 않습니다. – Ravi

+0

안녕하세요 @ 라비, 당신은 마침내 이것을 해결할 방법을 찾았습니까? –

답변

1

어떤 압축 품질을 지정하고 있습니까? 원본 이미지와 동일하거나 다른가요? 크기가 다른 경우 동일한 압축률로 시도해보고 크기가 동일한 지 확인하십시오.

NSData * UIImageJPEGRepresentation (
    UIImage *image, 
    CGFloat compressionQuality 
); 
+0

압축률이 1.0이고 사용자의 카메라 롤/사진 라이브러리에서 사진을 찍고 있습니다. 나는 그들의 압축 품질에 대해 확신하지 못하지만 압축 품질이 1.0이라고 가정하고 있습니다. 내가 틀렸다면 나를 바로 잡으십시오. – Ravi

+0

그 정보는 없지만 사진 라이브러리가 사용하는 압축을 가정해야한다고 생각하지 않습니다. 문서에서 말할 수 있습니다. 압축 품질에 더 낮은 값을 사용해보십시오. –

+0

크기가 줄어들지 만 인쇄 할 때 가능한 가장 높은 품질의 이미지를 원했습니다 .. 나를 도와 주려고 고마워요. – Ravi

관련 문제