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.
This commit is contained in:
Seth Hillbrand 2019-06-16 13:27:58 -07:00
parent ddbc25077c
commit b32439a694
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 // As usual these days, stdio buffering has to suffeeeeerrrr
if( colorMode ) if( colorMode )
{ {
putc( r, workFile ); putc( r, workFile );
putc( g, workFile ); putc( g, workFile );
putc( b, workFile ); putc( b, workFile );
} }
else else
{ {

View File

@ -725,6 +725,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 ) if( colorMode )
fprintf( outputFile, "%2.2X%2.2X%2.2X", red, green, blue ); fprintf( outputFile, "%2.2X%2.2X%2.2X", red, green, blue );
else else