2017-08-17 34 views
0

我需要在Qt中使用平铺图像。什么会是在两个对象之间转换的快速方式,或者在QImage方法中使用VIPS图像?一种解决方案是将VIPS图像保存为TIFF文件或Qt中的任何其他图像格式,然后将文件作为QImages加载。我将不得不为20个以上的磁贴做这个动作,所以我不保存图像,因为文件是一个足够快的过程。使用VIPS图像作为QImage的快速方法

+0

如果VIPS图像提供的是原始数据,并且它具有任何兼容格式(涉及'QImage'),则可直接在'QImage'中使用VIPS图像原始数据。当然,你必须仔细考虑图像实例的生命周期。我最近写了一个关于'QImage'及其数据的答案:[SO:从uint32或uchar数组创建ARGB QImage](https://stackoverflow.com/a/45552097/7478597),这可能会有所帮助。 – Scheff

+0

有趣的是,我可以将VIPS图像转换为int,然后使用该链接中的代码创建QImage? – CrippledTable

回答

0

这里的一个微小的(300线)的示例程序:

https://github.com/jcupitt/vipsdisp-tiny

即显示在一个窗口中的libvips管道的结果。它使用gtk +和Cairo,但它适应QImage应该很简单。

这很有趣,因为它是异步的。 libvips管道将在一组后台线程中运行,并且瓦片将在计算时绘制。它可以显示巨大的图像和复杂的计算,界面将保持响应。

这是同样的事情,但作为一个稍完整的图像查看器:

https://github.com/jcupitt/vipsdisp

变焦和所有。再次,它使用的是gtk3,但这些想法应该很容易转移到Qt。它还需要一些工作,我必须找点时间。