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
