]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/image.tex
wxPython documentation updates
[wxWidgets.git] / docs / latex / wx / image.tex
index 2037c9e7dbf21841d74b55a2dbe2eb034e12db2c..07e43de3cebcfd2fbda41cc98bb06357b880211e 100644 (file)
@@ -10,15 +10,18 @@ A wxImage cannot (currently) be drawn directly to a wxDC. Instead, a platform-sp
 wxBitmap object must be created from it, and that bitmap drawn on the wxDC, using
 wxDC::DrawBitmap.
 
-This class is currently only available under GTK and Windows.
-
 \wxheading{Derived from}
 
 \helpref{wxObject}{wxobject}
 
+\wxheading{Include files}
+
+<wx/image.h>
+
 \wxheading{See also}
 
 \helpref{wxBitmap}{wxbitmap}
+\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
@@ -44,10 +47,14 @@ Creates an image with the given width and height.
 
 \func{}{wxImage}{\param{const wxString\& }{name}, \param{long}{ type = wxBITMAP\_TYPE\_PNG}}
 
+\func{}{wxImage}{\param{const wxString\& }{name}, \param{const wxString\&}{ mimetype}}
+
 Loads an image from a file.
 
 \func{}{wxImage}{\param{wxInputStream\& }{stream}, \param{long}{ type = wxBITMAP\_TYPE\_PNG}}
 
+\func{}{wxImage}{\param{wxInputStream\& }{stream}, \param{const wxString\&}{ mimetype}}
+
 Loads an image from an input stream.
 
 \wxheading{Parameters}
@@ -66,17 +73,37 @@ Loads an image from an input stream.
 \begin{twocollist}
 \twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_BMP}}}{Load a Windows bitmap file.}
 \twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_PNG}}}{Load a PNG bitmap file.}
+\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_JPEG}}}{Load a JPEG bitmap file.}
 \end{twocollist}
 
 The validity of these flags depends on the platform and wxWindows configuration.
-If all possible wxWindows settings are used, the loading a BMP (Windows bitmap) file
-and a PNG (portable network graphics) file is supported on all platforms that
+If all possible wxWindows settings are used, the loading a BMP (Windows bitmap) file,
+a PNG (portable network graphics) file and a JPEG file is supported on all platforms that
 implement wxImage.}
 
+\docparam{mimetype}{MIME type string (for example 'image/jpeg')}
+
+Note : you must call wxImage::AddHandler(new wxJPEGHandler) during application
+initialization in order to work with JPEGs.
+
 \wxheading{See also}
 
 \helpref{wxImage::LoadFile}{wximageloadfile}
 
+\pythonnote{Constructors supported by wxPython are:\par
+\indented{2cm}{\begin{twocollist}
+\twocolitem{\bf{wxImage(name, flag)}}{Loads an image from a file}
+\twocolitem{\bf{wxNullImage()}}{Create a null image (has no size or
+image data)}
+\twocolitem{\bf{wxEmptyImage(width, height)}}{Creates an empty image
+of the given size}
+\twocolitem{\bf{wxImageFromMime(name, mimetype}}{Creates an image from
+the given file of the given mimetype}
+\twocolitem{\bf{wxImageFromBitmap(bitmap)}}{Creates an image from a
+platform-dependent bitmap}
+\end{twocollist}}
+}
+
 \membersection{wxImage::\destruct{wxImage}}
 
 \func{}{\destruct{wxImage}}{\void}
@@ -96,6 +123,7 @@ of a given handler class in an application session.}
 
 \helpref{wxImageHandler}{wximagehandler}
 
+\pythonnote{In wxPython this static method is named \tt{wxImage_AddHandler}.}
 \membersection{wxImage::CleanUpHandlers}
 
 \func{static void}{CleanUpHandlers}{\void}
@@ -151,12 +179,18 @@ Finds the handler associated with the given extension and type.
 
 Finds the handler associated with the given image type.
 
