특정 눈금으로 initWithCGImage를 사용한 다음 UIImageJPEGRepresentation을 사용하여이 이미지에서 데이터를 가져 오면 시스템이 눈금 설정을 유지하지 못하는 것 같습니다. 왜 그런가?UIImageJPEGRepresentation 내 눈금 설정을 유지하지 않음
다음은 내 코드와 로그 내가 얻을 :
ALAssetRepresentation *rep = [asset defaultRepresentation];
CGImageRef iref = [rep fullResolutionImage];
UIImageOrientation orientation = [self orientationForAsset:asset];
// Scale the image
UIImage* scaledImage = [[UIImage alloc] initWithCGImage:iref scale:2. orientation:orientation];
NSLog (@"Scaled image size %@", NSStringFromCGSize(scaledImage.size));
// Get data from image
NSData* scaledImageData = UIImageJPEGRepresentation(scaledImage, 0.8);
// Check the image size of the data
UIImage* buildedImage = [UIImage imageWithData:scaledImageData];
NSLog (@"Data image size of %@", NSStringFromCGSize (buildedImage.size));
로그 제공합니다 :
"조정 된 이미지의 크기 {1944, 1296}"{3888의
"데이터 이미지 크기, 2592} "
두 이미지가 정확히 같기 때문에 정말 이상합니다.
IMHO jpeg는 축척에 대해 아무 것도 모릅니다. – sage444
제가 scaledImageData를 업로드하면 서버에서 크기가 조정 된 원본 크기의 이미지를 얻게됩니다. – CedricSoubrie
'UIImageJPEGRepresentation'에 대해 1에 가까운 값을 주면 이미지의 품질이 떨어집니다. 그래서'0.2'처럼 작게 만드십시오. –