lpfaq.txt
上传用户:zlh9724
上传日期:2007-01-04
资源大小:1991k
文件大小:7k
- 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