📄 image.h
字号:
// pastes image into this instance and takes care of
// the mask colour and out of bounds problems
void Paste( const wxImage &image, int x, int y );
// return the new image with size width*height
wxImage Scale( int width, int height ) const;
wxImage ShrinkBy( int xFactor , int yFactor ) const ;
// rescales the image in place
wxImage& Rescale( int width, int height ) { return *this = Scale(width, height); }
// resizes the image in place
wxImage& Resize( const wxSize& size, const wxPoint& pos,
int r = -1, int g = -1, int b = -1 ) { return *this = Size(size, pos, r, g, b); }
// Rotates the image about the given point, 'angle' radians.
// Returns the rotated image, leaving this image intact.
wxImage Rotate(double angle, const wxPoint & centre_of_rotation,
bool interpolating = true, wxPoint * offset_after_rotation = (wxPoint*) NULL) const;
wxImage Rotate90( bool clockwise = true ) const;
wxImage Mirror( bool horizontally = true ) const;
// replace one colour with another
void Replace( unsigned char r1, unsigned char g1, unsigned char b1,
unsigned char r2, unsigned char g2, unsigned char b2 );
// convert to monochrome image (<r,g,b> will be replaced by white,
// everything else by black)
wxImage ConvertToMono( unsigned char r, unsigned char g, unsigned char b ) const;
// these routines are slow but safe
void SetRGB( int x, int y, unsigned char r, unsigned char g, unsigned char b );
void SetRGB( const wxRect& rect, unsigned char r, unsigned char g, unsigned char b );
unsigned char GetRed( int x, int y ) const;
unsigned char GetGreen( int x, int y ) const;
unsigned char GetBlue( int x, int y ) const;
void SetAlpha(int x, int y, unsigned char alpha);
unsigned char GetAlpha(int x, int y) const;
// find first colour that is not used in the image and has higher
// RGB values than <startR,startG,startB>
bool FindFirstUnusedColour( unsigned char *r, unsigned char *g, unsigned char *b,
unsigned char startR = 1, unsigned char startG = 0,
unsigned char startB = 0 ) const;
// Set image's mask to the area of 'mask' that has <r,g,b> colour
bool SetMaskFromImage(const wxImage & mask,
unsigned char mr, unsigned char mg, unsigned char mb);
// converts image's alpha channel to mask, if it has any, does nothing
// otherwise:
bool ConvertAlphaToMask(unsigned char threshold = wxIMAGE_ALPHA_THRESHOLD);
// This method converts an image where the original alpha
// information is only available as a shades of a colour
// (actually shades of grey) typically when you draw anti-
// aliased text into a bitmap. The DC drawinf routines
// draw grey values on the black background although they
// actually mean to draw white with differnt alpha values.
// This method reverses it, assuming a black (!) background
// and white text (actually only the red channel is read).
// The method will then fill up the whole image with the
// colour given.
bool ConvertColourToAlpha( unsigned char r, unsigned char g, unsigned char b );
static bool CanRead( const wxString& name );
static int GetImageCount( const wxString& name, long type = wxBITMAP_TYPE_ANY );
virtual bool LoadFile( const wxString& name, long type = wxBITMAP_TYPE_ANY, int index = -1 );
virtual bool LoadFile( const wxString& name, const wxString& mimetype, int index = -1 );
#if wxUSE_STREAMS
static bool CanRead( wxInputStream& stream );
static int GetImageCount( wxInputStream& stream, long type = wxBITMAP_TYPE_ANY );
virtual bool LoadFile( wxInputStream& stream, long type = wxBITMAP_TYPE_ANY, int index = -1 );
virtual bool LoadFile( wxInputStream& stream, const wxString& mimetype, int index = -1 );
#endif
virtual bool SaveFile( const wxString& name ) const;
virtual bool SaveFile( const wxString& name, int type ) const;
virtual bool SaveFile( const wxString& name, const wxString& mimetype ) const;
#if wxUSE_STREAMS
virtual bool SaveFile( wxOutputStream& stream, int type ) const;
virtual bool SaveFile( wxOutputStream& stream, const wxString& mimetype ) const;
#endif
bool Ok() const;
int GetWidth() const;
int GetHeight() const;
// these functions provide fastest access to wxImage data but should be
// used carefully as no checks are done
unsigned char *GetData() const;
void SetData( unsigned char *data, bool static_data=false );
void SetData( unsigned char *data, int new_width, int new_height, bool static_data=false );
unsigned char *GetAlpha() const; // may return NULL!
bool HasAlpha() const { return GetAlpha() != NULL; }
void SetAlpha(unsigned char *alpha = NULL, bool static_data=false);
void InitAlpha();
// return true if this pixel is masked or has alpha less than specified
// threshold
bool IsTransparent(int x, int y,
unsigned char threshold = wxIMAGE_ALPHA_THRESHOLD) const;
// Mask functions
void SetMaskColour( unsigned char r, unsigned char g, unsigned char b );
// Get the current mask colour or find a suitable colour
// returns true if using current mask colour
bool GetOrFindMaskColour( unsigned char *r, unsigned char *g, unsigned char *b ) const;
unsigned char GetMaskRed() const;
unsigned char GetMaskGreen() const;
unsigned char GetMaskBlue() const;
void SetMask( bool mask = true );
bool HasMask() const;
#if wxUSE_PALETTE
// Palette functions
bool HasPalette() const;
const wxPalette& GetPalette() const;
void SetPalette(const wxPalette& palette);
#endif // wxUSE_PALETTE
// Option functions (arbitrary name/value mapping)
void SetOption(const wxString& name, const wxString& value);
void SetOption(const wxString& name, int value);
wxString GetOption(const wxString& name) const;
int GetOptionInt(const wxString& name) const;
bool HasOption(const wxString& name) const;
unsigned long CountColours( unsigned long stopafter = (unsigned long) -1 ) const;
// Computes the histogram of the image and fills a hash table, indexed
// with integer keys built as 0xRRGGBB, containing wxImageHistogramEntry
// objects. Each of them contains an 'index' (useful to build a palette
// with the image colours) and a 'value', which is the number of pixels
// in the image with that colour.
// Returned value: # of entries in the histogram
unsigned long ComputeHistogram( wxImageHistogram &h ) const;
#if wxABI_VERSION >= 20602
// Rotates the hue of each pixel of the image. angle is a double in the range
// -1.0..1.0 where -1.0 is -360 degrees and 1.0 is 360 degrees
void RotateHue(double angle);
#endif // wxABI_VERSION >= 2.6.2
wxImage& operator = (const wxImage& image)
{
if ( (*this) != image )
Ref(image);
return *this;
}
bool operator == (const wxImage& image) const
{ return m_refData == image.m_refData; }
bool operator != (const wxImage& image) const
{ return m_refData != image.m_refData; }
static wxList& GetHandlers() { return sm_handlers; }
static void AddHandler( wxImageHandler *handler );
static void InsertHandler( wxImageHandler *handler );
static bool RemoveHandler( const wxString& name );
static wxImageHandler *FindHandler( const wxString& name );
static wxImageHandler *FindHandler( const wxString& extension, long imageType );
static wxImageHandler *FindHandler( long imageType );
static wxImageHandler *FindHandlerMime( const wxString& mimetype );
static wxString GetImageExtWildcard();
static void CleanUpHandlers();
static void InitStandardHandlers();
#if wxABI_VERSION >= 20602
static HSVValue RGBtoHSV(const RGBValue& rgb);
static RGBValue HSVtoRGB(const HSVValue& hsv);
#endif // wxABI_VERSION >= 2.6.2
protected:
static wxList sm_handlers;
// return the index of the point with the given coordinates or -1 if the
// image is invalid of the coordinates are out of range
//
// note that index must be multiplied by 3 when using it with RGB array
long XYToIndex(int x, int y) const;
private:
friend class WXDLLEXPORT wxImageHandler;
DECLARE_DYNAMIC_CLASS(wxImage)
};
extern void WXDLLEXPORT wxInitAllImageHandlers();
extern WXDLLEXPORT_DATA(wxImage) wxNullImage;
//-----------------------------------------------------------------------------
// wxImage handlers
//-----------------------------------------------------------------------------
#include "wx/imagbmp.h"
#include "wx/imagpng.h"
#include "wx/imaggif.h"
#include "wx/imagpcx.h"
#include "wx/imagjpeg.h"
#include "wx/imagtiff.h"
#include "wx/imagpnm.h"
#include "wx/imagxpm.h"
#include "wx/imagiff.h"
#endif // wxUSE_IMAGE
#endif
// _WX_IMAGE_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -