imagemagick6 import issue
Steve Allewell
steve.allewell at gmail.com
Sun Nov 4 20:42:13 GMT 2018
On 03/11/2018 17:00, Sean Enck wrote:
> On 2018-11-03, Steve Allewell wrote:
>> 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
>>
>
> Yeah I've definitely noticed the sprinkled "#if"'s around imagemagick
> items and assumed the API changes have been a pain. I figured you would
> probably have a better approach but I figured I could at least figure
> out some form of resolution to help point you in a direction and utilize
> the functionality if needed :)
>
> Let me know if I can be of any assistance (I'm pretty much on v6 for a
> while)
>
> --Sean
>
Hi Sean
This doesn't appear to be a clear difference between V6 and V7. I have installed OpenSuSE 42.2 with Magick++ 6.8.8. With the
current code in git HEAD, importing images with and without transparency works as expected.
Which version of ImageMagick do you have which fails? This will give me a bounding range of versions that I can check.
Thanks
Steve
More information about the KXStitch
mailing list