ズームを適用するスライダーを持つカスタム カメラ コントロールがあります。次のコードで画像をズームできます。
self.pickerReference.cameraViewTransform = CGAffineTransformScale(CGAffineTransformIdentity, zoom, zoom);
しかし、画像を取得すると、ズームされたdidFinishPickingMediaWithInfo
画像ではなく、の元の画像が取得されます。UIImagePickerControllerOriginalImage
そして、UIImagePickerControllerEditedImage
イメージがないからです。
私も試しました:
currentImage = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
UIImageView *v = [[UIImageView alloc]initWithImage:currentImage];
UIGraphicsBeginImageContext(v.bounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextScaleCTM(context, zoom, zoom);
[v drawRect:pickerReference.view.bounds];
CGContextRestoreGState(context);
zoomedCurImg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// Write image to PNG file
[UIImageJPEGRepresentation(zoomedCurImg, 0.4) writeToFile:imgPath atomically:YES];
これは元の画像にズームを適用しますが、ズームは常に左上隅に適用され、適用される場所には適用されません。
解決策を提案してください。前もって感謝します。