sol*_*eil 4 quartz-graphics uiimage cgaffinetransform ios
尝试将可缩放或旋转的较小图像叠加到较大图像上:
+ (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;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我如何将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];
Run Code Online (Sandbox Code Playgroud)
你需要确保在通话后.CIImage,事实并非如此nil.如果UIImage使用a初始化,则会发生这种情况CGImage.如果是这种情况,那么您需要CIImage使用适当的初始化程序分配自己.
| 归档时间: |
|
| 查看次数: |
8688 次 |
| 最近记录: |