如何将TIFF或PNM转换为QT中的JPEG
How to convert tiff or pnm to jpeg in Qt
我使用扫描仪。IHE扫描仪输出为TIFF或PNM格式。但是我无法将这些格式加载到qimage中。
QProcess process;
process.start("scanimage -d epjitsu --format=tiff");
process.waitForFinished(240000);
QByteArray ba = process.readAllStandardOutput();
QImage image;
image.fromData(ba);
image.fromdata(ba)将失败,因为QT不知道TIFF格式。唯一的方式,如何转换它就是存储bytearray以文件和使用Linux实用程序转换来转换它。但是我不想以这种方式进行。我想以某种方式在qt中进行。
您可以使用GDAL打开tiff文件,然后创建一个qimage。可以以JPG格式保存此Qimage。
qt通过libtiff提供TIFF支持。
我认为默认配置选项是它使用系统提供的任何内容。这意味着您的系统应该安装LIBTIFF。
您还可以在提供-qt-libtiff
配置标志的位置进行自定义QT构建,该标志将使用捆绑的LIB将其纳入QT二进制文件,而不是使用外部系统库。
另一个考虑因素是TIFF支持不在" QT Essentials"模块中,而是QT Image格式模块的" QT附加组件"的一部分。
最后,您仍然可以诉诸于扫描文件的选项,然后还可以通过外部工具将文件转换为受支持的格式。
qt知道tiff格式。以下代码对我有用:
QFile f("Untitled.tiff");
if (!f.open(QIODevice::ReadOnly)) {
return;
}
QByteArray ar(f.size(), ' ');
f.read(ar.data(), ar.size());
QImage img;
img.loadFromData(ar);
if (!img.isNull())
{
QPixmap image = QPixmap::fromImage(img);
ui.tiffLabel->setFixedSize(img.size());
ui.tiffLabel->setPixmap(image);
}
确保您满足所有DLL依赖项(我supect qtiff.dll)
确保您的QByteArray ba
包含图像
,可能是使用fromData
loadFromData
是个好主意
相关文章:
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 以在Qt中的IF语句中设置时间延迟
- 如何在QT中的自定义视频小工具t上绘制矩形
- Qt中的实现指针(PIMPL)
- Qt中的RGB图像处理
- 如何识别项目是 QT 中的文件还是文件夹
- 如何将 json 数据附加到 Qt 中的现有 json 文件中
- 通过 Qt 中的线程调用 Rust 库
- Qt中的包装连接方法隐藏了编译器所需的信息
- Qt 中的去抖动事件过滤器
- 在QT中的两个窗口之间共享websocket连接
- 如何使用Qt中的QGeopath清除Mappolyline
- 如何防止GUI挂起,同时允许第二次操作与Qt中的第一次操作一起执行
- 如何从qt中的类中调用方法
- 内联在对always_inline的调用中失败,Qt中的目标特定选项不匹配
- 项目错误:QT中的未知模块:Mac上的图表
- Qt中的QFile::copy(source,dest)的实现有时是错误的吗?
- 是否可以将文件路径传递给Qt中的setStyleSheet()
- 如何使用 qt 中的信号槽控制函数的返回
- 从 Qt 中的信号调用成员函数的问题