Plotting: Handle mask transparency

This handles images with transparent colors by mapping the transparent
color to white.  This only works when plotted into the background.

(cherry picked from commit b32439a694)
This commit is contained in:
Seth Hillbrand 2019-06-16 13:27:58 -07:00
parent 42e3c13820
commit 66e8795656
2 changed files with 24 additions and 3 deletions

View File

@ -405,12 +405,22 @@ void PDF_PLOTTER::PlotImage( const wxImage & aImage, const wxPoint& aPos,
}
}
if( aImage.HasMask() )
{
if( r == aImage.GetMaskRed() && g == aImage.GetMaskGreen() && b == aImage.GetMaskBlue() )
{
r = 0xFF;
g = 0xFF;
b = 0xFF;
}
}
// As usual these days, stdio buffering has to suffeeeeerrrr
if( colorMode )
{
putc( r, workFile );
putc( g, workFile );
putc( b, workFile );
putc( r, workFile );
putc( g, workFile );
putc( b, workFile );
}
else
{

View File

@ -723,6 +723,17 @@ void PS_PLOTTER::PlotImage( const wxImage & aImage, const wxPoint& aPos,
}
}
if( aImage.HasMask() )
{
if( red == aImage.GetMaskRed() && green == aImage.GetMaskGreen()
&& blue == aImage.GetMaskBlue() )
{
red = 0xFF;
green = 0xFF;
blue = 0xFF;
}
}
if( colorMode )
fprintf( outputFile, "%2.2X%2.2X%2.2X", red, green, blue );
else