问题标签 [libtiff.net]
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.
libtiff.net - libtiff.net Group3Opt.FILLBITS 未填充到字节边界
我正在使用 libtiff.net 库使用以下标签对来自 twain 投诉扫描器的字节进行编码。
扫描仪设置
Tiff 设置
我遇到的问题是_tiffOutput.SetField(TiffTag.GROUP4OPTIONS, Group3Opt.FILLBITS);
它没有填充到字节边界,根据
https://bitmiracle.github.io/libtiff.net/html/e00d6851-cf09-287f-638b-fc62c498351a.htm和https:/ /bitmiracle.github.io/libtiff.net/html/004b29cb-3828-19ac-b924-95671b477f08.htm。
图像在查看时正确显示并且没有产生错误。我还使用 AWare Systems TiffTagViewer 来验证处理后的 tiff 图像。Compression[Group 4 Fax (CCITTFAX4)] 和 Group4Options[4 (FILLBITS)] 已被验证正确,但 ImageWidth 和 ImageLength 不在字节边界上。
谁能看到我错过了什么?
c# - 使用 LibTIFF.NET C# 将具有浮点像素值的 32 位灰度 Tiff 数组
我刚开始在我的 c# 应用程序中使用 LibTIFF.NET 来读取 Tiff 图像作为从 ArcGIS 服务器获得的高度图。我只需要使用图像的像素值填充一个数组,以便基于平滑渐变生成地形。该图像是 LZW 压缩的 32 位灰度 Tiff,其浮点像素值以米为单位表示高度。
现在已经有几天了,我努力返回正确的值,但我得到的只是“0”值,假设它是一个完全黑色或白色的图像!
这是到目前为止的代码:(更新 - 阅读更新 1)
示例文件和结果:http ://terraunity.com/SampleElevationTiff_Results.zip
已经在互联网上到处搜索,找不到针对此特定问题的解决方案。所以我真的很感激帮助,这也使它对其他人有用。
更新1:
根据Antti Leppänen的回答更改了代码,但得到了奇怪的结果,这似乎是一个错误,或者我错过了什么?请在此处查看上传的 zip 文件以使用新的 32x32 tiff 图像查看结果:
http://terraunity.com/SampleElevationTiff_Results.zip
结果:
- LZW 压缩:RawStripSize = ArraySize = 3081 = 55x55 网格
- 未压缩:RawStripSize = ArraySize = 65536 = 256x256 网格
必须是: RawStripSize = ArraySize = 4096 = 32x32 网格
正如您所看到的结果,LibTIFF 会跳过一些行并给出不相关的排序,如果图像大小不是 2 的幂,它甚至会变得更糟!
jpeg - TIFF 204x98 DPI 屏幕尺寸
我有具有以下属性的 TIFF 页面(传真低分辨率 G4 CCITT.6):
当我在 tiff 查看器中查看时,图像还可以。当我将其转换为 JPEG 时,图像会被拉伸。只有 Windows 的“图像和传真查看器”显示正确的 TIFF 和 JPEG(未绘制女士) 以像素为单位计算宽度和高度以显示未拉伸图像的公式是什么?谢谢这是输出图像JPEG:
编辑:上传图片,网站将其转换为 96x96DPI 的 h&v 分辨率...
tags - LibTiff.net 没有设置主题标签
我正在尝试模仿一些生产代码来生成带有主题的 Tiff 以用于测试目的(Windows 中的 IE,右键单击,转到属性和详细信息选项卡有一个主题)。我们在主题字段中放置一些稍后需要参考的文本。我们使用的字段是 0x9c9f,据我所知是(Windows 使用的主题标签,在 UCS2 中编码)
这是我用来生成标签的代码
基本上,标签(代码明智)似乎在 tiff 中,但 Windows 属性对话框从不显示它。需要什么特别的东西来实现这个吗?
c# - 将每样本 8 位转换为每样本图像 1 位
每个样本图像灰度我有 8 位。我想使用 Libtiff.net 对其进行转换:
如何将 8 位数组转换为 1 位数组图像?我想在不将字节数组转换为位图对象的情况下做到这一点。什么是正确的方法?谢谢
c# - TIFF 文件中的负灰度值为白色
我正在使用 BitMiracle 的 LibTiff.NET 库来处理一些 TIFF 图像文件。我需要根据一个标准化公式转换每个像素的灰度值,这个公式会导致负像素值。
我将 Sampleformat TIFF 标签更改为:
但所有负灰度值在生成的图像中都显示为亮白色。
如果我通过添加最低灰度值的倒数来抵消所有值,那么图像是正确的。
我究竟做错了什么?完整代码:
c# - 为什么 Tiff.Open 方法总是返回 NULL 而不打开 tiff 文件?
概述:
我有一个问题,即一百台 PC 中的一台刚开始遇到 LibTiff 库问题,不想打开我的任何 tiff 图像。我怀疑它与已更改的依赖文件有关。我以前见过这个问题,但不记得我是如何解决这个问题的(我想我用另一台工作的 PC 上的一些 dll 文件替换了一些 dll 文件)。我尝试使用 Dependency Walker 来确定 LibTiff.Net dll 使用了哪些文件,但无法让 Dependency Walker 工作,它只是在打开一堆 dll 时出错。
问题:
是否有可能知道为什么文件没有被成功打开?所有方法都是返回 NULL,有没有办法得到某种类型的错误?我知道文件没有锁定(重新启动,并检查了其他方式)。我知道 tiff 文件很好,没有问题(将它们复制到另一台使用相同软件的 PC 上,它读取得很好)。我可以使用“GetLastError”之类的东西来返回 Open 方法返回 Null 的原因吗?
这是我目前的用法:
c# - TiffCP 进程不会关闭
我创建了一个 Windows 服务项目,它将使用 TiffCP exe 将找到的任何 tiff 文件拆分为多个 tiff 文件。我正在使用网站上作为示例给出的代码:
这按预期工作并拆分文件。但是,创建了一个进程 (MSPVIEW.EXE),我无法访问该文件,因为它正在另一个程序中进行编辑。我必须手动终止进程才能访问它。我也尝试将进程创建为变量,然后尝试关闭或终止它,但这似乎也不起作用。有任何想法吗?谢谢。
编辑:我已经在再次访问该进程之前放置了这段代码,并且当服务停止并且它似乎可以解决问题时。它有效,但我想知道是否有更好的方法。
c# - 生成 TIFF 时如何控制 TIFF 图像标题的第一个 IFD 偏移值?
我想知道有没有办法控制存储第一个值byte data
的图像标题中的 4。TIFF
IFD offset
我有一种情况,当我扫描三个不同的图像并直接存储到文件系统中时,它带有值[4949 002A 00000080](十六进制)
但是,使用libTiff .net api
时,当我将所有三个图像组合并创建一个时TIFF
,标头中的最后四个字节带有随机值,即 1st IFD offset
。
我有一个要求,第一个IFD offset
应该是00000080。我正在使用带有libTiff
.net api 的 C# 来生成TIFF
.
请找到snippet
代码:下面的代码使用捕获的图像创建一个 Tiff 文件:
front.tif、gray.tif 和rear.tif 具有正确的标题数据。[4949 002A 00000080](十六进制)
下面的代码使用 libTiff.net api 绑定所有图像并创建单个 tiff 图像。
一旦创建了三页的 TIFF 图像,标题值就会不一致。
[4949 002A
0003B210] (hex)
[更新 1]
Stackoverflow 回答output.CheckpointDirectory();
描述了在将任何数据写入文件之前调用。我也尝试了该方法并发现,现在标头的最后四个字节已更改,并且始终相同,不像之前它始终是随机的。现在我得到00000010
谢谢