0

私のアプリケーションでは、サイズが1936 * 2592 、サイズが最大6MBの画像があります。画像を0.25に拡大縮小するか、画像のサイズを478 * 640に変更してから、サーバーにアップロードする必要があります。私はios6でそれを行うために多くの方法を試しましたが失敗しました

imageData= UIImagePNGRepresentation(self.cl_PriviewImage);
UIImage *temp = [[UIImage alloc] initWithData: imageData];
ScaledImage = [temp resizedImage:CGSizeMake(478, 640) interpolationQuality:kCGInterpolationHigh];
ScaledData = UIImagePNGRepresentation( ScaledImage);

//self.cl_PriviewImageは、resizeedImageメソッドが見つからないことを示す私の画像です。ScaleToSizeメソッドも試しましたが、同じエラーが表示されます。

私も試してみました

ScaledImage = [UIImage imageWithCGImage:self.cl_PriviewImage.CGImage scale:0.25f orientation:self.cl_PriviewImage.imageOrientation];
ScaledData = UIImagePNGRepresentation(ScaledImage);

この場合、エラーはありませんが、私の目的は達成されませんでした。つまり、アップロードされた画像の縮尺/サイズは変更されません。

iOS 6に他の方法はありますか、それともどこか間違っていますか?私に提案してください。前もって感謝します

4

1 に答える 1

0
- (UIImage*) image:(UIImage *) image scaledToSize:(CGSize)newSize;
{
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 1);
    CGContextSetInterpolationQuality(UIGraphicsGetCurrentContext(), kCGInterpolationHigh);
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return newImage;
}

このメソッドをUIImageカテゴリに追加することもできます。これは、より適切なソリューションです。

于 2012-10-25T11:28:27.970 に答える