+\func{static wxImageHandler*}{FindHandlerMime}{\param{const wxString\& }{mimetype}}
+
+Finds the handler associated with the given MIME type.
+
 \docparam{name}{The handler name.}
 
 \docparam{extension}{The file extension, such as ``bmp".}
 
 \docparam{imageType}{The image type, such as wxBITMAP\_TYPE\_BMP.}
 
+\docparam{mimetype}{MIME type.}
+
 \wxheading{Return value}
 
 A pointer to the handler if found, NULL otherwise.
@@ -245,15 +279,16 @@ Returns TRUE if there is a mask active, FALSE otherwise.
 
 \func{static void}{InitStandardHandlers}{\void}
 
-Adds the standard image format handlers, which, depending on wxWindows
-configuration, can be handlers for Windows BMP (loading) and PNG
-(loading and saving) file formats.
+Internal use only. Adds standard image format handlers. It only install BMP
+for the time being, which is use by wxBitmap.
 
-This function is called by wxWindows on startup.
+This function is called by wxWindows on startup, and shouldn't be called by
+the user.
 
 \wxheading{See also}
 
 \helpref{wxImageHandler}{wximagehandler}
+\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
 
 \membersection{wxImage::InsertHandler}
 
@@ -270,12 +305,18 @@ of a given handler class in an application session.}
 
 \membersection{wxImage::LoadFile}\label{wximageloadfile}
 
-\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{long}{ type}}
+\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}}
 
-Loads an image from a file.
+\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{const wxString\&}{ mimetype}}
+
+Loads an image from a file. If no handler type is provided, the library will
+try to use wxBITMAP\_TYPE\_BMP or all known handlers previously installed
+through a call to \helpref{wxImage::InitAllHandlers}{wximageinitallhandlers}.
 
 \func{bool}{LoadFile}{\param{wxInputStream\&}{ stream}, \param{long}{ type}}
 
+\func{bool}{LoadFile}{\param{wxInputStream\&}{ stream}, \param{const wxString\&}{ mimetype}}
+
 Loads an image from an input stream.
 
 \wxheading{Parameters}
@@ -291,11 +332,17 @@ The meaning of {\it stream} data is determined by the {\it type} parameter.}
 \twocolwidtha{5cm}%
 \begin{twocollist}
 \twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Load a Windows image file.}
+\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Load a GIF image file.}
+\twocolitem{{\bf wxBITMAP\_TYPE\_JPEG}}{Load a JPEG image file.}
+\twocolitem{{\bf wxBITMAP\_TYPE\_PCX}}{Load a PCX image file.}
 \twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Load a PNG image file.}
+\twocolitem{{\bf wxBITMAP\_TYPE\_PNM}}{Load a PNM image file.}
 \end{twocollist}
 
 The validity of these flags depends on the platform and wxWindows configuration.}
 
+\docparam{mimetype}{MIME type string (for example 'image/jpeg')}
+
 \wxheading{Return value}
 
 TRUE if the operation succeeded, FALSE otherwise.
@@ -304,6 +351,17 @@ TRUE if the operation succeeded, FALSE otherwise.
 
 \helpref{wxImage::SaveFile}{wximagesavefile}
 
+\pythonnote{In place of a single overloaded method name, wxPython
+implements the following methods:\par
+\indented{2cm}{\begin{twocollist}
+\twocolitem{\bf{LoadFile(filename, type)}}{Loads an image of the given
+type from a file}
+\twocolitem{\bf{LoadMimeFile(filename, mimetype)}}{Loads an image of the given
+mimetype from a file}
+\end{twocollist}}
+}
+
+
 \membersection{wxImage::Ok}\label{wximageok}
 
 \constfunc{bool}{Ok}{\void}
@@ -331,10 +389,14 @@ TRUE if the handler was found and removed, FALSE otherwise.
 
 \func{bool}{SaveFile}{\param{const wxString\& }{name}, \param{int}{ type}}
 
+\func{bool}{SaveFile}{\param{const wxString\& }{name}, \param{const wxString\&}{ mimetype}}
+
 Saves a image in the named file.
 
 \func{bool}{SaveFile}{\param{wxOutputStream\& }{stream}, \param{int}{ type}}
 
+\func{bool}{SaveFile}{\param{wxOutputStream\& }{stream}, \param{const wxString\&}{ mimetype}}
+
 Saves a image in the given stream.
 
 \wxheading{Parameters}
@@ -343,16 +405,19 @@ Saves a image in the given stream.
 
 \docparam{stream}{An output stream. The meaning of {\it stream} is determined by the {\it type} parameter.}
 
