与 [CIContext drawImage:…]

发布于 2024-08-04 10:21:52 字数 388 浏览 6 评论 0原文

最后两行有什么区别?

    CIImage *outputImage = [compositingFilter valueForKey:@"outputImage"];


    [[[NSGraphicsContext currentContext] CIContext] drawImage:outputImage atPoint:point fromRect:fromRect];

    [outputImage drawAtPoint:point fromRect:fromRect operation:op fraction:delta];

最后一个生成一个扭曲的图像,其矩形小于[outputImage范围];

在某些情况下,drawImage: 行会崩溃。

What is the difference between the last two lines?

    CIImage *outputImage = [compositingFilter valueForKey:@"outputImage"];


    [[[NSGraphicsContext currentContext] CIContext] drawImage:outputImage atPoint:point fromRect:fromRect];

    [outputImage drawAtPoint:point fromRect:fromRect operation:op fraction:delta];

The last one produces a distorted image with a rect that is smaller than [outputImage extent];

The drawImage: line crashes on some occasions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

少女的英雄梦 2024-08-11 10:21:52

来自 -drawAtPoint 上的文档:...

图像内容以其当前分辨率绘制,并且不会缩放,除非当前坐标系的 CTM 本身包含缩放因子。否则,图像将使用当前坐标系进行定位和定向。

如果您想要绘制整个图像,则 fromRect 应该是图像的整个大小。此外,在许多情况下,不同绘图方法之间的翻转处理方式也不同。

最后,关于 -drawImage:… 的文档有些神秘地仅指出:

使用 CIFilter 类的方法之一(例如 apply:、apply:arguments:options: 和 apply:k...)应用过滤器后,您可以调用此方法来强制评估结果

希望这会有所帮助。

From the docs on -drawAtPoint:…

The image content is drawn at its current resolution and is not scaled unless the CTM of the current coordinate system itself contains a scaling factor. The image is otherwise positioned and oriented using the current coordinate system.

fromRect should be the entire size of the image if you're wanting the whole thing drawn. Also in many cases flippedness is handled differently between different drawing methods.

Lastly, the docs on -drawImage:… somewhat cryptically only state:

You can call this method to force evaluation of the result after you apply a filter using one of the methods of the CIFilter class, such as apply:, apply:arguments:options:, and apply:k…

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文