0

正常に動作する画像をキャプチャするアプリがありますが、ネットから検索した画像のサイズを縮小したいのですが、ここにあるコードを見つけました

これは、画像がキャプチャされたときに正常に動作する私のコードです

NSString *type = [info objectForKey:UIImagePickerControllerMediaType];

UIImage *pickedImage = [info objectForKey:UIImagePickerControllerOriginalImage];

NSData *imageData = UIImagePNGRepresentation(pickedImage);

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

選択した画像のサイズを縮小したい次のコードを取得しましたが、newSizeを使用するように使用できませんでしたが、元の画像を使用して圧縮しています

UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();   
4

3 に答える 3

0

その新しい画像を新しいサイズで保存したい場合は、コードの後に​​その画像を次の行でライブラリに追加します..

UIImageWriteToSavedPhotosAlbum(UIImage *image, id completionTarget, SEL completionSelector, void *contextInfo);

元:

UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(newImage, nil, nil, nil);
于 2013-07-22T06:45:27.643 に答える
0
+(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize;
{
    UIGraphicsBeginImageContext( newSize ); 
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

これらのコード行を使用して、圧縮された画像が必要な場所でこの関数を呼び出すことができます。

    CGSize firstSize = CGSizeMake(210.0,210.0);
    UIImage *compImage=[mainclass imageWithImage:image scaledToSize:firstSize];
于 2013-07-22T06:31:53.200 に答える