https://bugs.documentfoundation.org/show_bug.cgi?id=160690

Patrick Luby (volunteer) <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|[email protected] |[email protected]
                   |desktop.org                 |
             Status|NEW                         |ASSIGNED

--- Comment #9 from Patrick Luby (volunteer) <[email protected]> ---
I think I found the cause: GIF images with color palettes of 16 colors or less
need additional handling. I have a fix (see following debug patch) but I need
to do more testing before I submit it to make sure it doesn't cause tdf#157635
or tdf#157793 to reoccur:

diff --git a/vcl/source/filter/igif/gifread.cxx
b/vcl/source/filter/igif/gifread.cxx
index c3151f3274d0..6c3deb4da3d0 100644
--- a/vcl/source/filter/igif/gifread.cxx
+++ b/vcl/source/filter/igif/gifread.cxx
@@ -683,10 +683,10 @@ void GIFReader::CreateNewBitmaps()
         // Due to the switch from transparency to alpha in commit
         // 81994cb2b8b32453a92bcb011830fcb884f22ff3, mask out black
         // pixels in bitmap.
-        if (bEnhance)
-            aAnimationFrame.maBitmapEx = BitmapEx( aBmp8, aBmp8 );
-        else
-            aAnimationFrame.maBitmapEx = BitmapEx( aBmp8 );
+        Bitmap aAlphaMask( aBmp8 );
+        if (!bEnhance)
+            aAlphaMask.Invert();
+        aAnimationFrame.maBitmapEx = BitmapEx( aBmp8, aAlphaMask );
     }

     aAnimationFrame.maPositionPixel = Point( nImagePosX, nImagePosY );

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to