PngMinus
--------
(copyright Willem van Schaik, 1999-2019)
Some history
------------
Soon after the creation of PNG in 1995, the need was felt for a set of
pnmtopng / pngtopnm utilities. Independently Alexander Lehmann and I
(Willem van Schaik) started such a project. Luckily we discovered this
and merged the two, which later became part of NetPBM, available from
SourceForge.
These two utilities have many, many options and make use of most of the
features of PNG, like gamma, alpha, sbit, text-chunks, etc. This makes
the utilities quite complex and by now not anymore very maintainable.
When we wrote these programs, libpng was still in an early stage.
Therefore, lots of the functionality that we put in our software can now
be done using transform-functions in libpng.
Finally, to compile these programs, you need to have installed and
compiled three libraries: libpng, zlib and netpbm. Especially the latter
makes the whole setup a bit bulky. But that's unavoidable given the many
features of pnmtopng.
What now (1999)
---------------
At this moment libpng is in a very stable state and can do much of the
work done in pnmtopng. Also, pnmtopng needs to be upgraded to the new
interface of libpng. Hence, it is time for a rewrite from the ground up
of pnmtopng and pngtopnm. This will happen in the near future (stay
tuned). The new package will get a different name to distinguish it from
the old one: PngPlus.
To experiment a bit with the new interface of libpng, I started off with
a small prototype that contains only the basic functionality. It doesn't
have any of the options to read or write special chunks and it will do
no gamma correction. But this makes it also a simple program that is
quite easy to understand and can serve well as a template for other
software developments. By now there are of course a couple of programs,
like Greg Roelofs' rpng/wpng, that can be used just as good.
Can and can not
---------------
As this is the small brother of the future PngPlus, I called this fellow
PngMinus. Because I started this development in good-old Turbo-C, I
avoided the use the netpbm library, which requires DOS extenders. Again,
another reason to call it PngMinus (minus netpbm :-). So, part of the
program are some elementary routines to read / write pgm- and ppm-files.
It does not handle B&W pbm-files, but instead you could do pgm with bit-
depth 1.
The downside of this approach is that you can not use them on images
that require blocks of memory bigger than 64k (the DOS version). For
larger images you will get an out-of-memory error.
As said before, PngMinus doesn't correct for gamma. When reading
png-files you can do this just as well by piping the output of png2pnm
to pnmgamma, one of the standard PbmPlus tools. This same scenario will
most probably also be followed in the full-blown future PngPlus, with
the addition of course of the possibility to create gamma-chunks when
writing png-files.
On the other hand it supports alpha-channels. When reading a png-image
you can write the alpha-channel into a pgm-file. And when creating an
RGB+A png-image, you just combine a ppm-file with a corresponding
pgm-file containing the alpha-channel. When reading, transparency chunks
are converted into an alpha-channel and from there on treated the same
way.
Finally you can opt for writing ascii or binary pgm- and ppm-files. When
the bit-depth is 16, the format will always be ascii.
Using it
--------
To distinguish them from pnmtopng and PngPlus, the utilities are named
png2pnm and pnm2png (2 instead of to). The input- and output-files can
be given as parameters or through redirection. Therefore the programs
can be part of a pipe.
To list the options type "png2pnm -h" or "pnm2png -h".
Just like Scandinavian furniture
--------------------------------
You have to put it together yourself. I developed the software on MS-DOS
with Turbo-C 3.0 and RedHat Linux 4.2 with gcc. In both cases I used
libpng-1.0.4 and zlib-1.1.3. By now (2019) it is twenty years later and
more current versions are OK.
The makefile assumes that the libpng libraries can be found in ../.. and
libz in ../../../zlib. But you can change this to for example ../libpng
and ../zlib. The makefile creates two versions of each program, one with
static library support and the other using shared libraries.
If you create a ../pngsuite directory and then store the basn####.png
files from PngSuite (http://www.schaik.com/pngsuite/) in there, you can
test the proper functioning of PngMinus by running pngminus.sh.
Warranty
-------
Please, remember that this was just a small experiment to learn a few
things. It will have many unforeseen features <vbg> ... who said bugs? Use
it when you are in need for something simple or when you want a starting
point for developing your own stuff.
The end
-------
Willem van Schaik
mailto:willem at schaik dot com
http://www.schaik.com/png/
Oct 1999, Jan 2019
没有合适的资源?快使用搜索试试~ 我知道了~
x64位 + zlib1.2.11+libpng1437+zint+vs2019debug环境搭建
共1337个文件
png:198个
c:155个
obj:152个
需积分: 0 0 下载量 9 浏览量
2024-04-05
01:21:45
上传
评论
收藏 51.47MB RAR 举报
温馨提示
文档中,多使用自已电脑的路径。
资源推荐
资源详情
资源评论
收起资源包目录
x64位 + zlib1.2.11+libpng1437+zint+vs2019debug环境搭建 (1337个子文件)
miniunzip.1 2KB
minizip.1 1KB
libpng.3 266KB
zlib.3 4KB
libpngpf.3 825B
makefile.32sunu 8KB
png.5 3KB
makefile.64sunu 8KB
README.686 2KB
pngstest-1.8 53B
pngstest-1.8-alpha 54B
configure.ac 19KB
configure.ac 787B
makefile.acorn 2KB
zlib.adb 20KB
test.adb 13KB
zlib-streams.adb 6KB
mtest.adb 4KB
read.adb 4KB
buffer_demo.adb 4KB
zlib-thin.adb 3KB
zlib-thin.ads 15KB
zlib.ads 13KB
zlib-streams.ads 4KB
makefile.aix 4KB
Makefile.am 14KB
Makefile.am 818B
makefile.amiga 2KB
ANNOUNCE 1KB
gvmat64.asm 16KB
inffas32.asm 16KB
match686.asm 15KB
inffasx64.asm 10KB
makefile.atari 2KB
AUTHORS 1KB
options.awk 32KB
checksym.awk 6KB
dfn.awk 6KB
test.bat 26KB
png2pnm.bat 2KB
pnm2png.bat 2KB
bld_ml32.bat 92B
bld_ml64.bat 86B
pngminus.bat 44B
makefile.bc32 4KB
makefile.beos 8KB
bndsrc 4KB
Makefile.bor 3KB
Makefile.bor 3KB
libpng16.bsc 7.42MB
DotZLib.build 1KB
pngvalid.c 388KB
pngrtran.c 168KB
png.c 158KB
pngrutil.c 149KB
pngread.c 143KB
pngfix.c 131KB
pngstest.c 107KB
rss.c 83KB
qr.c 83KB
rpng2-x.c 83KB
pngwutil.c 81KB
deflate.c 77KB
pngwrite.c 77KB
pngcp.c 74KB
unzip.c 69KB
composite.c 68KB
zip.c 64KB
pngtest.c 63KB
aztec.c 60KB
code1.c 57KB
makepng.c 55KB
inflate.c 54KB
pngimage.c 52KB
pngset.c 52KB
hanxin.c 46KB
library.c 46KB
rpng2-win.c 46KB
ps.c 45KB
dmatrix.c 45KB
raster.c 43KB
trees.c 43KB
dotcode.c 41KB
gzlog.c 41KB
example.c 40KB
pdf417.c 40KB
inffas86.c 40KB
gridmtx.c 38KB
pngunknown.c 37KB
puff.c 37KB
pngget.c 34KB
svg.c 34KB
codablock.c 34KB
code128.c 33KB
main.c 32KB
getopt.c 32KB
pngpread.c 32KB
wpng.c 32KB
rpng-x.c 31KB
render.c 31KB
共 1337 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14
资源评论
智慧的人逃亡
- 粉丝: 30
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python 手写实现 iD3 决策树算法-根据信息增益公式.zip
- 411675952289057车联助手-小窗版(三星)3.5.1.apk
- 三种快速排序方法合并在一个文件中以便直接运行的Python代码示例
- 937712277954201实习5.word
- 2程序语言基础知识pdf1_1716337722703.jpeg
- 简单的Python示例,演示了如何使用TCP/IP协议进行基本的客户端和服务器通信
- 考试.sql
- keil2 + proteus + 8051.exe
- 1961ee27df03bd4595d28e24b00dde4e_744c805f7e4fb4d40fa3f695bfbab035_8(1).c
- mediapipe-0.9.0.1-cp37-cp37m-win-amd64.whl.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功