gpt4 book ai didi

iphone - 保持屏幕抓取中的图像分辨率

转载 作者:行者123 更新时间:2023-11-29 03:42:21 25 4
gpt4 key购买 nike

在我的应用程序中,用户可以将贴纸放在照片上。当他们去保存他们的创作时,我进行屏幕抓取并将其存储在 UIImage 中。 :

UIGraphicsBeginImageContextWithOptions(self.mainView.bounds.size, NO, [UIScreen mainScreen].scale);
[self.mainView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *resultImage = [UIGraphicsGetImageFromCurrentImageContext() retain];
UIGraphicsEndImageContext();

(其中 self.mainView 有一个 subview UIImageView 用于保存照片,另一个 subview UIView 用于保存贴纸)。

我想知道,是否可以通过这种方式进行屏幕截图,并保持上述照片的分辨率?

最佳答案

下面的代码会将两个 UIImage 合并为一个,同时保持原始图像的分辨率:

CGSize photoSize = photoImage.size;
UIGraphicsBeginImageContextWithOptions(photoSize, NO, 0.0);

CGRect photoRect = CGRectMake(0, 0, photoSize.width, photoSize.height);
// Add the original photo into the context
[photoImage drawInRect:photoRect];
// Add the sticker image with its upper left corner set to where the user placed it
[stickerImage drawAtPoint:stickerView.frame.origin];

// Get the resulting 'flattened' image
UIImage *flattenedImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

上面假设 photoImagestickerImage 都是 UIImage 的实例,并且 stickerViewUIView 包含 stickerImage,因此将能够使用 stickerView 框架来确定其来源。

如果您有多个贴纸,只需遍历集合即可。

关于iphone - 保持屏幕抓取中的图像分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18226177/

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