当我使用具有一定比例的initWithCGImage然后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,2 2592}”
这真的很奇怪,因为这两个图像应该是完全相同的。
答案 0 :(得分:0)
您应该使用 - [UIImage imageWithData:scale:] 方法。