
This is Version 0.6 of hpcdtoppm, Hadmut's pcd to ppm converter.
It has this name to be distinguishable in case someone
else is producing a program also called pcdtoppm.

Read the README.TOO and edit the config.h and the Makefile !

This program converts Photo-CD-Images to the ppm-Format of
pbmplus. You can compile the program in two ways:

1. Use its own ppm-writing-routines. In this case
   you don't need ppm-includes or libraries. You
   have to define macro 'OWN_WRITE' in the source or
   by compiler-option. I am not sure, whether the
   format of the ppm-header is the same on non-unix
   machines. If you get problems with line-endings
   (things like CR, LF, CR/LF), modify the macro
   PPM_Header.

2. You can use the pbmplus-routines. In this case
   you need some files from the pbmplus package to compile:

   ppm.h pgm.h pbm.h pbmplus.h libppm.a libpgm.a libpbm.a


IMPORTANT: Some older versions of the gcc have problems with
optimization. They produce buggy code. This code will not
die with 'segmentation fault' or something like that, it 
just produces damaged images. 

I did not have detailed information of the file-format and
most of my information I got by staring at the hex-dumps
of an image file. So I am not absolutly sure, whether it
works on all Photo-CDs, because there are some bytes in
the header which I don't understand. But it works on
my Photo-CD.

Note that you will get a 24 bit image. You can view these
files with xv, but if you have an 8-bit-screen you will
sometimes have some color-defects (if you have an 1-bit-screen
you will often have a lot of color-defects :-). 
It will also take some time to show with xv.

You can produce nice overview prints if you get the icontact
program of Mark B. Hanson and put something like

decode	pcd	hpcdtoppm -1 -a

in your ~/.icrc 

or by use of the pcdindex script of Pieter S. van der
Meulen in this distribution.


If you compile the program on a machine other than
SPARC please send me a short email which machine
you are using, whether you had problems or which
changes you have made.

If you port the program to any machine, please tell me,
what you did and where to get the program. Within the
last weeks I got a lot of mail asking for the special
Amiga/NeXT/SGI/... version. Read the Special.* files.



Thanks to

- James Pearson (jcpearso@ps.ucl.ac.uk) for giving debugging hints for 
  the 64Base code, for sending a 64Base image and the code to find the
  64Base files from the image file path.

- R. P. Channing ["Rick"] Rodgers (rodgers@nlm.nih.gov) for improving the
  man page.


- Some people sending code for TIFF and GIF writing code. Sorry, I didn't
  have the time to implant the code yet. I don't know whether many people want
  to have such extensions, please send mail if so.

- Adolf Mathias (mathias@ira.uka.de) for writing some of the
  postscript drivers.

- Pieter S. van der Meulen for the contact sheet script.

- Jeff for finding out how to detect the orientation of the 
  Overview thumbnails [ Hi Jeff, how are you? :-) ]

- A lot of people for sending mail about
  compilation on MS-DOS and OS/2 and many other machines.

- lots and lots of people for sending me their improvements of the code.
  Sorry, but I can not read and analyze them all. I do not have so
  much time for the decoder, its my hobby, not my job. Often I get
  mail with a complete source and "Hi Hadmut, I have improved your
  code. It is now faster/smaller/better/something_else." But I don't
  know, *what* is changed. A simple diff doesn't work, they all were
  reformatting my source completely and I do not have the time to
  read all sources to find the real changes. There are a lot
  of real good ideas, but *please* tell me, where is the beef.

- lots of people sending me just a formatted version of my code.
  Thanks to them all, and yes, I have indent(1). I prefer
  this way of formatting C-source.




Hadmut Danisch  (danisch@ira.uka.de , will change in future)
E.I.S.S.  (European Institute for System Security)
Universitaet Karlsruhe
Am Fasanengarten 5

D-76128 Karlsruhe  

Germany

FAX: +49 721 696893
Tel./FAX privat: +49 721 607306  (will change in future)

