最后两行有什么区别?
CIImage *outputImage = [compositingFilter valueForKey:@"outputImage"];
[[[NSGraphicsContext currentContext] CIContext] drawImage:outputImage atPoint:point fromRect:fromRect];
[outputImage drawAtPoint:point fromRect:fromRect operation:op fraction:delta];
最后一个产生一个失真的图像,其矩形小于[outputImage extent];
drawImage:行在某些情况下崩溃。
答案 0 :(得分:0)
来自-drawAtPoint上的文档:...
如果您想要绘制整个图像,那么图像内容以其当前分辨率绘制,除非当前坐标系本身的CTM包含缩放因子,否则不会缩放图像内容。否则,使用当前坐标系定位和定向图像。
fromRect应该是图像的整个大小。此外,在许多情况下,不同的绘图方法之间的翻转处理方式也不同。
最后,关于-drawImage的文档:......有点隐蔽状态:
使用CIFilter类的一个方法应用过滤器后,可以调用此方法强制评估结果,例如apply:,apply:arguments:options:和apply:k ...
希望这有帮助。