2012年5月4日金曜日

リサイズした画像データの取得


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 件のコメント: