2012-03-19 3 views
3

사진 라이브러리에서 이미지를 가져옵니다. 4 ~ 5MB의 큰 이미지가 있지만 그 이미지를 압축하고 싶습니다. iphone.for의 로컬 메모리에 해당 이미지를 저장해야하므로 메모리를 적게 사용하거나 메모리 사용량이 적어집니다. 나는 그 이미지들을 압축 할 필요가있다.아이폰에서 이미지를 압축하는 방법?

이미지와 비디오를 압축하는 방법을 모르겠습니다. 이미지를 압축하기 위해 뜨거운 것을 알고 싶습니까?

UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 

    NSData* data = UIImageJPEGRepresentation(image,1.0); 
    NSLog(@"found an image"); 

    NSString *path = [destinationPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.jpeg", name]]; 
    [data writeToFile:path atomically:YES]; 

내 이미지를 저장하는 코드입니다. 전체 이미지를 너무 크게 저장하고 싶지 않습니다. 그래서 여러 개의 이미지를 첨부해야하므로 훨씬 작은 크기로 압축하려고합니다.

답장을 보내 주셔서 감사합니다.

+1

압축 이미지는 메모리 오류와 관련하여 도움이되지 않습니다. 디스크 공간 (플래시 램)을 절약하기 위해 이미지를 압축 할 수 있지만 이미지를 표시하려면 항상 메모리에서 압축 해제되며 너비 * 높이 * 4 램을 사용합니다. – Bastian

답변

11

당신은 너무 눈에 안

NSData* data = UIImageJPEGRepresentation(image, 0.8); 

뭔가 0.8과 같은 JPEG 인코딩에 대한 낮은 품질을 선택할 수 있습니다, 정말 파일 크기를 개선해야한다.

이 위에, 이와 같은 방법을 사용하여 JPEG 표현하기 전에 이미지 크기 조정 들여다 :

+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize { 
    UIGraphicsBeginImageContext(newSize); 
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();  
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

자료 : The simplest way to resize an UIImage?

+0

크기 조정에 대한 두 번째 요점은 매우 중요하다고 생각합니다. 상황에 따라 품질을 저하시키지 않으면 서 크기를 크게 줄일 수 있습니다. 특히 화면에서 볼 수있는 것보다 더 큰 이미지를 감지하는 경우. 좋은 대답. –

5

UIImageJPEGRepresentation (있는 UIImage 품질);

1.0은 최대 품질을 의미하고 0은 최소 품질을 의미합니다.

는 SO JPEG 등의 화상

NSData* data = UIImageJPEGRepresentation(image,1.0); 
1
NSData *UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality); 

OR

NSData *image_Data=UIImageJPEGRepresentation(image_Name,compressionQuality); 

복귀 화상의 파일 크기를 줄이기 위해 아래 라인에서 품질 파라미터를 변경. 이미지에 CGImageRef가 없거나 유효하지 않은 비트 맵 형식이 있으면 nil을 반환 할 수 있습니다. compressionQuality은 0 (최대) &1 (최소)입니다.

관련 문제