2

ズームを適用するスライダーを持つカスタム カメラ コントロールがあります。次のコードで画像をズームできます。

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];

これは元の画像にズームを適用しますが、ズームは常に左上隅に適用され、適用される場所には適用されません。

解決策を提案してください。前もって感謝します。

4

1 に答える 1