Coder Social home page Coder Social logo

tiff2png's Introduction

+----------------------------------------------------------------------+
| tiff2png - converts a Tagged Image File Format (TIFF) file into      |
|            a Portable Network Graphics (PNG) file                    |
|                                                                      |
| Copyright 1996,2000 Willem van Schaik, Singapore ([email protected]) |
| Copyright 1999-2002 Greg Roelofs ([email protected])                    |
|                                                                      |
+----------------------------------------------------------------------+

  This is the first attempt for a tiff2png program. Reason to develop
  it was the lack of conversion possibilities for TIFF files containing
  alpha channels. 

  Especially NeXT users create lots of TIFF files that have the rather
  exceptional 2-bit gray and 4-bit color formats, where both can have
  an alpha channel besides the graphics info. Because PBMplus is not
  supporting alpha, that path "tifftopnm <file> | pnmtopng > <file>"
  makes that the alpha and transparency gets lost.

  I have chosen to use PNG formats as similar as possible to the
  format of the original TIFF file. Thus, paletted TIFF files will be
  converted into PNG files with color-type 3 (= paletted). Only for
  some cased the bit-depth had to be altered to accommodate both
  standards.

  At this moment the program supports grayscale images, full-color RGB
  images, and colormapped (palette) images. This is all in 1 to 16 bits
  per sample (i.e., up to 64-bit RGBA).  The compression is as good as
  or better than libtiff is, which is pretty OK. I also implemented
  support for both single-image-planes as well as separated-color-planes.
  Support for so-called tiled images I have left out, for the time being.
  [partial support for tiled images added as of version 0.9]

  Major headaches were the PhotometricInterpretation parameters
  "min-is-white" and "min-is-black". I couldn't yet figure it out for
  100%, but I suspect incompatibilities between older (netpbm) version
  2.4 of libtiff and the later v3.x.  The "-invert" option is available
  in case there are still problems with some images.

  The major decoding and coding work is done by the libtiff, libpng, and
  zlib libraries; newer versions of libtiff can optionally use libjpeg,
  as well.  So you need to get those as well.  The latest versions of
  libtiff can be found here:

	http://www.libtiff.org/

  Older versions may still exist here:

	ftp://ftp.sgi.com/graphics/tiff/tiff-v3.4-tar.gz
	ftp://ftp.x.org/R5contrib/netpbm-1mar1994.tar.gz   [contains 2.4]

  libpng and zlib may be found at these sites:

	http://www.libpng.org/pub/png/libpng.html
	http://www.zlib.org/

  or here:

	ftp://swrinde.nde.swri.edu/pub/png/src/ (libpng* or lpng*, and zlib*)

  libjpeg is available here:

	http://www.ijg.org/
	ftp://ftp.uu.net/graphics/jpeg/

  To build, first make zlib, libpng, libjpeg, and libtiff according to
  their build instructions.  Then edit the tiff2png makefile so that the
  locations of the libraries are correct, and type "make".  A separate
  archive, tiff2png-images.zip, contains some test files; the included
  script Alpha.sh will convert all of the TIFFs, overwriting the PNGs at
  the same time. :-) If you have a web browser with adequate alpha support
  (see http://www.libpng.org/pub/png/pngapbr.html for info and links),
  you can test the results by loading Alpha.html in your browser and see
  what happens when you change the background color of the page.

  I also tested this utility against the test pictures at ftp.sgi.com.
  With the exception of the tiled images (not retested since support for
  tiled images was added in tiff2png 0.9), the results were good. But
  there can and will still be many TIFF files that don't convert correctly.
  Please send Greg a copy if you come across such a beast--as long as
  it's not multi-megabytes in size!
  
  For the time being I concentrated on straightforward support of as
  many formats as possible. Future plans are to create PNG chunks for
  all those informational fields that TIFF also contains, like Name,
  Date, Position, Resolution, etc. A somewhat bolder plan is to
  convert the ColorResponseCurves field into PNG gamma/chromaticity
  or iCCP chunks. We'll see. At the moment there is a command-line
  parameter to add a gamma chunk to your PNG file; if you know what
  color space the image pixels are in (e.g., sRGB -> gamma 1/2.2 =
  0.45455), you can (and should!) add this information to the PNG
  file(s).

  The tiff2png web page is here:

	http://www.libpng.org/pub/png/apps/tiff2png.html

  Willem's home page is here:

	http://www.schaik.com/

  Please send bug reports to Greg Roelofs ([email protected]) and thanks
  to Willem ([email protected]).

Greg Roelofs
[email protected]

tiff2png's People

Contributors

rillian avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.