关于 mask的保存

之前再pdf中接触到 pbm pgm ppm等文件格式, 于是做了一些分析. 这类文件相当于bmp格式,将图片数据完全用一对一的方式进行保存, 而不是压缩.

最近在处理一批mask文件, 想到了p*m这类文件的存储方式.
下面是我做的一些实验:

$ ll aa* bb* cc*
-rw-rw-r-- 1 hocker hocker    443 1月  21 11:09 aa.7z
-rw-rw-r-- 1 hocker hocker 122955 1月  21 11:07 aa.pbm
-rw-rw-r-- 1 hocker hocker    440 1月  21 11:11 aa.tar.xz
-rw-rw-r-- 1 hocker hocker    394 1月  21 11:09 bb.7z
-rw-rw-r-- 1 hocker hocker 122895 1月  21 11:07 bb.pbm
-rw-rw-r-- 1 hocker hocker    400 1月  21 11:11 bb.tar.xz
-rw-rw-r-- 1 hocker hocker    490 1月  21 11:12 cc.7z
-rw-rw-r-- 1 hocker hocker    581 1月  21 11:07 cc.png
-rw-rw-r-- 1 hocker hocker    500 1月  21 11:11 cc.tar.xz

其中 aa.pbm 是用 netpbmfile 库得到的文件:

from netpbmfile import *
NetpbmFile.fromdata(mask, maxval=1).write(fp, pam=True) 

bb.pbm 是用 PIL.Image 得到的pbm文件:

from PIL import Image
Image.fromarray(mask).save('bb.pbm')

前者文件头显示P7, 后者文件头显示P4. 可能是pbm协议版本不一样,文件大小差距不大.

cc.png是通过 PIL.Image 得到的png文件.

from PIL import Image
Image.fromarray(mask).save('cc.png')

可以看到png其实比 pbm文件小了很多.

我们再通过xz和7z对 pbm文件经行了压缩, 发现和png文件差距不是很大.

由上面可以得到, 其实保存mask文件,png本身是无损压缩, 用png还是比较划算的, 还是用png进行mask保存吧.


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部