gpt4 book ai didi

ios - 绘制时对 UIImage 应用变换

转载 作者:可可西里 更新时间:2023-11-01 06:24:39 25 4
gpt4 key购买 nike

尝试将可以缩放或旋转的较小图像叠加到较大图像上:

+ (UIImage*)addToImage:(UIImage *)baseImage newImage:(UIImage*)newImage atPoint:(CGPoint)point transform:(CGAffineTransform)transform {

UIGraphicsBeginImageContext(baseImage.size);
[baseImage drawInRect:CGRectMake(0, 0, baseImage.size.width, baseImage.size.height)];

[newImage drawAtPoint:point];
//How would I apply the transform?

UIImage* result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return result;
}

在这种情况下,我如何将 CGAffineTransform 应用于 newImage?

最佳答案

您可以使用 CoreImage 框架,这允许对 CIImage 实例进行转换。例如:

CGAffineTransform transform = ...;
CIImage* coreImage = newImage.CIImage;

if (!coreImage) {
coreImage = [CIImage imageWithCGImage:newImage.CGImage];
}

coreImage = [coreImage imageByApplyingTransform:transform];
newImage = [UIImage imageWithCIImage:coreImage];

您需要确保在调用 .CIImage 之后,它不是 nil。如果 UIImage 是用 CGImage 初始化的,就会发生这种情况。如果是这种情况,那么您需要使用适当的初始化程序自己分配一个 CIImage

关于ios - 绘制时对 UIImage 应用变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21468929/

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