iPhone:如何使用CGContextConcatCTM正确保存转换后的图像?

3
我正在制作一款iPhone应用程序,该应用程序从相机加载图像,然后用户可以从库中选择第二个图像,移动/缩放/旋转第二个图像,然后保存结果。我在IB中使用两个UIImageView作为占位符,然后在触摸/捏合时应用变换。
当我需要将两个图像一起保存时出现问题。我使用第一个图像大小的矩形并将其传递给UIGraphicsBeginImageContext。然后我尝试使用CGContextConcatCTM,但我无法理解它是如何工作的:
CGRect rect = CGRectMake(0, 0, img1.size.width, img1.size.height); // img1 from camera
UIGraphicsBeginImageContext(rect.size); // Start drawing
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextClearRect(ctx, rect); // Clear whole thing
[img1 drawAtPoint:CGPointZero]; // Draw background image at 0,0
CGContextConcatCTM(ctx, img2.transform); // Apply the transformations of the 2nd image

但是我接下来需要做什么?img2.transform矩阵中保存了哪些信息?不幸的是,CGContextConcatCTM的文档并没有对我有太大帮助..目前我正在尝试使用三角函数(在this answer的帮助下)计算点和角度,但既然有转换,肯定有更简单、更优雅的方法解决这个问题,对吧?


我猜问题在于Quartz从左上角应用变换:/ 我仍然不知道如何解决它。 - kubbing
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接