Imagemagick depth convert

image, image-processing, imagemagick

Solution

I think you need something along these lines to get 16-bit PNGs

convert a.png -depth 16 PNG48:b.png

Problem

Having an imgage `in.png`. Now do the next: ``` $ convert in.png -strip out.tiff #convert to tiff $ convert out.tiff -strip out.png #and back $ cmp in.png out.png $#no output - the images has no difference - theyre same $ identify in.png out.png in.png PNG 300x300 300x300+0+0 16-bit sRGB 1.65KB 0.000u 0:00.000 out.png[1] PNG 300x300 300x300+0+0 16-bit sRGB 1.65KB 0.000u 0:00.000 ``` now trying this via `eps`. So: ``` $ convert in.png -strip out2.eps #convert to eps $ convert out2.eps -strip out2.png #back ``` and the images are different. ``` $ identify in.png out.png out2.png in.png PNG 300x300 300x300+0+0 16-bit sRGB 1.65KB 0.000u 0:00.000 out.png[1] PNG 300x300 300x300+0+0 16-bit sRGB 1.65KB 0.000u 0:00.000 out2.png[2] PNG 300x300 300x300+0+0 8-bit sRGB 4c 321B 0.000u 0:00.009 ``` As you can see, the conversion eps -> png creates 8-bit png. Curiosity plus - the EPS is 16 bit! ``` $ identify out2.eps out2.eps PS 300x300 300x300+0+0 16-bit sRGB 1.42KB 0.000u 0:00.000 ``` Questions: - why the `eps->png` conversion changes the bit-depth? - how to convert from eps to png to get 16-bit png? (as from tiff). EDIT Tested @Rachel recommendation: ``` $ convert out2.eps -depth 16 out3.png $ identify out3.png out3.png PNG 300x300 300x300+0+0 8-bit sRGB 4c 518B 0.000u 0:00.000 ``` 8 bit again. My ImageMagick version: ``` $ convert --version Version: ImageMagick 6.8.9-1 Q16 x86_64 2014-06-01 http://www.imagemagick.org Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC Features: DPC Modules Delegates: bzlib djvu fftw fontconfig freetype gslib gvc jng jp2 jpeg lcms ltdl lzma pangocairo png ps tiff webp wmf x xml zlib ``` If anyone want test, here is my test image: FINAL So, @Mark Setchell and @Rachel Gallen's recommendation are good. @Marks command works, so the key is PNG48. ``` $ convert out2.eps -depth 16 PNG48:out7.png $ identify out7.png out7.png PNG 300x300 300x300+0+0 16-bit sRGB 1.86KB 0.000u 0:00.000 ``` Finally 16-bit png. What I will ask it in another question, why the next: ``` $ mogrify -strip out7.png $ identify out7.png out7.png PNG 300x300 300x300+0+0 8-bit sRGB 4c 321B 0.000u 0:00.000 ``` 8 bit again. And the `-strip` should remove only metadata and should not change the image itself.

Original source