我正在使用上下文创建屏幕外图像CGBitmapContextCreate()
.
在绘制文本时,我尝试使用:
CGContextSetTextMatrix(contextRef, CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0));
但我的文字仍然是颠倒的。如果我使用标准转换,它是正确的:
CGContextTranslateCTM(contextRef, 0.0, contextRect.size.height);
CGContextScaleCTM(contextRef, 1.0, -1.0);
我的问题是应该CGContextSetTextMatrix
适用于屏幕外位图?也许我做错了什么。
不会。文本矩阵,顾名思义,只影响文本。
所有绘图都会经过当前的变换矩阵,只有文本也会经过文本矩阵。因此,对于非文本的任何内容,您需要更改 CTM。
您可以使用CGContextConcatCTM
函数在一个函数调用中将翻转矩阵连接到 CTM 上,尽管我发现平移 + 缩放更容易阅读。请注意,将一个矩阵连接到另一个矩阵与用新矩阵替换旧矩阵不同。
Core Graphics中没有用不同矩阵替换CTM的功能;你只能连接到它。你可以得到CTM,将其求逆,然后将逆矩阵连接到当前矩阵上,得到单位矩阵;然后,将您想要的矩阵连接到该矩阵上,该矩阵将成为您想要的矩阵,没有其他影响。然而,没有太多理由去付出所有这些努力。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)