【QT】Qt中tiff的读写与显示

最近在项目中才接触到tiff格式。去度娘上查了一下,“TIFF为图像文件格式,此图像格式复杂,存储内容多,占用存储空间大,其大小是GIF图像的3倍,是相应JPEG图像的10倍”。看下它的定义:标签图像文件格式(Tagged Image File Format,简写为TIFF)是一种主要用来存储包括照片和艺术图在内的图像的文件格式。
标签图像文件格式
文件扩展名:.tif,.tiff
开发者:Aldus
格式类型:图像文件格式等
项目基于QT 4.8,可能需要对tiff格式的影像进行操作,故自己测试了它的基本操作——读写与显示。
读写
QT中有多种读写影像的方法,部分代码如下:
    char *filename = "F:/0.tif";
    /*read + write*/
    QImage image;
    QImageReader qReader(filename);
    image = qReader.read();
    QImageWriter writer("F:/A.tiff", "tiff");
    writer.write(image);

    /*load + write*/
    QImage image1;
    image1.load(filename);
    QImageWriter writer1("F:/B.tiff", "tiff");
    writer1.write(image1);

    /*load + save*/
    QImage image2;
    image2.load(filename);
    image2.save("F:/C.tiff","tiff");

    /*write*/
    QImage image3 = QImage(filename);
    QImageWriter writer3("F:/D.tiff", "tiff");
    writer3.write(image3);
有图有真相



上面是tiff的读写操作,下面来看看tiff的在QLabel上的显示。TIFF的显示代码也很简单。
显示
QString filename = "F:/4.tiff";
QPixmap qimage(filename);
qimage = qimage.scaled(800,800);
ui->labelPic->setPixmap(qimage);
ui->labelPic->show();
有图有真相

QT 4.84 支持的图片格式有:
bmp
gif
ico
jpeg
jpg
mng
pbm
pgm
png
ppm
svg
svgz
tga
tif
tiff
xbm
xpm
可以用以下代码进行查看
    QList<QByteArray> aa = QImageReader::supportedImageFormats();
    foreach (QByteArray a , aa)
    {
        qDebug(a.data());
    }


 
  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.该程序用QT开发,实现图片导入、显示、缩放、拖动及处理(冷暖色、灰度、亮度、饱和、模糊、锐化)。 经实测,我写的这个软件在导入10000*7096像素的超大图片的时候,缩放的速度比2345看图软件还快,2345缩放超大图会卡顿,但本软件不会^_^ 关于程序缩放拖动部分的说面参见我的博客https://blog.csdn.net/weixin_43935474/article/details/89327314; 2.载入图片后,鼠标移动的时候可以显示鼠所在点的图像的坐标以及灰度; 3.缩放的时候,图片右上角可以显示当前图片的缩放比例; 4.用户可导入16位深的tiff灰度图文件(一般来说是由相机拍摄的灰度图数据),导入16位深的tiff的时候,用户需要先点击界面左上角的checkbox,然后再导入tiff图片,否则图片解析不出来。 注:Qt自带的QImage只能导入8位深的tiff灰度图,如果用qt的QImage导入16位深的灰度图,图像数据会被强制转换成argb格式的图像,数据就被更改了,所以我自己编写一个解析tiff文件的功能,我翻阅了很多博客,其如下链接给我的帮助最大: https://blog.csdn.net/chenlu5201314/article/details/56276903 上述博客作为详细解析tiff文件结构的说明文档,写的非常详细,我也是根据上面的内容,自己编写了一个解析tiff文件的类(当然功能很少,只能解析符合特定条件的tiff文件) //************************************************************ //by Bruce Xu //注:解析tiff的类只解析特定的tiff文件! //1.解析的tiff文件只存在一幅图,如果文件存在多幅图,本类不支持解析! //2.图像数据为8位或16位深度的灰度图,如果是其他类型的图片,本类不支持解析! //3.图片没有被压缩过! //************************************************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值