gpt4 book ai didi

iphone - 在 iOS 4 中保存 UIView 内容,并使用内部图像的实际大小(即放大内容进行保存)

转载 作者:行者123 更新时间:2023-12-03 18:29:35 25 4
gpt4 key购买 nike

我有一个 UIView,其中有许多 UIImageView 作为 subview 。该应用程序在 iOS4 上运行,我使用具有视网膜显示分辨率的图像(即图像以比例 = 2 加载)

我想保存 UIView 的内容...但是...里面有图像的实际大小。 IE。 View 的大小为 200x200,内部的图像的比例为 2,我想保存 400x400 的结果图像以及所有实际大小的图像。

现在首先想到的是创建一个新的图像上下文,并使用scale=1再次加载内部的所有图像,这应该可以,但我想知道是否有更优雅的方法来做到这一点?似乎需要大量内存和处理器时间来重新加载所有内容,因为它已经完成了......

附:如果有人有答案 - 包括代码会很好

最佳答案

实现将任何 UIView 渲染为图像(也适用于视网膜显示)。

helper.h 文件:

@interface UIView (Ext) 
- (UIImage*) renderToImage;
@end

以及helper.m文件中的相关实现:

#import <QuartzCore/QuartzCore.h>

@implementation UIView (Ext)
- (UIImage*) renderToImage
{
// IMPORTANT: using weak link on UIKit
if(UIGraphicsBeginImageContextWithOptions != NULL)
{
UIGraphicsBeginImageContextWithOptions(self.frame.size, NO, 0.0);
} else {
UIGraphicsBeginImageContext(self.frame.size);
}

[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}

0.0 是比例因子。应用于位图的比例因子。如果指定值 0.0,比例因子将设置为设备主屏幕的比例因子。

QuartzCore.framework也应该放入项目中,因为我们正在层对象上调用函数。

要在 UIKit 框架上启用弱链接,请单击左侧导航器中的项目项,单击项目目标 -> 构建阶段 -> 链接二进制文件,然后在 UIKit 框架上选择“可选”(弱)类型。

这里是library具有类似的 UIColor、UIImage、NSArray、NSDictionary 扩展...

关于iphone - 在 iOS 4 中保存 UIView 内容,并使用内部图像的实际大小(即放大内容进行保存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4213529/

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