我有从ALAssetLibrary检索到的对象ALAsset我想推断压缩JPEG以便将其发送到Web服务。
任何建议从哪里开始?
编辑: 我找到了一种从ALAsset中获取NSData的方法
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);
但是,首先,即使没有调整大小,只需使用这两行代码,compressedData就比数据大。 第二,我不确定调整UIImage的最佳方法是什么
答案 0 :(得分:0)
您可以使用
[theAsset thumbnail]
或者
压缩可能会在某些点后产生更大的文件,您需要调整图像大小:
+ (UIImage *)imageWithCGImage:(CGImageRef)cgImage scale:(CGFloat)scale orientation:(UIImageOrientation)orientation
答案 1 :(得分:0)
从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