博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
go.image/tiff 的一些问题
阅读量:5977 次
发布时间:2019-06-20

本文共 712 字,大约阅读时间需要 2 分钟。

hot3.png

最近给 增加了 Tile/Gray/Gray16/RGB16bit 等格式的支持. 还有一些特性以后会陆续完善.

Go语言图像库的基本思路是能尽量提供完善的解码功能(当然只支持文件的第一个图像). 而编码功能则比较有限, 主要是支持基本的不同颜色模型, TIFF特有的特性应该不会完整支持.

最近有用户反馈生成的tiff在Mac系统不能正常浏览(). 而我自己的Win7/64可以正常打开有问题的图像. 用 tiffinfo 也没有看到什么异常的Tag(有问题的已经修改之后).

之后无意中用GIMP也不能打开Mac有问题的tiff影像. 既然问题已经重现, 查找原因就容易多了.

初步分析之后, 发现问题主要是针对非RGB的图像(灰度和调色板). 然后发现, go.image/tiff的Encode函数对非RGB的影像都写了ExtraSamples标签, 而这个函数只有对波段数大于RGB的3的时候才会起作用(具体看TIFF Spec的介绍).

当然, 有些容错性较好的程序可以忽略无效的ExtraSamples标签(比如Windows下的很多程序). 但是, 如果严格按照TIFF规范的话, 包含ExtraSamples标签的灰度和调色板格式确实是有问题的. 修复这个问题之后(), GIMP就可以正常工作了(Mac部分还在等待用户反馈).

经过这个BUG发现, 还是要非常了解TIFF格式规范, 不然实现中很容易带入一些错误的理解. 当然, go.image/tiff 的测试也需要继续完善.

关于TIFF的介绍请参考:

转载于:https://my.oschina.net/chai2010/blog/162723

你可能感兴趣的文章
javascript的变量
查看>>
python socket练习
查看>>
Windows栈溢出原理
查看>>
弹框组件
查看>>
数据结构 引言
查看>>
IIS怎么设置本地域名解析(本地域名测试配置)
查看>>
编程之美——2.7 求最大公约数
查看>>
UIColor的封装
查看>>
elastic search2.3.1(3) 查询语句拼接实战termQuery ,matchQuery, boolQuery, rangeQuery, wildcardQuery...
查看>>
JSONUtil
查看>>
STM32 flash
查看>>
python之命令行解析工具argparse
查看>>
在性能测试时使用nmon进行监控服务器性能
查看>>
斐波拉契数列:1、1、2、3、5、8、13、21……,编写函数,求数列的第n项F(n)(3<=n<=40)。输入n,输出F(n)。...
查看>>
读取pandas修改单列数据类型
查看>>
LA 6474 Drop Zone (最小割)
查看>>
JQuery中的html(),text(),val()区别
查看>>
JS函数重载解决方案
查看>>
常用dos命令
查看>>
CSS background-position 用法详细介绍
查看>>