问题标签 [libtiff]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - LNK1313 视觉工作室错误
我正在尝试编译和运行一些代码,部分代码是我使用 Visual Studio 编写的,部分任务需要我使用我下载的库。错误消息显示“致命错误 LNK1313:检测到 ijw/native 模块;无法与纯模块链接”。我猜这与被认为是纯模块的库(libtiff,如果有人想知道是哪个)有关,而 Visual Studio 项目不是?有没有办法处理这样的错误?我有一段时间没有使用 C++(或 Visual Studio)了,如果我能得到任何帮助,我将不胜感激。
c++ - Qt 多页 TIFF
我需要从我的程序中保存一个多页 TIFF,但似乎Qt 不支持多页 TIFF。不过,我需要这样做。从我的程序中执行此操作的最佳方法是什么?
到目前为止,我正在考虑使用 ImageMagick 的命令行实用程序从我创建的许多 JPEG 文件创建多页 TIFF,或者将 libtiff 添加到我的项目并尝试使用它,或者使用 GDI+(至少在 Windows 上)生成 TIFF .
我可能错过的任何其他想法?
如果可能的话,我想避免使用外部 EXE 或 DLL,也就是说,如果我可以将一个库直接添加到我的项目的源代码中,那将是最好的。
另外,如果您知道已经完成的项目,请发布指向它的链接,我宁愿不重新发明轮子。
c++ - LIBTIFF 无法使用 C++ 项目
Libtiff 是一个 C 库,但我想将它与 Qt Creator 中的 C++ 项目一起使用。有谁知道如何做到这一点?当我尝试使用 C 库时出现编译时错误,所以我不确定该怎么做。
我得到的编译时错误是:
c:\libtiff\libtiff\tiff.h:69:错误:C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数
对于该行: typedef TIFF_INT8_T int8;
加上一堆更相似的错误。有人请帮忙。
c# - Libtiff - 不同的 BitsPerSample - 有效或错误的 tiff 标签?
我们遇到了一些 TIFF 图像,它们是类型 6 OJPEG 压缩的,许多具有相同的 BitsPerSample “8 8 8”并且工作正常。
但是,有时我们会看到 BitsPerSample 值为“8 25608 0”的那些。我想知道这是否可能,如果不是,它是否是生成 TIFF 的系统中的错误。如果可以通过简单地修改标签来修复它们,那么 BitsPerSample 是“8 8 8”吗?
目前,我只找到了一种工具(LEAD),可以通过将它们转换为未压缩的 TIFF 来处理它们,显然我不知道它是如何做到这一点的,而且仅解决一小部分图像的问题是一个很大的开销。
有没有人遇到过这个问题或者比我更了解解决这个问题是简单还是复杂,到目前为止,我在 Libtiff.net 代码中四处寻找的尝试并没有取得很大的成果!
干杯
更新:使用 litiff.net 与这样简单的东西:
结果(显然跳过了异常处理!):
ReadDirectory:警告,10.TIF:遇到标签为 33000 (0x80e8) 的未知字段 10.TIF:无法处理字段“BitsPerSample”的不同每个样本值
未处理的异常:System.NullReferenceException:对象引用未设置为对象的实例。在 C:\tiffstuff\tifftest\tifftest\Program.cs:line 15 中的 tifftest.Program.Main(String[] args) 分段错误
我现在让它绕过检查并假设“BitsPerSample”为 8,但是我现在尝试使用 bitmiracle 网站上的示例提取图像以另存为 BMP:
我显然收到了 OJPEG 警告,然后是以下内容:OJPEGReadHeaderInfoSecTablesQTable: Missing JPEG tables
生成的图像只是 100% 的绿色。
在解决这个问题方面,我是否离我的深度太远了?我知道 JPEG 就在某个地方似乎无法获取并成功解压缩:-(
c# - 使用 LibTiff.Net 重复目录更新现有图像中的标签
我正在尝试更改现有 TIFF 图像中一些自定义 ASCII 标记的值,如http://bitmiracle.com/libtiff/help/add-custom-tiff-tags-to-an-中的示例所示现有的 tiff-image.aspx。
这些更改主要涉及添加到现有标签的字符串,或添加不存在的自定义标签。
但是,在添加新标签时,LibTiff 似乎在图像末尾添加了一个全新的目录,而不是更改现有的目录,该目录保持不变。我已经用 WinHex 验证了这一点,还尝试了几种不同的方法,例如 WriteDirectory、CheckpointDirectory。正在打开文件以进行附加。
重复的目录导致另一个我们无法控制的程序出现问题,该程序必须处理图像。
有没有办法只更新现有目录?或者,如果有必要重写整个文件,我能否得到一些关于如何做到这一点的指示?如果文件被重写,则需要保留其他自定义标签。
linux - TIFFOpen:打开的文件太多
我正在尝试从 ASTER 数据集中打开一个 geotiff,但它给出了一个我一直无法弄清楚的错误。这是我的代码:
我是这样编译的:
这是我得到的输出的一部分:
第二条消息重复了几百次,然后
之后显示几百次。
read() 被调用一次,为什么我得到一些 700 多张打印件?
我正在运行 Debian,我检查过
并且没有人打开此文件。
我也遵循了这里的建议:https ://stackoverflow.com/a/9012019/1877851
我仍然收到同样的错误。这是怎么回事?
c# - 使用 Bit Miracle 的 LibTiff.Net 更改分辨率
我使用 Bit Miracle 的 LibTiff.Net 将扫描图像转换为 tiff 文件,但我想保存 200dpi 的图像,即使是用 300 dpi 扫描的图像我在 Bit Miracle 站点示例中找到了这个
但我进行了此更改以始终将分辨率设置为 200dpi :
在 tif 文件属性中它说 200 dpi 但文件大小在更改前后不变 163 Ko,
我搜索了代码中使用的所有分辨率,并将其设为 200,但文件大小始终相同。
如果我更改了SetField
我在文件属性中得到的值,但没有在图像的重新分辨率中得到它(所有分辨率测试的大小始终相同)
如何更改目标 tif 的分辨率?
c - TIFF 图像:16 位 RGBA 图像像素是如何交错的?
我正在尝试通过 C 语言处理每通道 16 位 RGBA TIFF 图像,我在规范中找不到很多关于 16 位图像的信息。
在每通道 8 位 RGBA 图像的情况下,我知道一个像素存储为 uint32,并且可以通过将 32 位分组为 8 位的 4 组(R、G、B、A)来去隔行扫描。然后为了处理每通道 8 位 RGBA 图像,我正在执行以下操作(另请参见此处随附的源代码):
- 我将图像数据存储为我调用的 uint32 选项卡(使用 TIFFReadRGBAImageOriented)
data_tiff
- 我使用以下命令对像素进行去隔行扫描:
(uint8) TIFFGetR(*data_tiff)
,(uint8) TIFFGetG(*data_tiff)
,(uint8) TIFFGetB(*data_tiff)
&(uint8) TIFFGetA(*data_tiff)
如果是每通道 16 位的 RGBA 图像,你能告诉我如何去隔行像素吗?如果我可以将图像数据检索为 uint64 选项卡,那么我可以执行以下操作:
- 我将图像数据读取为 uint64 选项卡
- 我使用
(uint16) TIFF16GetR(*data_tiff)
,(uint16) TIFF16GetG(*data_tiff)
,(uint16) TIFF16GetB(*data_tiff)
&(uint16) TIFF16GetA(*data_tiff)
但似乎数据本身并没有存储在 uint64 选项卡中,所以我想知道如何将每通道 16 位的交错图像转换为 uint32 像素选项卡。
我也面临以相同方式处理 16 位灰度图像的困难(TIFFReadRGBAImageOriented
用于获取图像数据并尝试将每个像素转换为 uint16)
更一般地说,您是否有任何关于 16 位灰度和彩色图像的文档?
谢谢您最好的问候,
雷米 A.
visual-studio-2010 - 链接 libtiff - LNK2001:无法解析外部符号 TIFFOpen
我在 64 位机器上使用 MSVS 2010。我使用设置文件安装了 tiff 库版本 3.8.2,更改了项目属性表:include - *\GnuWin32\include; 链接器 - *\GnuWin32\lib,输入 - libtiff.lib。但是 MSVS 2010 仍然给我链接器错误:
LNK2001:未解析的外部符号 TIFFOpen
LNK2001:未解析的外部符号 TIFFGetField
LNK2001:未解析的外部符号 TIFFIsTiled
(因为我的一个源文件中的函数调用)。
我也尝试将包含目录添加到我的环境变量 Path 中,但无济于事。我还下载了 tiff-4.0.3.zip 并按照 libtiff 网站上的说明从命令提示符构建了库。我相应地更新了项目属性表:包括 - *\libtiff; 链接器 - *\libtiff,输入 - libtiff.lib,libtiff_i.lib。我什至将 libtiff.dll 复制到 *\Windows\system 和 *\Windows\system32 目录,并将 *\libtiff 目录添加到我的环境变量 Path 中。但是,MSVS 2010 仍然给我同样的错误。
我在网上搜索过,似乎没有人遇到过这样的问题,或者对于那些在不同库中遇到过类似问题的人,解决方案是我上面尝试过的。我现在已经花了将近两天的时间,并且迫切需要解决方案。请帮忙!