-\docparam{type}{Currently only one type can be used:
+\docparam{type}{Currently two types can be used:
 
 \twocolwidtha{5cm}%
 \begin{twocollist}
 \twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Save a PNG image file.}
+\twocolitem{{\bf wxBITMAP\_TYPE\_JPEG}}{Save a JPEG image file.}
 \end{twocollist}
 
 The validity of these flags depends on the platform and wxWindows configuration
 as well as user-added handlers.}
 
+\docparam{mimetype}{MIME type.}
+
 \wxheading{Return value}
 
 TRUE if the operation succeeded, FALSE otherwise.
@@ -365,21 +430,73 @@ Depending on how wxWindows has been configured, not all formats may be available
 
 \helpref{wxImage::LoadFile}{wximageloadfile}
 
+\pythonnote{In place of a single overloaded method name, wxPython
+implements the following methods:\par
+\indented{2cm}{\begin{twocollist}
+\twocolitem{\bf{SaveFile(filename, type)}}{Saves the image using the given
+type to the named file}
+\twocolitem{\bf{SaveMimeFile(filename, mimetype)}}{Saves the image using the given
+mimetype to the named file}
+\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, the
+image will have the given width and height.
+
+\wxheading{See also}
+
+\helpref{Scale}{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
 scaling bitmaps in general as the only other way to scale bitmaps
-is do blit a wxMemoryDC into another wxMemoryDC. Windows can such scaling
-itself, but on GTK scaling bitmaps is done using this routine 
-internally.
+is to blit a wxMemoryDC into another wxMemoryDC.
+
+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::GetSubImage}\label{wximagegetsubimage}
+
+\constfunc{wxImage}{GetSubImage}{\param{const wxRect&}{rect}}
+
+Returns a sub image of the current one as long as the rect belongs entirely to 
+the image.
 
 \membersection{wxImage::SetData}\label{wximagesetdata}
 
 \func{void}{SetData}{\param{unsigned char*}{data}}
 
-Sets the image data without performing checks. The data given must have 
+Sets the image data without performing checks. The data given must have
 the size (width*height*3) or results will be unexpected. Don't use this
 method if you aren't sure you know what you are doing.
 
@@ -393,7 +510,7 @@ Specifies whether there is a mask or not. The area of the mask is determined by
 
 \func{void}{SetMaskColour}{\param{unsigned char }{red}, \param{unsigned char }{blue}, \param{unsigned char }{green}}
 
-Sets the mask colour for this image.
+Sets the mask colour for this image (and tells the image to use the mask).
 
 \membersection{wxImage::SetRGB}\label{wximagesetrgb}
 
@@ -459,13 +576,25 @@ If you wish to extend the capabilities of wxImage, derive a class from wxImageHa
 and add the handler using \helpref{wxImage::AddHandler}{wximageaddhandler} in your
 application initialisation.
 
+\wxheading{Note (Legal Issue)}
+
+This software is based in part on the work of the Independent JPEG Group.
+
+(Applies when wxWindows is linked with JPEG support. wxJPEGHandler uses libjpeg
+created by IJG.)
+
 \wxheading{Derived from}
 
 \helpref{wxObject}{wxobject}
 
+\wxheading{Include files}
+
+<wx/image.h>
+
 \wxheading{See also}
 
 \helpref{wxImage}{wximage}
+\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
@@ -500,6 +629,12 @@ Gets the file extension associated with this handler.
 
 Gets the image type associated with this handler.
 
+\membersection{wxImageHandler::GetMimeType}
+
+\constfunc{wxString}{GetMimeType}{\void}
+
+Gets the MIME type associated with this handler.
+
 \membersection{wxImageHandler::LoadFile}\label{wximagehandlerloadfile}
 
 \func{bool}{LoadFile}{\param{wxImage* }{image}, \param{wxInputStream\&}{ stream}}
@@ -575,3 +710,14 @@ Sets the handler type.
 
 \docparam{name}{Handler type.}
 
+
+\membersection{wxImageHandler::SetMimeType}
+
+\func{void}{SetMimeType}{\param{const wxString\& }{mimetype}}
+
+Sets the handler MIME type.
+
+\wxheading{Parameters}
+
+\docparam{mimename}{Handler MIME type.}
+