// Name: image.h
// Purpose: interface of wxImageHandler and wxImage
// Author: wxWidgets team
-// RCS-ID: $Id$
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
Image option names.
*/
-#define wxIMAGE_OPTION_QUALITY wxString(wxT("quality"))
-#define wxIMAGE_OPTION_FILENAME wxString(wxT("FileName"))
-#define wxIMAGE_OPTION_RESOLUTION wxString(wxT("Resolution"))
-#define wxIMAGE_OPTION_RESOLUTIONX wxString(wxT("ResolutionX"))
-#define wxIMAGE_OPTION_RESOLUTIONY wxString(wxT("ResolutionY"))
-#define wxIMAGE_OPTION_RESOLUTIONUNIT wxString(wxT("ResolutionUnit"))
-#define wxIMAGE_OPTION_MAX_WIDTH wxString(wxT("MaxWidth"))
-#define wxIMAGE_OPTION_MAX_HEIGHT wxString(wxT("MaxHeight"))
-#define wxIMAGE_OPTION_ORIGINAL_WIDTH wxString(wxT("OriginalWidth"))
-#define wxIMAGE_OPTION_ORIGINAL_HEIGHT wxString(wxT("OriginalHeight"))
-
-#define wxIMAGE_OPTION_BMP_FORMAT wxString(wxT("wxBMP_FORMAT"))
-#define wxIMAGE_OPTION_CUR_HOTSPOT_X wxString(wxT("HotSpotX"))
-#define wxIMAGE_OPTION_CUR_HOTSPOT_Y wxString(wxT("HotSpotY"))
-
-#define wxIMAGE_OPTION_GIF_COMMENT wxString(wxT("GifComment"))
-
-#define wxIMAGE_OPTION_PNG_FORMAT wxString(wxT("PngFormat"))
-#define wxIMAGE_OPTION_PNG_BITDEPTH wxString(wxT("PngBitDepth"))
-#define wxIMAGE_OPTION_PNG_FILTER wxString(wxT("PngF"))
-#define wxIMAGE_OPTION_PNG_COMPRESSION_LEVEL wxString(wxT("PngZL"))
-#define wxIMAGE_OPTION_PNG_COMPRESSION_MEM_LEVEL wxString(wxT("PngZM"))
-#define wxIMAGE_OPTION_PNG_COMPRESSION_STRATEGY wxString(wxT("PngZS"))
-#define wxIMAGE_OPTION_PNG_COMPRESSION_BUFFER_SIZE wxString(wxT("PngZB"))
-
-#define wxIMAGE_OPTION_TIFF_BITSPERSAMPLE wxString(wxT("BitsPerSample"))
-#define wxIMAGE_OPTION_TIFF_SAMPLESPERPIXEL wxString(wxT("SamplesPerPixel"))
-#define wxIMAGE_OPTION_TIFF_COMPRESSION wxString(wxT("Compression"))
-#define wxIMAGE_OPTION_TIFF_PHOTOMETRIC wxString(wxT("Photometric"))
-#define wxIMAGE_OPTION_TIFF_IMAGEDESCRIPTOR wxString(wxT("ImageDescriptor"))
+#define wxIMAGE_OPTION_QUALITY wxString("quality")
+#define wxIMAGE_OPTION_FILENAME wxString("FileName")
+#define wxIMAGE_OPTION_RESOLUTION wxString("Resolution")
+#define wxIMAGE_OPTION_RESOLUTIONX wxString("ResolutionX")
+#define wxIMAGE_OPTION_RESOLUTIONY wxString("ResolutionY")
+#define wxIMAGE_OPTION_RESOLUTIONUNIT wxString("ResolutionUnit")
+#define wxIMAGE_OPTION_MAX_WIDTH wxString("MaxWidth")
+#define wxIMAGE_OPTION_MAX_HEIGHT wxString("MaxHeight")
+#define wxIMAGE_OPTION_ORIGINAL_WIDTH wxString("OriginalWidth")
+#define wxIMAGE_OPTION_ORIGINAL_HEIGHT wxString("OriginalHeight")
+
+#define wxIMAGE_OPTION_BMP_FORMAT wxString("wxBMP_FORMAT")
+#define wxIMAGE_OPTION_CUR_HOTSPOT_X wxString("HotSpotX")
+#define wxIMAGE_OPTION_CUR_HOTSPOT_Y wxString("HotSpotY")
+
+#define wxIMAGE_OPTION_GIF_COMMENT wxString("GifComment")
+
+#define wxIMAGE_OPTION_PNG_FORMAT wxString("PngFormat")
+#define wxIMAGE_OPTION_PNG_BITDEPTH wxString("PngBitDepth")
+#define wxIMAGE_OPTION_PNG_FILTER wxString("PngF")
+#define wxIMAGE_OPTION_PNG_COMPRESSION_LEVEL wxString("PngZL")
+#define wxIMAGE_OPTION_PNG_COMPRESSION_MEM_LEVEL wxString("PngZM")
+#define wxIMAGE_OPTION_PNG_COMPRESSION_STRATEGY wxString("PngZS")
+#define wxIMAGE_OPTION_PNG_COMPRESSION_BUFFER_SIZE wxString("PngZB")
+
+#define wxIMAGE_OPTION_TIFF_BITSPERSAMPLE wxString("BitsPerSample")
+#define wxIMAGE_OPTION_TIFF_SAMPLESPERPIXEL wxString("SamplesPerPixel")
+#define wxIMAGE_OPTION_TIFF_COMPRESSION wxString("Compression")
+#define wxIMAGE_OPTION_TIFF_PHOTOMETRIC wxString("Photometric")
+#define wxIMAGE_OPTION_TIFF_IMAGEDESCRIPTOR wxString("ImageDescriptor")
enum
@since 2.9.2
*/
static wxVersionInfo GetLibraryVersionInfo();
+
+protected:
+ /**
+ Called to get the number of images available in a multi-image file
+ type, if supported.
+
+ NOTE: this function is allowed to change the current stream position
+ since GetImageCount() will take care of restoring it later
+ */
+ virtual int DoGetImageCount( wxInputStream& stream );
+
+ /**
+ Called to test if this handler can read an image from the given stream.
+
+ NOTE: this function is allowed to change the current stream position
+ since CallDoCanRead() will take care of restoring it later
+ */
+ virtual bool DoCanRead( wxInputStream& stream ) = 0;
};
*/
const unsigned char wxIMAGE_ALPHA_OPAQUE = 0xff;
+const unsigned char wxIMAGE_ALPHA_THRESHOLD = 0x80;
+
+
/**
@class wxImage
This is most often used when doing direct image manipulation.
The return value points to an array of characters in RGBRGBRGB... format
in the top-to-bottom, left-to-right order, that is the first RGB triplet
- corresponds to the pixel first pixel of the first row, the second one ---
+ corresponds to the first pixel of the first row, the second one ---
to the second pixel of the first row and so on until the end of the first
row, with second row following after it and so on.
bool IsOk() const;
/**
- Returns @true if the given pixel is transparent, i.e. either has the mask
+ Returns @true if the given pixel is transparent, i.e.\ either has the mask
colour if this image has a mask or if this image has alpha channel and alpha
value of this pixel is strictly less than @a threshold.
*/