PhotoCD & UNIX? - PCD to TIFF?

We have some National Aerial Photography Program images scanned onto a
Kodak PhotoCD (multisession), and want to import them into our UNIX
GIS system (GRASS). My questions:

1) Can a PhotoCD be mounted on a UNIX system? If so, how?
  (I tried the standard "mount -r /dev/sr0 /cdrom", but no luck
  -- is it a specific file system type that needs to be noted?)
  I can attach the CD to either a SPARCclassic or an IPX.

2) If # 1 is possible, can I just copy the *.pcd files I want to my
  SPARCclassic and use as they are, or do I need to run "dos2unix"
  on them?

3) Is there a PCD to TIFF converter around, perhaps as a new addition
  to the PBMplus toolkit? (I'd like a straight, hi-resolution
  conversion of the PCD format to TIFF)

4) Is there a UNIX (SunOS 4.1.3 or Sol 2.2) viewer of Kodak
  PhotoCD's, or a program that views/reads/converts the
  *.pcd format?

Some background:

Each *.pcd image is > 4M , and Corel(Draw/PhotoPaint) will not import at
the highest resolution (on a 486/66 w/8M RAM). This was my initial plan --
to use Corel(something) to convert to TIFF.

Any help sent our way will be GREATLY appreciated!!

Ronald Thomas ront@meeker.cfnr.colostate.edu
Natural Resource Spec. (GIS) ^^^ Phone: 303-586-3565 x285
  Resources Management Division ^^ ^^^^^ FAX: 303-586-4702
   Rocky Mountain National Park ^^^ ^^^^^^^ Estes Park, CO 80517

Gee, I just joined the list and already I can reply to a question.
I joined as a "friend of GRASS users" and will have a few questions of my
own soon. I am a Technical Support Applications Engineer for the color
printer division of Tektronix.

The QUESTIONS from Ronald Thomas (ront@meeker.cfnr.colostate.edu)

1) Can a PhotoCD be mounted on a UNIX system? If so, how?
(I tried the standard "mount -r /dev/sr0 /cdrom", but no luck
-- is it a specific file system type that needs to be noted?)
I can attach the CD to either a SPARCclassic or an IPX.

You can mount a PhotoCD as iso9660. Be warned though, if it is a multi-
session you will only be able to read the first session.

2) If # 1 is possible, can I just copy the *.pcd files I want to my
SPARCclassic and use as they are, or do I need to run "dos2unix"
on them?

You can copy them or you can just convert off your CDrom drive to your
hard disk.

3) Is there a PCD to TIFF converter around, perhaps as a new addition
to the PBMplus toolkit? (I'd like a straight, hi-resolution
conversion of the PCD format to TIFF)

I use a routine, hpcdtoppm, I'll include the man page for iman page for it
at the end of this. I use it on an SGI Indigo and I'm not sure if I still
have the source but the author's email address is in the man page and I know
I got it off the net.

4) Is there a UNIX (SunOS 4.1.3 or Sol 2.2) viewer of Kodak
PhotoCD's, or a program that views/reads/converts the
*.pcd format?

This one I don't know for sure. The SGI now has a viewer. You might check
the latest version ov XV (3.0 I think). You can certainly use XV on the
result of the conversion with hpcdtoppm. I'm pretty sure you can make hpcdtoppm
available to XV.

The man page follows at the end of this.

David Haight
Tektronix Technical Support
davidh8@pogo.wv.tek.com
800-835-6100 x 7354

hpcdtoppm(1) USER COMMANDS hpcdtoppm(1)

NAME
     hpcdtoppm v0.4 - convert a Photo-CD file into a portable
     pixmap

SYNOPSIS
     hpcdtoppm [options] pcd-file [ppm-file]

DESCRIPTION
     Decodes a Photo-CD Image file or Overview file. Image files
     you can find on the Photo-CD in photo_cd/images, they are
     named as "imgnnnn.pcd", where nnnn is a 4-digit-number. The
     Overview file is at photo_cd/overview.pcd . If there is no
     output filename given, output will be printed to stdout.
     hpcdtoppm stands for "Hadmut's pcdtoppm" to make it distin-
     guishable in case someone else is building the same thing
     and calling it pcdtoppm.

