gpt4 book ai didi

iphone - 如何在 iPhone 中按比例裁剪图像?

转载 作者:行者123 更新时间:2023-11-29 13:33:31 24 4
gpt4 key购买 nike

我有一张大尺寸图片 (2048*2048px),这张图片在 iPhone 屏幕上显示为 320*320。我想这样做:

在我的应用程序中,用户可以打开大尺寸图片(例如 2048*2048),图片在 iPhone 屏幕上显示为 320*320,图片上方有一个矩形,用户可以在 iPhone 上将矩形移动到图片内的任何位置屏幕,例如rectangle(100, 100, 300, 200),然后我想按比例在矩形区域内裁剪原始大小的图像。

我尝试了很多方法,

UIImageView *originalImageView = [[UIImage View alloc] initWithImage:originalImage]];

CGRect rect = CGRectMake(100, 100, 300, 200);

UIImage *cropImage = [UIImage imageWithCGImage:CGImageCreateWithImageInRect([originalImageView.image CGImage], rect)];

但我得到的 cropImage 只是 300*200 大小的图像,无法正确缩放。

最佳答案

这样做怎么样,它会保留原始图像质量

CGSize bounds = CGSizeMake(320,320) // Considering image is shown in 320*320
CGRect rect = CGRectMake(100, 100, 220, 200); //rectangle area to be cropped

float widthFactor = rect.size.width * (originalImage.size.width/bounds.size.width);
float heightFactor = rect.size.height * (originalImage.size.height/bounds.size.height);
float factorX = rect.origin.x * (originalImage.size.width/bounds.size.width);
float factorY = rect.origin.y * (originalImage.size.height/bounds.size.height);

CGRect factoredRect = CGRectMake(factorX,factorY,widthFactor,heightFactor);
UIImage *cropImage = [UIImage imageWithCGImage:CGImageCreateWithImageInRect([originalImage CGImage], factoredRect)];

最重要的是,如果你想裁剪 imagePickerController 返回的图像,那么这可以通过如下内置函数来完成,

imagePickerController.allowsEditing = YES;

关于iphone - 如何在 iPhone 中按比例裁剪图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11218033/

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