gpt4 book ai didi

ios - 裁剪 UIImage

转载 作者:IT老高 更新时间:2023-10-28 12:15:01 27 4
gpt4 key购买 nike

我有一些代码可以调整图像大小,因此我可以获得图像中心的缩放 block - 我使用它来获取 UIImage 并返回一个小的方形表示图片,类似于在照片应用程序的相册 View 中看到的内容。 (我知道我可以使用 UIImageView 并调整裁剪模式以达到相同的效果,但这些图像有时会显示在 UIWebViews 中)。

我开始注意到这段代码中有一些崩溃,我有点难过。我有两种不同的理论,我想知道是否有任何一种是基于基础的。

理论 1)我通过绘制到我的目标尺寸的屏幕外图像上下文来实现裁剪。因为我想要图像的中心部分,所以我将传递给 drawInRectCGRect 参数设置为大于图像上下文范围的值。我希望这是 Kosher,但我是不是试图画出我不应该触摸的其他内存?

理论 2) 我在后台线程中执行所有这些操作。我知道 UIKit 的某些部分仅限于主线程。我假设/希望绘制到屏幕外 View 不是其中之一。我错了吗?

(哦,我多么怀念 NSImage 的 drawInRect:fromRect:operation:fraction: 方法。)

最佳答案

2014 年 5 月 28 日更新:我在 iOS 3 左右是热门新事物时写了这篇文章,我确信现在有更好的方法可以做到这一点,可能是内置的。正如许多人提到的,这种方法没有考虑轮换;阅读一些额外的答案并传播一些支持,以保持对这个问题的回答对每个人都有帮助。

原始回复:

我将在其他地方复制/粘贴我对同一问题的回答:

没有一个简单的类方法可以做到这一点,但有一个函数可以用来获得所需的结果:CGImageCreateWithImageInRect(CGImageRef, CGRect)会帮你的。

这是一个使用它的简短示例:

CGImageRef imageRef = CGImageCreateWithImageInRect([largeImage CGImage], cropRect);
// or use the UIImage wherever you like
[UIImageView setImage:[UIImage imageWithCGImage:imageRef]];
CGImageRelease(imageRef);

关于ios - 裁剪 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/158914/

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