gpt4 book ai didi

Iphonesdk合并三张图片两张单图

转载 作者:可可西里 更新时间:2023-11-01 03:39:32 27 4
gpt4 key购买 nike

我正在开发 iphone 应用程序,我必须在其中合并三个图像并使它们成为单个图像。我的意思是说我有一个背景图片、一个标题图片和下图,我需要将所有这些组合起来制作一个图片,这样我就可以用它来发布到 facebook。谢谢。

*编辑*我知道这段代码用于两张图片,但我如何将它用于三张图片:

UIGraphicsBeginImageContext(saveView.bounds.size);
[saveView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

最佳答案

您可以在单个 UIView 中将它们对齐在一起(我认为甚至是在屏幕外,但我还没有检查过)——然后使用 QuartzCode 将 UIView 转换为 UIImage:

UIGraphicsBeginImageContext(myView.bounds.size);
[myView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

然后将其转换为一种格式 - 例如 PNG:

NSData *imageData = UIImagePNGRepresentation(image);

那么发送应该不会太难。

编辑这是一个扩展示例,您还可以看到 3 张图片 - 您当然可以使用 Interface Builder 和 Outlets 而不是全部编写 - 但您可以复制粘贴这个来尝试:

UIImageView *imgView1, *imgView2, *imgView3;
imgView1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image1"]];
imgView2 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image2"]];
imgView3 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image3"]];

imgView1.frame = CGRectMake(0, 0, 50, 50);
imgView2.frame = CGRectMake(50, 50, 100, 100);
imgView3.frame = CGRectMake(100, 100, 200, 200);

[referenceView addSubview:imgView1];
[referenceView addSubview:imgView2];
[referenceView addSubview:imgView3];

UIGraphicsBeginImageContext(referenceView.bounds.size);
[referenceView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

resultView = [[UIImageView alloc] initWithImage:finalImage];
resultView.frame = CGRectMake(0, 0, 320, 480);
[self.view addSubview:resultView];

referenceView.hidden = YES;

注意我已经检查过,在您调用 renderInContext 时 UIView 必须是可绘制/可见的(它可以在屏幕外但不能隐藏或 alpha=0,因为那样它将被渲染为不可见)。所以要么把它放在屏幕外,要么在绘制后立即隐藏它

关于Iphonesdk合并三张图片两张单图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7137411/

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