mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
191 lines
6.5 KiB
Plaintext
191 lines
6.5 KiB
Plaintext
libpng FAQ - August 20, 1995
|
|
|
|
Maintainer:
|
|
|
|
Guy Eric Schalnat: schalnat@group42.com CompuServe: 75501,1625
|
|
|
|
|
|
Contents:
|
|
|
|
1) General Questions
|
|
1.1) How official is this FAQ?
|
|
1.2) How often is this FAQ posted?
|
|
1.3) Where can I get this FAQ, libpng, zlib, the PNG
|
|
specification, test images, etc.?
|
|
1.4) How ready is libpng?
|
|
1.5) How portable is libpng?
|
|
1.6) When will libpng be out of Beta?
|
|
1.7) What remains to be done in libpng for the 1.0 release?
|
|
1.8) Can I help?
|
|
1.9) Why don't you answer your mail?
|
|
|
|
2) Libpng questions
|
|
2.1) Does the order of functions calls matter?
|
|
2.2) When I try to read/write a png image, it doesn't work.
|
|
2.3) Do I have to start with example.c?
|
|
2.4) What things should I be careful of?
|
|
2.5) Why doesn't example.c compile?
|
|
|
|
3) Critical Patches
|
|
No known bugs (for now :-).
|
|
|
|
4) Non-critical patches
|
|
No known bugs (for now :-).
|
|
|
|
|
|
Questions:
|
|
|
|
1) General Questions
|
|
|
|
1.1) How official is this FAQ?
|
|
|
|
As it was written by the author of libpng (that's me :), it's
|
|
about offical as one can get. However, it is not ready for
|
|
prime time yet, as libpng is still in beta, and thus its
|
|
users are of the sort that are willing to deal with beta
|
|
software. Thus, I assume all of you reading this have a
|
|
basic familiarity with PNG, libpng, and C programming. I'll
|
|
write a basic section for libpng later, as well as some quick
|
|
stuff on PNG itself (but this will not be the PNG FAQ. I just
|
|
don't have that kind of time).
|
|
|
|
1.2) How often is this FAQ posted?
|
|
|
|
As often as events warrant. I doubt it'll get stale, and as
|
|
it is not (and may never be) actually posted to a newsgroup,
|
|
I feel no need to make monthy postings.
|
|
|
|
1.3) Where can I get this FAQ, libpng, zlib, the PNG
|
|
specification, test images, etc.?
|
|
|
|
Everything should be at ftp://ftp.uu.net/graphics/png and
|
|
mirror sites. On CompuServe, it should be at GO GRAPHSUPPORT
|
|
in the Png Development library (lib 20). Failing that, try
|
|
my ftp site at ftp://ftp.group42.com/pub/png or web site at
|
|
http://www.group42.com/ If you have trouble getting to these,
|
|
the numerical address is 204.94.158.25
|
|
|
|
1.4) How ready is libpng?
|
|
|
|
In its current incarnation (0.8), it still may have a few bugs.
|
|
I think I got all of the bugs this time, but one never knows.
|
|
Also, the dithering currently in libpng is horrid, so that
|
|
needs work. Finally, I have yet to implement medium model
|
|
support.
|
|
|
|
1.5) How portable is libpng?
|
|
|
|
As portable as I can make it. It needs int's of at least
|
|
16 bits, and longs of at least 32 bits. It has not been
|
|
tried for char's larger then 8 bits. It should support
|
|
any reasonable K&R C compiler, as well as any ANSI C
|
|
compiler. The most you should need to do is change the
|
|
includes in pngconf.h. So far, I know of no compiler in use
|
|
that libpng will not compile on.
|
|
|
|
1.6) When will libpng be out of Beta?
|
|
|
|
That depends on my workload here. I'm writing libpng for
|
|
free, which generates tons of good will, but doesn't help
|
|
put food on the table, so there are times I just can't do
|
|
any real work on it. There is still some work to be done
|
|
(see question 1.7), so don't expect the official version
|
|
before September (and that may be pushing it). I'll try
|
|
to get the next (last?) beta version out my early
|
|
September. Be warned, I always seem to take twice as
|
|
long as I think I will.
|
|
|
|
1.7) What remains to be done in libpng for the 1.0 release?
|
|
|
|
Add Tim Wegner's medium memory model support. (Thanks, Tim).
|
|
Improve the dithering.
|
|
Rewrite libpng.txt, and comment the code better.
|
|
Test with a final zlib.
|
|
|
|
1.8) Can I help?
|
|
|
|
Sweet words. The most helpful thing you can do for the
|
|
1.0 release is help testing on your compiler. After this
|
|
release, though, there is a large list of things that ought
|
|
to be done to make libpng be more full featured. We'll
|
|
talk about this later, as I don't want to add tons of new
|
|
code until after 1.0 gets out the door. Please send me
|
|
any makefile changes and/or other changes needed to support
|
|
your compiler (with a #ifdef for the code changes).
|
|
|
|
If any of you are good at technical writing, take a look at
|
|
libpng.txt and correct it (or rewrite it) as necessary. I
|
|
am not a writer, I'm a programmer. It shows.
|
|
|
|
1.9) Why don't you answer your mail?
|
|
|
|
I've been busy. I'm sorry about that, and I've got to get
|
|
into the habit of at least replying that I got the message.
|
|
Also, some of you have sent me problems that I haven't gotten
|
|
back to you yet. If it is still a problem, you may want to
|
|
give me a short message and remind me that I need to look into
|
|
it. Libpng is being tested by more people than I dared hope
|
|
(which is a good thing), and I was unprepared to deal with so
|
|
many problems so soon.
|
|
|
|
|
|
2) Libpng questions
|
|
|
|
2.1) Does the order of functions calls matter?
|
|
|
|
In general, yes. If you stick with the order I used in libpng.txt
|
|
and example.c, you should be safe. Be warned, however, that I
|
|
messed up the order of png_set_interlace_handling(). It needs
|
|
to be called *before* png_start_read_image(), not after. Oops.
|
|
The exceptions to this rule are all the png_set ... calls.
|
|
They can be done in any order, but they all have to be done
|
|
in the area indicated by libpng.txt/example.c.
|
|
|
|
2.2) When I try to read/write a png image, it doesn't work.
|
|
|
|
Does zlib's test program work (example.c)? Does libpng's test
|
|
program work (testpng.c)? Have you installed the patches at
|
|
the end of this FAQ? After all that, if the problem continues,
|
|
e-mail me, and we'll try to fix it. If you don't have much
|
|
programming experience, be patient about the fix. Code
|
|
fragments help, as do *small* images (uuencoded please). If
|
|
I don't get back to you right away, give me some time. Thanks.
|
|
|
|
2.3) Do I have to start with example.c?
|
|
|
|
No, but most people have had much better luck doing that. Seems
|
|
I didn't explain things well in libpng.txt, so things are not
|
|
intuitive to people (which could be an api design problem also).
|
|
Sometime in the future, we'll revisit the api design, and try
|
|
to make it easier to use. I'll rewrite libpng.txt before the
|
|
1.0 release.
|
|
|
|
2.4) What things should I be careful of?
|
|
|
|
The main gotcha is calling png_read_init() before png_info_init().
|
|
Also, always make sure you have a correct setjmp buffer. That's
|
|
all I can think of for now.
|
|
|
|
2.5) Why doesn't example.c compile?
|
|
|
|
I wrote example.c as a staring point for using libpng. It doesn't
|
|
compile because I don't know how you want to do things like allocating
|
|
memory to hold the image, so I left that code out. If you go in and
|
|
finish it up, it should work fine. The file pngtest.c gives a
|
|
very simple example of reading and writing png files.
|
|
|
|
|
|
3) Critical Patches
|
|
|
|
No known bugs (for now :-).
|
|
|
|
|
|
4) Non-critical patches
|
|
|
|
No known bugs (for now :-).
|
|
|
|
|
|
That's it so far as I know. If I missed something, yell.
|
|
|
|
-Guy
|