(360,480) の画像を (320,480) にスケーリングし、画像をトリミングするアプリケーションがあります。正常に動作していますが、画像を取得すると、少しズームされたタイプの画像が前面に投影されます。これが私がやっている方法です。
[self imageWithImage:(UIImage *)image scaledToSize:CGSizeMake(160.0f,240.0f)];
そして私の定義は -
-(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
//UIGraphicsBeginImageContext(newSize);
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[self cropimage:newImage];
return newImage;
}
そしてcropimageで私はこのようにやっています -
-(void)cropimage:(UIImage *)image
{
CGRect cropRect = CGRectMake(20,100,280,200);
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], cropRect);
UIImage* croppedImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
NSData *pictureData = [NSData dataWithData:UIImagePNGRepresentation(croppedImage)];
}
誰かが私のアプローチで何が間違っているかを知ることができますか?