4

我有一个从 ALAssetLibrary 检索到的对象 ALAsset 我想推断压缩 JPEG 以便将其发送到 Web 服务。

任何建议从哪里开始?

编辑:我找到了一种将 NSData 从 ALAsset 中取出的方法

ALAssetRepresentation *rappresentation = [asset defaultRepresentation];
Byte *buffer = (Byte*)malloc(rappresentation.size);
NSUInteger buffered = [rappresentation getBytes:buffer fromOffset:0.0 length:rappresentation.size error:&err];

但我找不到通过调整大小和压缩图像来减小图像大小的方法。我的想法是有类似的东西:

UIImage *myImage = [UIImage imageWithData:data];
//resize image
NSData *compressedData = UIImageJPEGRepresentation(myImage, 0.5);

但是,首先,即使不调整大小,仅使用这两行代码压缩数据就比数据大。其次,我不确定调整 UIImage 大小的最佳方法是什么

4

2 回答 2

0

从以下位置获取 CGImage 很容易ALAssetRepresentation

ALAssetRepresentation repr = [asset defaultRepresentation];
// use the asset representation's orientation and scale in order to set the UIImage
// up correctly
UIImage *image = [UIImage imageWithCGImage:[repr fullResolutionImage] scale:[repr scale] orientation:[repr orientation]];
// then do whatever you want with the UIImage instance
于 2012-04-19T15:23:13.333 回答
0

您可以使用

[theAsset thumbnail]

或者;

压缩后可能会导致更大的文件,您需要调整图像大小:

+ (UIImage *)imageWithCGImage:(CGImageRef)cgImage scale:(CGFloat)scale orientation:(UIImageOrientation)orientation
于 2012-04-19T15:00:34.723 回答