// Author: Robert Roebling
// RCS-ID: $Id$
// Copyright: (c) Robert Roebling
-// Licence: wxWidgets licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
unsigned char hdr[4];
if ( !stream.Read(hdr, WXSIZEOF(hdr)) )
- return FALSE;
+ return false;
return memcmp(hdr, "\211PNG", WXSIZEOF(hdr)) == 0;
}
png_set_expand( png_ptr );
png_set_filler( png_ptr, 0xff, PNG_FILLER_AFTER );
- image->Create( (int)width, (int)height );
+ image->Create((int)width, (int)height, false /* no need to init pixels */);
if (!image->Ok())
goto error;
free( lines[i] );
free( lines );
- return TRUE;
+ return true;
error:
if (verbose)
else
png_destroy_read_struct( &png_ptr, (png_infopp) NULL, (png_infopp) NULL );
}
- return FALSE;
+ return false;
}
// ----------------------------------------------------------------------------
{
if (verbose)
wxLogError(_("Couldn't save PNG image."));
- return FALSE;
+ return false;
}
png_set_error_fn(png_ptr, (png_voidp)NULL, wx_png_error, wx_png_warning);
png_destroy_write_struct( &png_ptr, (png_infopp)NULL );
if (verbose)
wxLogError(_("Couldn't save PNG image."));
- return FALSE;
+ return false;
}
if (setjmp(wxinfo.jmpbuf))
png_destroy_write_struct( &png_ptr, (png_infopp)NULL );
if (verbose)
wxLogError(_("Couldn't save PNG image."));
- return FALSE;
+ return false;
}
// NB: please see the comment near wxPNGInfoStruct declaration for
if (!data)
{
png_destroy_write_struct( &png_ptr, (png_infopp)NULL );
- return FALSE;
+ return false;
}
for (int y = 0; y < image->GetHeight(); y++)
data[(x << 2) + 0] = *ptr++;
data[(x << 2) + 1] = *ptr++;
data[(x << 2) + 2] = *ptr++;
- if (( !image->HasMask() ) || \
+ if ( image->HasAlpha() )
+ {
+ data[(x << 2) + 3] = image->GetAlpha(x, y);
+ }
+ else if (( !image->HasMask() ) || \
(data[(x << 2) + 0] != image->GetMaskRed()) || \
(data[(x << 2) + 1] != image->GetMaskGreen()) || \
(data[(x << 2) + 2] != image->GetMaskBlue()))
png_write_end( png_ptr, info_ptr );
png_destroy_write_struct( &png_ptr, (png_infopp)&info_ptr );
- return TRUE;
+ return true;
}
#ifdef __VISUALC__