Added support for saving greyscale TIFF images.
When saving with a samples per pixel value of 1 the TIFF handler still treated the image as RGB, resulting in corrupted images. Handle the greyscale case and added a unit test for it. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68784 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
7f77b25ea8
commit
8e28cc4701
@ -659,6 +659,13 @@ bool wxTIFFHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbo
|
||||
// color image
|
||||
memcpy(buf, ptr, image->GetWidth());
|
||||
}
|
||||
else if (spp * bps == 8) // greyscale image
|
||||
{
|
||||
for ( int column = 0; column < linebytes; column++ )
|
||||
{
|
||||
buf[column] = ptr[column*3 + 1];
|
||||
}
|
||||
}
|
||||
else // black and white image
|
||||
{
|
||||
for ( int column = 0; column < linebytes; column++ )
|
||||
|
@ -1115,6 +1115,7 @@ static void TestTIFFImage(const wxString& option, int value)
|
||||
void ImageTestCase::SaveTIFF()
|
||||
{
|
||||
TestTIFFImage(wxIMAGE_OPTION_TIFF_BITSPERSAMPLE, 1);
|
||||
TestTIFFImage(wxIMAGE_OPTION_TIFF_SAMPLESPERPIXEL, 1);
|
||||
}
|
||||
|
||||
void ImageTestCase::SaveAnimatedGIF()
|
||||
|
Loading…
Reference in New Issue
Block a user