gpt4 book ai didi

iphone - 使用 CGImageCreateWithImageInRect 裁剪图像

转载 作者:可可西里 更新时间:2023-11-01 04:59:59 25 4
gpt4 key购买 nike

我正在尝试实现一个 iOS 相机 View ,它可以拍摄方形照片(类似于 Instagram)。我的代码出现在下面。第一部分,框架高度设置为等于框架宽度,按预期工作,并为用户提供了一个正方形的 View 。当我尝试使用 CGImageCreateWithImageInRect 将框架(这是一个 CGRect 属性)应用于图像数据时,稍后会出现问题。我将 frame rect 与图像一起传递给此方法。但结果并未裁剪成正方形。相反,图像保留了 iOS 相机的原始默认尺寸。有人可以告诉我我做错了什么吗?我从 Apple 文档中了解到,CGImageCreateWithImageInRect 应该从某个起始 x/y 坐标选择形状为 Rect 的图像区域。但这似乎并没有发生。

//Set the frame size to be square shaped
UIView *view = imagePicker.view;
frame = view.frame;
frame.size.height = frame.size.width;
view.frame = frame;

//Crop the image to the frame dimensions using CGImageCreateWithImageInRect
-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[self.popoverController dismissPopoverAnimated:true];

NSString *mediaType = [info
objectForKey:UIImagePickerControllerMediaType];
[self dismissModalViewControllerAnimated:YES];
if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
UIImage *image = [info
objectForKey:UIImagePickerControllerOriginalImage];

croppedImage = (__bridge UIImage *)(CGImageCreateWithImageInRect((__bridge CGImageRef)(image), frame));

imageView.image = croppedImage;

}
else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie])
{
// Code here to support video if enabled
}
}

最佳答案

你做得对。唯一的问题是我认为您将 frame 属性设置为与选择器 View 相同,因此最终大小与原始大小相同。

尝试设置frame小于pickerView.view.frame,不等于

检查一下

Cropping an UIImage

关于iphone - 使用 CGImageCreateWithImageInRect 裁剪图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12770186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com