[magick-users] 16 bits pgm file
Mathieu Malaterre
mathieu.malaterre at gmail.com
Tue Sep 11 01:10:55 PDT 2007
On 9/11/07, Anthony Thyssen <anthony at griffith.edu.au> wrote:
> "Mathieu Malaterre" on wrote...
> | Hello,
> |
> | I am having some issue with a 16bits pgm file. Are those steps
> | supposed to work:
> |
> |
> | $ wget http://samples.mplayerhq.hu/jpegls/test16.pgm
> | $ identify test16.pgm
> | test16.pgm PNM 256x256 PseudoClass 4096c 128kb
> | $ convert test16.pgm test16.gray
> | $ convert -depth 16 -size 256x256 test16.gray test16-2.pgm
> | $ diff test16.pgm test16-2.pgm
> | Binary files test16.pgm and test16-2.pgm differ
> | $ md5sum test16.pgm test16-2.pgm
> | 7a4c2d943148520d2f0da1882b2be204 test16.pgm
> | 2da0da03b6eb03a7ecc401c0be70d639 test16-2.pgm
> | $ identify test16-2.pgm
> | test16-2.pgm PNM 256x256 PseudoClass 65536c 128kb
> |
> | Technically I'd like to know what is the command line to produce a
> | valid 16bits pgm file from a raw grayscale little endian 16bits file.
> |
>
> Also the original pgm file is a 12bit depth.
> IM will not save 12bit PGM files, not at this time at least
> I have put in a proposal for this to be fixed.
>
> Then there is the matter of if it is a compressed (binary) or
> uncompressed (text) PGM file.
Hi Anthony,
I think I now understand. When converting a grayscale 16bits one
*has* to specify the endian encoding of the raw image. ImageMagick is
simply assuming the raw image is big endian. Thus the correct command
to convert a 16bits LSB grayscale image into pgm is:
$ convert -endian LSB -depth 16 -size 3064x4664 MG.gray MG.pgm
but
$ convert -depth 16 -size 3064x4664 MG.gray MG.tiff
<feature request>
It would be nice if convert would warn that some file format require
big endian encoding (pgm).
</feature request>
Thanks,
--
Mathieu
More information about the Magick-users
mailing list