LIBTIFF读取tiff文件时,打印buf出错

2023-05-16

如图所示,按照官网提供的例程读取tiff文件,并打印读取的值时,提示:

 Subscript of pointer to incomplete type 'void'

代码如下:

    //---打开tiff文件的测试
    
    
    TIFF* tif = TIFFOpen("a.tif", "r");
    if(tif){
        uint32 imageLength;
        tsize_t scanline;
//        unsigned char* buf;
        tdata_t* buf;
        uint32 row;
        uint32 col;
        
        TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imageLength);
        scanline = TIFFScanlineSize(tif);
//        buf = (unsigned char *)_TIFFmalloc(scanline);
        buf = (tdata_t*)_TIFFmalloc(scanline);
        printf("Scanlinesize = %zu", scanline);// %zu用来打印tsize_t
        for(row=0;row <imageLength;row++){
            TIFFReadScanline(tif, buf, row);
            for(col=0;col<scanline;col++){
                printf("buf[%d][%d]=%d", row,col,buf[col]);
//                printf("%d", buf[col]);//报错:Subscript of pointer to incomplete type 'void'
                                        //解决方法,将buf的类型由tdata_t改成unsigned char*
            printf("\n");
            }
        }
        _TIFFfree(buf);
        TIFFClose(tif);
    }

报错情况如图所示:

 

报错原因:

可能是buf 类型在分配内存的时候应该是指针类型,如下:

        buf = (unsigned char *)_TIFFmalloc(scanline);
//        buf = (tdata_t*)_TIFFmalloc(scanline);

使用tdata_t* 和unsigned char *类型都可以编译成功,但是打印出的数据不同:

tdata_t* 时,打印的数据如下:

 

