made wxImage::Scale() const to not confuse people any more and added

a Rescale() which changes the image size "in place". Documented both
changes too.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-07-05 21:08:29 +00:00
parent a0bc2c1d27
commit ce9a75d225
3 changed files with 55 additions and 14 deletions

View File

@@ -433,15 +433,50 @@ mimetype to the named file}
\end{twocollist}} \end{twocollist}}
} }
\membersection{wxImage::Rescale}\label{wximagerescale}
\func{wxImage}{Rescale}{\param{int}{ width}, \param{int}{ height}}
Changes the size of the image in-place: after a call to this function, thei
mage will have the given width and height.
\wxheading{See also}
\helpref{Scale}{wximagescale}
\membersection{wxImage::Scale}\label{wximagescale} \membersection{wxImage::Scale}\label{wximagescale}
\func{wxImage}{Scale}{\param{int}{ width}, \param{int}{ height}} \constfunc{wxImage}{Scale}{\param{int}{ width}, \param{int}{ height}}
Returns a scaled version of the image. This is also useful for Returns a scaled version of the image. This is also useful for
scaling bitmaps in general as the only other way to scale bitmaps scaling bitmaps in general as the only other way to scale bitmaps
is to blit a wxMemoryDC into another wxMemoryDC. Windows can do such is to blit a wxMemoryDC into another wxMemoryDC.
scaling itself but in the GTK port, scaling bitmaps is done using
this routine internally. NB: although Windows can do such scaling itself but in the GTK port, scaling
bitmaps is done using this routine internally.
Example:
\begin{verbatim}
// get the bitmap from somewhere
wxBitmap bmp = ...;
// rescale it to have size of 32*32
if ( bmp.GetWidth() != 32 || bmp.GetHeight() != 32 )
{
wxImage image(bmp);
bmp = image.Scale(32, 32).ConvertToBitmap();
// another possibility:
image.Rescale(32, 32);
bmp = image;
}
\end{verbatim}
\wxheading{See also}
\helpref{Rescale}{wximagerescale}
\membersection{wxImage::SetData}\label{wximagesetdata} \membersection{wxImage::SetData}\label{wximagesetdata}

View File

@@ -195,13 +195,18 @@ public:
// these functions get implemented in /src/(platform)/bitmap.cpp // these functions get implemented in /src/(platform)/bitmap.cpp
wxImage( const wxBitmap &bitmap ); wxImage( const wxBitmap &bitmap );
operator wxBitmap() const { return ConvertToBitmap(); }
wxBitmap ConvertToBitmap() const; wxBitmap ConvertToBitmap() const;
void Create( int width, int height ); void Create( int width, int height );
void Destroy(); void Destroy();
wxImage Scale( int width, int height ); // return the new image with size width*height
wxImage Scale( int width, int height ) const;
// rescales the image in place
wxImage Rescale( int width, int height ) { *this = Scale(width, height); }
// these routines are slow but safe // these routines are slow but safe
void SetRGB( int x, int y, unsigned char r, unsigned char g, unsigned char b ); void SetRGB( int x, int y, unsigned char r, unsigned char g, unsigned char b );
unsigned char GetRed( int x, int y ); unsigned char GetRed( int x, int y );
@@ -238,18 +243,19 @@ public:
void SetMask( bool mask = TRUE ); void SetMask( bool mask = TRUE );
bool HasMask() const; bool HasMask() const;
inline wxImage& operator = (const wxImage& image) wxImage& operator = (const wxImage& image)
{ if ((*this) == image) {
return (*this); if ( (*this) != image )
Ref(image); Ref(image);
return *this; } return *this;
}
inline bool operator == (const wxImage& image) bool operator == (const wxImage& image)
{ return m_refData == image.m_refData; } { return m_refData == image.m_refData; }
inline bool operator != (const wxImage& image) bool operator != (const wxImage& image)
{ return m_refData != image.m_refData; } { return m_refData != image.m_refData; }
static inline wxList& GetHandlers() { return sm_handlers; } static wxList& GetHandlers() { return sm_handlers; }
static void AddHandler( wxImageHandler *handler ); static void AddHandler( wxImageHandler *handler );
static void InsertHandler( wxImageHandler *handler ); static void InsertHandler( wxImageHandler *handler );
static bool RemoveHandler( const wxString& name ); static bool RemoveHandler( const wxString& name );

View File

@@ -150,7 +150,7 @@ void wxImage::Destroy()
UnRef(); UnRef();
} }
wxImage wxImage::Scale( int width, int height ) wxImage wxImage::Scale( int width, int height ) const
{ {
wxImage image; wxImage image;