4

ALAssetLibrary から取得したオブジェクト ALAsset があります。Web サービスに送信するために、圧縮 JPEG を外挿したいと考えています。

どこから始めればよいですか?

編集: 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);

しかし、まず第一に、サイズを変更しなくても、この 2 行のコードを使用するだけで、compressedData は data よりも大きくなります。2番目に、UIImageのサイズを変更する最良の方法がわかりません

4

2 に答える 2

0

を使用できます。

[theAsset thumbnail]

または;

圧縮すると、ある時点でファイルが大きくなる可能性があるため、画像のサイズを変更する必要があります。

+ (UIImage *)imageWithCGImage:(CGImageRef)cgImage scale:(CGFloat)scale orientation:(UIImageOrientation)orientation
于 2012-04-19T15:00:34.723 に答える
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 に答える