OPTIONS
     -x Overskip Mode. Works on Base/16, Base/4, Base and
          4Base. In Photo-CD images the luma channel is stored in
          full resolution, the two chroma channels are stored in
          half resolution only and have to be interpolated. In
          the Overskip Mode the chroma channels of the next
          higher resolution are taken instead of interpolating.
          To see the difference, generate one ppm with and one
          ppm without this flag. Use pnmarith to generate the
          difference image of these two images. Call ppmhist for
          this difference or show it with xv (push the HistEq
          button in the color editor).

     -s Apply simple sharpness-operator on the Luma-channel.

     -d Do not show the complete image, but only the
          decompressed difference. It works only on the 4Base
          and the 16Base resolution. It does not have any deeper
          sense, but it was simple to implement and it shows what
          causes different sizes of image files.

     -i Give some information from the fileheader to stderr. It
          works only for Image files. (It is not working
          correctly, just printing some strings.)

     -m Show the phases of decoding to stderr.

     -crop
          Try to cut off the black frame which is sometimes
          scanned at the image borders. The image size shrinks.

     -pos Print the file relative start position of the data for
          the current resolution.

     -rep Try to jump over reading errors in Huffman code.

Sun Release 4.1 Last change: 16 March 1993 1

hpcdtoppm(1) USER COMMANDS hpcdtoppm(1)

     -n Don't rotate the image.

     -r Rotate the picture clockwise for portraits.

     -l Rotate the picture counter-clockwise for portraits.

     -a Try to find out the image orientation byself. This
          doesn't work for overview files yet. It is very experi-
          mental and depends on one byte. Please tell me if it
          doesn't work.

     -vert
          Vertical flip.

     -hori
          Horizontal flip.

     -rgb Write rgb image in IRIS RGB format.

     -ppm Write rgb image in ppm-format.

     -pgm Write grayscale image in pgm-format.

     -ycc Write ycc image in ppm-format.

     -ps Write rgb image in postscript.

     -eps Write rgb image in encapsulated postscript.

     -psg Write grayscale image in postscript.

     -epsg
          Write grayscale image in encapsulated postscript.

     -pl f
          Set left position of Postscript image to f.

     -pb f
          Set bottom position of Postscript image to f.

     -pw f
          Set width of Postscript image to f.

     -ph f
          Set height of Postscript image to f.

     -c0 Don't correct the image.

     -c- Do a correction (darker). Hardware and taste dependend.

     -c+ Do a correction (brighter). Hardware and taste depen-
          dend.

Sun Release 4.1 Last change: 16 March 1993 2

hpcdtoppm(1) USER COMMANDS hpcdtoppm(1)

     -1 | -Base/16 | -128x192
          Extract the Base/16 size picture (size 128x192 pixels).
          Note that you can only give one size option.

     -2 | -Base/4 | -256x384
          Extract the Base/4 size picture.

     -3 | -Base | -512x768
          Extract the Base size picture.

     -4 | -4Base | -1024x1536
          Extract the 4Base size picture.

     -5 | -16Base | -2048x3072
          Extract the 16Base size picture.

     -0 | -Overview | -O
          Extract all pictures from an Overview file. A
          ppmfilename must be given. If the given name is "foo",
          the files are named "foonnnn", where nnnn is a 4-digit
          number. Since they are stored in Base/16 format, they
          are extracted in this format.

     -C d Extract all pictures from an Overview file. A
          ppmfilename must be given. If the given name is "foo",
          the files are named "foonnnn", where nnnn is a 4-digit
          number. Since they are stored in Base/16 format, they
          are extracted in this format.

BUGS
     hpcdtoppm seems to ignore the read protection. :slight_smile: The
     informations i have are quite vague and this program was
     developed by starring at the hex-dumps and the famous
     trial-and-error-method. If anything doesn't work, please
     send me a report and perhaps you could try to find out, why
     it doesn't work.

SEE ALSO
     ppm(5), ppmquant(1), ppmtopgm(1), ppmhist(1), pnmarith(1),
     ppmtorgb3(1), xv(1)

AUTHOR
     Copyright (c) 1992, 1993 by Hadmut Danisch
     (danisch@ira.uka.de). Permission to use and distribute this
     software and its documentation for noncommercial use and
     without fee is hereby granted, provided that the above copy-
     right notice appear in all copies and that both that copy-
     right notice and this permission notice appear in supporting
     documentation. It is not allowed to sell this software in
     any way. This software is not public domain.

Sun Release 4.1 Last change: 16 March 1993 3