imagemagick6 import issue

Steve Allewell steve.allewell at gmail.com
Sat Nov 3 14:19:47 GMT 2018


On 02/11/2018 23:51, Sean Enck wrote:
> I was using kxstitch compiled against imagemagick V6 and it appears that 
> image import doesn't work properly (running against the git head as 
> we've already fixed the last issue). In V6 of imagemagick the import 
> produces a completely black image. I bisected and was able to get to 
> 295773f44bfda1227d85edf065a8de14dc889159 as the commit that caused the 
> actual regression. The gist below is a partial revert where I was able 
> to successfully import an image with colors (aka not all black).
> 
> Again this only against imagemagick V6.
> 
> Patch: https://gist.github.com/enckse/de74000c2fc41c3ceb90c97fa9693250
> 
> --Sean
> 
Hi Sean

Thanks for that.

The number of problems I have had keeping up with the changes in the Magick++ API, I have started looking at my own colour
reduction/mapping code to try and get away from using it.

I'm not sure why the pixelColor function doesn't work in V6.  It is available in the API and it should return the same value as in V7.

The pixelColor code essentially does the same as your patch assuming the image is a DirectClass.
The PseudoClass is for indexed colour palettes.
-----------------------------
Magick::Color Magick::Image::pixelColor(const ssize_t x_, const ssize_t y_) const
{
  ClassType
    storage_class;

  storage_class=classType();
  if (storage_class == DirectClass)
    {
      const PixelPacket
        *pixel;

      pixel=getConstPixels(x_,y_,1,1);
      if (pixel)
        return(Color(*pixel));
    }
  else if (storage_class == PseudoClass)
    {
      const IndexPacket
        *indexes;

      indexes=getConstIndexes();
      if(indexes)
        return(colorMap((size_t) *indexes));
    }

  return(Color()); // invalid
}
-------------------------------

I am going to build a virtual machine and try different versions of ImageMagick to see if I can resolve this.

Regards

Steve



More information about the KXStitch mailing list