将 VIPS 图像用作 QImage 的快速方法
Fast Way to Use VIPS Image as a QImage
我需要在 Qt 中处理平铺图像。在两个对象之间进行转换或以其他方式在 QImage 方法中使用 VIPS Image 的快速方法是什么?一种解决方案是将 VIPS 图像保存为 TIFF 文件或 Qt 中的任何其他图像格式,然后将文件加载为 QImages。我必须即时对 20 多个图块执行此操作,所以我不保存图像,因为文件的处理速度足够快。
这是一个很小的(300 行)示例程序:
https://github.com/jcupitt/vipsdisp-tiny
在 window 中显示 libvips 管道的结果。它使用gtk+和Cairo,但适配QImage应该很简单。
这很有趣,因为它是异步的。 libvips 管道将 运行 在一组后台线程中,并且将在计算时绘制图块。它可以显示巨大的图像和复杂的计算,并且界面将保持响应。
这是同样的东西,但作为一个稍微更完整的图像查看器:
https://github.com/jcupitt/vipsdisp
缩放等等。同样,它使用的是 gtk3,但这些想法应该很容易转移到 Qt。它仍然需要一些工作,我必须找到一些时间。
我需要在 Qt 中处理平铺图像。在两个对象之间进行转换或以其他方式在 QImage 方法中使用 VIPS Image 的快速方法是什么?一种解决方案是将 VIPS 图像保存为 TIFF 文件或 Qt 中的任何其他图像格式,然后将文件加载为 QImages。我必须即时对 20 多个图块执行此操作,所以我不保存图像,因为文件的处理速度足够快。
这是一个很小的(300 行)示例程序:
https://github.com/jcupitt/vipsdisp-tiny
在 window 中显示 libvips 管道的结果。它使用gtk+和Cairo,但适配QImage应该很简单。
这很有趣,因为它是异步的。 libvips 管道将 运行 在一组后台线程中,并且将在计算时绘制图块。它可以显示巨大的图像和复杂的计算,并且界面将保持响应。
这是同样的东西,但作为一个稍微更完整的图像查看器:
https://github.com/jcupitt/vipsdisp
缩放等等。同样,它使用的是 gtk3,但这些想法应该很容易转移到 Qt。它仍然需要一些工作,我必须找到一些时间。