UIImageJPEGRepresentation不保持我的比例设置

时间:2014-02-24 11:00:11

标签: ios uiimage nsdata

当我使用具有一定比例的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}”

这真的很奇怪,因为这两个图像应该是完全相同的。

1 个答案:

答案 0 :(得分:0)

您应该使用 - [UIImage imageWithData:scale:] 方法。