Page 1 of 1

cloneImage problem

Posted: 2007-10-19T19:48:40-07:00
by togo
i write a program to resize an image use resizeImage function,
however i found that, the depth value was changed after resizeImage function called,

then i read the source of the resize.c, find that, the depth was changed after the CloneImage()

like
1172 fprintf(fp, "----- image %u\n", image->depth);
1173
1174 resize_image=CloneImage(image,columns,rows,MagickTrue,exception);
1175
1176 fprintf(fp, "---image %u -- resize_image %u\n", image->depth, resize_image->depth );

the output is
----- image 8
---image 8 -- resize_image 16

is it a bug? or i had made something wrong.

btw, i use ImageMagick-6.3.3,

thanks.

Re: cloneImage problem

Posted: 2007-10-21T05:56:43-07:00
by magick
We cannot reproduce the problem you posted. We tried your code snippet with ImageMagick 6.3.6-3, the current release, and the image depth after it was cloned remained at 8 as expected.

Re: cloneImage problem

Posted: 2007-10-21T21:29:03-07:00
by togo
i read the ImageMagick-6.3.3 code, and find it is casted by the function ModifyCache() in cache.c
with the line "image->depth=QuantumDepth;"
and it is modifed in ImageMagick 6.3.6-3, also i tested with 6.3.6, it's ok now

thanks very much

btw, if i still use ImageMagick-6.3.3, and just add a new line like "resize_image->depth = image->depth;" after cloneimage,
is it ok?

Re: cloneImage problem

Posted: 2007-11-22T17:16:49-07:00
by anthony
Resize creates a new image with new colors as such the default depth of theimage for writing out to a file is reset to the in memory quality.

Try setting -depth is you want it force the output image to be a specific depth.