Add wxImage::ClearAlpha().

This simple method can be used to remove alpha channel from the image.

See #10915.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63922 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2010-04-09 13:15:20 +00:00
parent 9b2f7ad513
commit 90fbb09ae2
4 changed files with 23 additions and 0 deletions

View File

@ -428,6 +428,7 @@ All:
- Fix output buffer overflow in wxBase64Decode() (Eric W. Savage).
- Added bilinear image resizing algorithm to wxImage (bishop).
- Fix bug with position argument in wxImage::Size() (Byron Sorgdrager).
- Added wxImage::ClearAlpha() (Javier Torres).
- Fix bug with parsing concatenated switches in wxCmdLineParser (Mike Funduc).
- Added wxMBConv::cMB2WC(wxCharBuffer) and cWC2MB(wxWCharBuffer) overloads.
- Added wxAny class; a modern, backwards-incompatible replacement for

View File

@ -451,6 +451,7 @@ public:
bool HasAlpha() const { return GetAlpha() != NULL; }
void SetAlpha(unsigned char *alpha = NULL, bool static_data=false);
void InitAlpha();
void ClearAlpha();
// return true if this pixel is masked or has alpha less than specified
// threshold

View File

@ -1396,6 +1396,16 @@ public:
*/
void SetAlpha(int x, int y, unsigned char alpha);
/**
Removes the alpha channel from the image.
This function should only be called if the image has alpha channel data,
use HasAlpha() to check for this.
@since 2.9.1
*/
void ClearAlpha();
/**
Sets the image data without performing checks.

View File

@ -1857,6 +1857,17 @@ void wxImage::InitAlpha()
}
}
void wxImage::ClearAlpha()
{
wxCHECK_RET( HasAlpha(), wxT("image already doesn't have an alpha channel") );
if ( !M_IMGDATA->m_staticAlpha )
free( M_IMGDATA->m_alpha );
M_IMGDATA->m_alpha = NULL;
}
// ----------------------------------------------------------------------------
// mask support
// ----------------------------------------------------------------------------