UIImageViewで縮小画像の表示はできますが、画像データは元のままです。リサイズしてサムネイル画像データを作るには次のような方法でリサイズする領域に画像を描画し、UIImagを介して画像データを取り出します。
- (NSData *)makeResizedImageData
{
NSString *imagePath = @"http://.....";
NSURL *imageUrl = [NSURL URLWithString:imagePath];
NSData *imageData = [NSData dataWithContentsOfURL:imageUrl];
if (!imageData) return nil;
UIImage *image = [[UIImage alloc] initWithData:imageData];
CGSize smallSize = CGSizeMake(image.size.width / 5, image.size.height / 5);
UIGraphicsBeginImageContext(smallSize);
[image drawInRect:CGRectMake(0, 0, smallSize.width, smallSize.height)];
UIImage *smallImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *thumbnailData = UIImagePNGRepresentation(smallImage);
NSLog(@"元データサイズ=%d, リサイズデータサイズ=%d", imageData.length, thumbnailData.length);
return thumbnailData;
}
0 件のコメント:
コメントを投稿