使用unsigned char * 时,打印的数据如下:

 貌似使用unsigned char * 时获取的数据应该是正确的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LIBTIFF读取tiff文件时,打印buf出错 的相关文章

  • Matlab写TIFF格式文件(多于3波段)

    1 起因 通常情况下 xff0c 使用MATLAB做图像处理后 xff0c 使用下面的命令就可以保存处理结果为图片 imwrite im 39 im bmp 39 而如果需要保存的图像为single或者double类型 xff0c 或保存的
  • 电子书djvu格式简介zz

    DjVu是由美国AT T实验室于1996年开发成功的一项新的图片压缩技术 DjVu的主要技术是将图像分为背景层 纸的纹理和图片 和前景层 文本和线条 通过将文字和背景分离开来 DjVu可以用高分辨率来还原文字 使锐利边缘得以保留 并最大限度
  • 如何在 Silverlight 上显示 tiff 文件?

    如何在 Silverlight 应用程序上显示 tiff 文件 我可以显示除 tiff 之外的任何图像格式 有人可以帮助我吗 谢谢 我成功地在 Silverlight 中显示 TIFF 免费移植很容易LibTiff NET库到 Silver
  • 有没有办法使用 javascript 从 tiff 图像中提取地理标签?

    我正在开展一个项目 需要使用正射马赛克地图 该地图采用 tiff 格式 我想从该地图中提取地理信息 以便我可以将其正确覆盖在谷歌地图上 我在这个项目中使用平均堆栈 所以我的最后一个问题是 有没有办法使用 javascript 从 tiff
  • 保存多帧 TIFF

    我从 C 应用程序中的 Stream 加载多帧 TIFF 然后使用 Image Save 方法保存它 但是 这仅保存第一帧的 TIFF 如何让它保存多帧 tiff 由于您没有提供任何详细信息 仅提供一些一般提示 多帧 TIFF 是非常复杂的
  • OSX 中的 tiff() 分辨率和压缩设置不可靠

    分辨率和压缩选项tiff 在我的系统上似乎被忽略 请参阅下面的信息 这似乎与中讨论的问题相同这个问题 https stackoverflow com questions 12609816 r tiff wont compress or se
  • 如何为 tiff 文件添加附加标签

    我正在尝试读取并保存带有一些附加标签的 tiff 文件 当我制作一个运行良好的新图像时 但是当我打开一个图像然后尝试写回一些元标记时 它不起作用 图像可以写入 但它将保留原始标签而不做任何更改 我附上了我的测试代码 非常感谢您的帮助 fro
  • 如何将 dzi 文件转换为多瓦金字塔 tiff 格式

    参考答案 如何将 dzi 深度变焦 文件转换为完整图像 https stackoverflow com questions 53986084 how to convert dzi deep zoom files to full image
  • 用 Java 读取和写入 TIFF 图像

    我尝试了以下代码来完成读取和写入 tiff 图像的任务 Define the source and destination file names String inputFile images FarmHouse tif String ou
  • 有没有CMYK图形库?

    我正在寻找支持 CMYK 的图形库 JPG 或 TIF 我必须读取一个大图像文件和一个小图像文件 然后在第一个图像文件上写入第二个图像文件 输出也必须是 CMYK 没有任何 CMYK gt RGB 转换 有吗 C C Java 或其他 免责
  • 从 TIFF 文件中提取 JPEG

    背景我有一个大的 TIFF 文件 它是用 JPEG 压缩的 TIFF 标准中的新压缩率为 7 并且是平铺的 我需要做的是将这些图块提取到单独的 jpg 文件中 我需要能够在不解压缩 重新压缩图像数据的情况下完成此操作 因为这将需要太多的计算
  • Tiff 中的 Jpeg(jpeg 压缩)

    如何从 JPEG 压缩的 TIFF 文件中提取图像 我已根据 StripOffests 和 StripBytesCount 字段读取字节 但无法从中加载图像 旧式 TIFF JPEG 压缩类型 6 基本上将普通 JFIF 文件填充到 TIF
  • 如何将多页 PDF 转换为单页 TIFF

    该帖子询问如何将多页 PDF 转换为多页带有 Ghostscript 的 TIFF 将多页 PDF 转换为多页 TIFF 的工具 https stackoverflow com questions 10037101 tools to con
  • 使用 .NET 创建采用 JPEG 压缩的多页 TIFF

    有没有办法使用 NET 创建多页 TIFF 和 JPEG 压缩 我可以使用 LZW 压缩创建 TIFF 但文件非常大 好像EncoderValue枚举 我用来设置压缩 甚至没有合适的成员 你可以看看 gt gt 这篇文章 https sta
  • 将 pdf 文件转换为 tiff 文件的最佳方法 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 tiff 像素长宽比更改为正方形

    我正在尝试对多页 tiff 文件执行条形码识别 但是 tiff 文件是从传真服务器 我无法控制 发送给我的 该服务器以非方形像素长宽比保存 tiff 这导致图像由于纵横比而被严重挤压 我需要将 tiff 转换为方形像素长宽比 但不知道如何在
  • 如何使用 JavaScript 将小图像嵌入到另一个图像之上并保存它?

    我有一个大图像 tif 格式和两个小图像 我想要实现的是 我想将两个小图像中的任何一个嵌入到大图像之上 并使用 JavaScript 保存它 img src largeimg p Select the image to embed on t
  • 加快写入多个图像 TIFF 的速度?

    我正在尝试将图像堆栈写入 TIFF 文件 图像大小为 256 256 像素 每个堆栈包含 1000 张图像 编写其中一个文件大约需要 4 分钟 所以我的代码很可能有问题 这就是我正在做的 void Tiff WriterSplit floa
  • 如何在 python 中读取 32 位 TIFF 图像?

    我想用 python 读取 32 位浮点图像文件来进行一些图像分析 我努力了 import matplotlib pyplot as plt im plt imread path to file tif 但是 这仅将数据读取为 8 位整数值
  • 在 TIFF 中创建带有缩略图的子 IFD (libtiff)

    我知道thumbnail c包含一些创建缩略图并将其放置在子IDF中的代码 但是该代码中发生了很多事情 生成缩略图 应用对比度曲线等 并且我很难重现写缩略图 谷歌也没有提供任何帮助 我的问题是 在我打开输出文件并获得 TIFF 后 我的缩略

随机推荐