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