gpt4 book ai didi

iphone - 从 UIView 获取调整大小的屏幕截图

转载 作者:行者123 更新时间:2023-12-03 20:26:19 28 4
gpt4 key购买 nike

我正在尝试使用以下代码将 UIView 缩小为缩略图大小的屏幕截图,

    UIGraphicsBeginImageContext(size);
[canvas.layer renderInContext:UIGraphicsGetCurrentContext()];
result = [UIGraphicsGetImageFromCurrentImageContext() retain];
UIGraphicsEndImageContext();

上面的代码将简单地以原始未缩小的尺寸抓取 View 的左上部分。

我确信我以前已经这样做过,但我就是无法让它发挥作用。有人知道这里有什么吗?

最佳答案

假设您有一个 CGSize origSize ,它是原始尺寸(例如 768x1024),还有一个 CGSize size ,它是所需的尺寸,可以像这样完成:

CGFloat scaleX = size.width / origSize.width;
CGFloat scaleY = size.height / origSize.height;
UIGraphicsBeginImageContextWithOptions(origSize, NO, scaleX > scaleY ? scaleY : scaleX);
[canvas.layer renderInContext:UIGraphicsGetCurrentContext()];
result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

请注意,我们在开始上下文中使用 origSize,而不是 size。比例也会影响大小。

更新(大约一年后):请注意,此技术会干扰(或被干扰)正在快照的 UIView 上的转换。如果上述方法不起作用并且您正在 View (或其图层)上进行缩放变换,您可能需要使用此解决方案:How to scale down a UIImage and make it crispy / sharp at the same time instead of blurry?

关于iphone - 从 UIView 获取调整大小的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4614549/

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