On Tue, 3 Feb 2009, Anthony Thyssen wrote:

> On Mon, 02 Feb 2009 07:16:38 -0500 (Eastern Standard Time)
> Robert Funnell <[email protected]> wrote:
>
> | On Mon, 2 Feb 2009, Anthony Thyssen wrote:
> |
> | > On Sun, 01 Feb 2009 08:58:36 -0500 (Eastern Standard Time)
> | > [email protected] wrote:
> | >
> | > | I am trying to convert 16-bit GRAY files to 8-bit JPEG or PNG format.
> | > | Since the original images are actually 12-bit, I assume that I need to
> | > | right-shift each pixel, so I'm using a command like
> | > |
> | > | convert -size 512x512+3416 -depth 16 -evaluate RightShift 4 -endian LSB 
> gray:c_vf1169.fre c_vf1169_rs4_lsb.png
> | > |
> | > | The effect seems to be that the high-order byte is simply ignored when
> | > | the right-shift is done. Could someone please explain what I'm doing
> | > | wrong? I'm using IM 6.2.4 Q16 as distributed by Debian.
> | > |
> | > | I apologize if this is really obvious, but I haven't been able to
> | > | figure it out or find an answer.
> | > |
> | > perhaps the 12 bit values in 16 bit integers are already left shifted?
> |
> | The 12 bits are indeed right shifted in their 16-bit representation.
> | What I wanted to do was to right shift the 12 bits into an 8-bit value
> | for use in an 8-bit PNG.
> |
> | In looking into this further in response to your response, I've
> | discovered that PNG does support 16-bit greyscale, but I don't want
> | that. I've tried some additional manoeuvres but without success, and I
> | haven't figured out how to tell IM whether to produce 8-bit or 16-bit
> | PNG.
> |
> | - Robert
> |
> Note that IM will only use the most significate bits if the output image
> format is only using 8 bits values.  So you will not need to right shift
> them.

I'm a bit confused by this. Are you saying: 
'Note that IM will use only the 8 most significant bits if the output 
image format is using 8-bit values'?

> That is if the 12 bit value are currently converted to 16 bit values
> either by -evaluate LeftShift, or by IM itself. then IM will handle
> any further processing correctly.

Under what circumstances would IM convert the 12-bit value to 16 bits 
'by itself', without my doing a LeftShift?

> Try  saving using      -depth 8 output.png
> or using      png8:output.png    for a 8bit palette PNG image.

If I understand you correctly, I should do
convert -size 512x512+3416 -endian LSB -depth 16 -evaluate LeftShift 4 
gray:c_vf1169.fre -depth 8 c_vf1169_ls4_lsb.png

It doesn't work, but if you say that that's what I should be doing 
then I'll explore the pixel bits some more.

- Robert


_______________________________________________
Magick-users mailing list
[email protected]
http://studio.imagemagick.org/mailman/listinfo/magick-users

Reply via email to