]> git.saurik.com Git - wxWidgets.git/blame_incremental - docs/latex/wx/image.tex
corrected Get/SetFrame() parameter/return type
[wxWidgets.git] / docs / latex / wx / image.tex
... / ...
CommitLineData
1\section{\class{wxImage}}\label{wximage}
2
3This class encapsulates a platform-independent image. An image can be created
4from data, or using \helpref{wxBitmap::ConvertToImage}{wxbitmapconverttoimage}. An image
5can be loaded from a file in a variety of formats, and is extensible to new formats
6via image format handlers. Functions are available to set and get image bits, so
7it can be used for basic image manipulation.
8
9A wxImage cannot (currently) be drawn directly to a \helpref{wxDC}{wxdc}. Instead,
10a platform-specific \helpref{wxBitmap}{wxbitmap} object must be created from it using
11the \helpref{wxBitmap::wxBitmap(wxImage,int depth)}{wxbitmapconstr} constructor.
12This bitmap can then
13be drawn in a device context, using \helpref{wxDC::DrawBitmap}{wxdcdrawbitmap}.
14
15One colour value of the image may be used as a mask colour which will lead to the automatic
16creation of a \helpref{wxMask}{wxmask} object associated to the bitmap object.
17
18\wxheading{Available image handlers}
19
20The following image handlers are available. {\bf wxBMPHandler} is always
21installed by default. To use other image formats, install the appropriate
22handler with \helpref{wxImage::AddHandler}{wximageaddhandler} or
23\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}.
24
25\twocolwidtha{5cm}%
26\begin{twocollist}
27\twocolitem{\indexit{wxBMPHandler}}{For loading and saving, always installed.}
28\twocolitem{\indexit{wxPNGHandler}}{For loading and saving.}
29\twocolitem{\indexit{wxJPEGHandler}}{For loading and saving.}
30\twocolitem{\indexit{wxGIFHandler}}{Only for loading, due to legal issues.}
31\twocolitem{\indexit{wxPCXHandler}}{For loading and saving (see below).}
32\twocolitem{\indexit{wxPNMHandler}}{For loading and saving (see below).}
33\twocolitem{\indexit{wxTIFFHandler}}{For loading and saving.}
34\twocolitem{\indexit{wxIFFHandler}}{For loading only.}
35\twocolitem{\indexit{wxXPMHandler}}{For loading and saving.}
36\twocolitem{\indexit{wxICOHandler}}{For loading and saving.}
37\twocolitem{\indexit{wxCURHandler}}{For loading and saving.}
38\twocolitem{\indexit{wxANIHandler}}{For loading only.}
39\end{twocollist}
40
41When saving in PCX format, {\bf wxPCXHandler} will count the number of
42different colours in the image; if there are 256 or less colours, it will
43save as 8 bit, else it will save as 24 bit.
44
45Loading PNMs only works for ASCII or raw RGB images. When saving in
46PNM format, {\bf wxPNMHandler} will always save as raw RGB.
47
48\wxheading{Derived from}
49
50\helpref{wxObject}{wxobject}
51
52\wxheading{Include files}
53
54<wx/image.h>
55
56\wxheading{See also}
57
58\helpref{wxBitmap}{wxbitmap},
59\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
60
61\latexignore{\rtfignore{\wxheading{Members}}}
62
63\membersection{wxImage::wxImage}\label{wximageconstr}
64
65\func{}{wxImage}{\void}
66
67Default constructor.
68
69\func{}{wxImage}{\param{const wxImage\& }{image}}
70
71Copy constructor.
72
73\func{}{wxImage}{\param{const wxBitmap\&}{ bitmap}}
74
75(Deprecated form, use \helpref{wxBitmap::ConvertToImage}{wxbitmapconverttoimage}
76instead.) Constructs an image from a platform-dependent bitmap. This preserves
77mask information so that bitmaps and images can be converted back
78and forth without loss in that respect.
79
80\func{}{wxImage}{\param{int}{ width}, \param{int}{ height}}
81
82Creates an image with the given width and height.
83
84\func{}{wxImage}{\param{int}{ width}, \param{int}{ height}, \param{unsigned char*}{ data}, \param{bool}{ static\_data=FALSE}}
85
86Creates an image from given data with the given width and height. If
87{\it static\_data} is TRUE, then wxImage will not delete the actual
88image data in its destructor, otherwise it will free it by calling
89{\it free()}.
90
91\func{}{wxImage}{\param{const wxString\& }{name}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}, \param{int}{ index = -1}}
92
93\func{}{wxImage}{\param{const wxString\& }{name}, \param{const wxString\&}{ mimetype}, \param{int}{ index = -1}}
94
95Loads an image from a file.
96
97\func{}{wxImage}{\param{wxInputStream\& }{stream}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}, \param{int}{ index = -1}}
98
99\func{}{wxImage}{\param{wxInputStream\& }{stream}, \param{const wxString\&}{ mimetype}, \param{int}{ index = -1}}
100
101Loads an image from an input stream.
102
103\wxheading{Parameters}
104
105\docparam{width}{Specifies the width of the image.}
106
107\docparam{height}{Specifies the height of the image.}
108
109\docparam{name}{Name of the file from which to load the image.}
110
111\docparam{stream}{Opened input stream from which to load the image. Currently, the stream must support seeking.}
112
113\docparam{type}{May be one of the following:
114
115\twocolwidtha{5cm}%
116\begin{twocollist}
117\twocolitem{\indexit{wxBITMAP\_TYPE\_BMP}}{Load a Windows bitmap file.}
118\twocolitem{\indexit{wxBITMAP\_TYPE\_GIF}}{Load a GIF bitmap file.}
119\twocolitem{\indexit{wxBITMAP\_TYPE\_JPEG}}{Load a JPEG bitmap file.}
120\twocolitem{\indexit{wxBITMAP\_TYPE\_PNG}}{Load a PNG bitmap file.}
121\twocolitem{\indexit{wxBITMAP\_TYPE\_PCX}}{Load a PCX bitmap file.}
122\twocolitem{\indexit{wxBITMAP\_TYPE\_PNM}}{Load a PNM bitmap file.}
123\twocolitem{\indexit{wxBITMAP\_TYPE\_TIF}}{Load a TIFF bitmap file.}
124\twocolitem{\indexit{wxBITMAP\_TYPE\_XPM}}{Load a XPM bitmap file.}
125\twocolitem{\indexit{wxBITMAP\_TYPE\_ICO}}{Load a Windows icon file (ICO).}
126\twocolitem{\indexit{wxBITMAP\_TYPE\_CUR}}{Load a Windows cursor file (CUR).}
127\twocolitem{\indexit{wxBITMAP\_TYPE\_ANI}}{Load a Windows animated cursor file (ANI).}
128\twocolitem{\indexit{wxBITMAP\_TYPE\_ANY}}{Will try to autodetect the format.}
129\end{twocollist}}
130
131\docparam{mimetype}{MIME type string (for example 'image/jpeg')}
132
133\docparam{index}{Index of the image to load in the case that the image file contains multiple images.
134This is only used by GIF, ICO and TIFF handlers. The default value (-1) means
135"choose the default image" and is interpreted as the first image (index=0) by
136the GIF and TIFF handler and as the largest and most colourful one by the ICO handler.}
137
138\wxheading{Remarks}
139
140Depending on how wxWindows has been configured, not all formats may be available.
141
142Note: any handler other than BMP must be previously
143initialized with \helpref{wxImage::AddHandler}{wximageaddhandler} or
144\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}.
145
146Note: you can use \helpref{GetOptionInt}{wximagegetoptionint} to get the
147hotspot for loaded cursor file:
148\begin{verbatim}
149 int hotspot_x = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X);
150 int hotspot_y = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_Y);
151
152\end{verbatim}
153
154\wxheading{See also}
155
156\helpref{wxImage::LoadFile}{wximageloadfile}
157
158\pythonnote{Constructors supported by wxPython are:\par
159\indented{2cm}{\begin{twocollist}
160\twocolitem{{\bf wxImage(name, flag)}}{Loads an image from a file}
161\twocolitem{{\bf wxNullImage()}}{Create a null image (has no size or
162image data)}
163\twocolitem{{\bf wxEmptyImage(width, height)}}{Creates an empty image
164of the given size}
165\twocolitem{{\bf wxImageFromMime(name, mimetype}}{Creates an image from
166the given file of the given mimetype}
167\twocolitem{{\bf wxImageFromBitmap(bitmap)}}{Creates an image from a
168platform-dependent bitmap}
169\end{twocollist}}
170}
171
172\perlnote{Constructors supported by wxPerl are:\par
173\begin{itemize}
174\item{Wx::Image->new( bitmap )}
175\item{Wx::Image->new( width, height )}
176\item{Wx::Image->new( name, type )}
177\item{Wx::Image->new( name, mimetype )}
178\end{itemize}
179}
180
181\membersection{wxImage::\destruct{wxImage}}
182
183\func{}{\destruct{wxImage}}{\void}
184
185Destructor.
186
187\membersection{wxImage::AddHandler}\label{wximageaddhandler}
188
189\func{static void}{AddHandler}{\param{wxImageHandler*}{ handler}}
190
191Adds a handler to the end of the static list of format handlers.
192
193\docparam{handler}{A new image format handler object. There is usually only one instance
194of a given handler class in an application session.}
195
196\wxheading{See also}
197
198\helpref{wxImageHandler}{wximagehandler}
199
200\func{bool}{CanRead}{\param{const wxString\&}{ filename}}
201
202returns TRUE if the current image handlers can read this file
203
204\pythonnote{In wxPython this static method is named {\tt wxImage\_AddHandler}.}
205\membersection{wxImage::CleanUpHandlers}
206
207\func{static void}{CleanUpHandlers}{\void}
208
209Deletes all image handlers.
210
211This function is called by wxWindows on exit.
212
213\membersection{wxImage::ComputeHistogram}\label{wximagecomputehistogram}
214
215\constfunc{unsigned long}{ComputeHistogram}{\param{wxImageHistogram\& }{histogram}}
216
217Computes the histogram of the image. {\it histogram} is a reference to
218wxImageHistogram object. wxImageHistogram is a specialization of
219\helpref{wxHashMap}{wxhashmap} "template" and is defined as follows:
220
221\begin{verbatim}
222class WXDLLEXPORT wxImageHistogramEntry
223{
224public:
225 wxImageHistogramEntry() : index(0), value(0) {}
226 unsigned long index;
227 unsigned long value;
228};
229
230WX_DECLARE_EXPORTED_HASH_MAP(unsigned long, wxImageHistogramEntry,
231 wxIntegerHash, wxIntegerEqual,
232 wxImageHistogram);
233\end{verbatim}
234
235\wxheading{Return value}
236
237Returns number of colours in the histogram.
238
239\membersection{wxImage::ConvertToBitmap}\label{wximageconverttobitmap}
240
241\constfunc{wxBitmap}{ConvertToBitmap}{\void}
242
243Deprecated, use equivalent \helpref{wxBitmap constructor}{wxbitmapconstr}
244(which takes wxImage and depth as its arguments) instead.
245
246\membersection{wxImage::ConvertToMono}\label{wxbitmapconverttomono}
247
248\constfunc{wxImage}{ConvertToMono}{\param{unsigned char}{ r}, \param{unsigned char}{ g}, \param{unsigned char}{ b}}
249
250Returns monochromatic version of the image. The returned image has white
251colour where the original has {\it (r,g,b)} colour and black colour
252everywhere else.
253
254\membersection{wxImage::Copy}\label{wximagecopy}
255
256\constfunc{wxImage}{Copy}{\void}
257
258Returns an identical copy of the image.
259
260\membersection{wxImage::Create}\label{wximagecreate}
261
262\func{bool}{Create}{\param{int}{ width}, \param{int}{ height}}
263
264Creates a fresh image.
265
266\wxheading{Parameters}
267
268\docparam{width}{The width of the image in pixels.}
269
270\docparam{height}{The height of the image in pixels.}
271
272\wxheading{Return value}
273
274TRUE if the call succeeded, FALSE otherwise.
275
276\membersection{wxImage::Destroy}\label{wximagedestroy}
277
278\func{bool}{Destroy}{\void}
279
280Destroys the image data.
281
282\membersection{wxImage::FindFirstUnusedColour}\label{wximagefindfirstunusedcolour}
283
284\func{bool}{FindFirstUnusedColour}{\param{unsigned char *}{ r}, \param{unsigned char *}{ g}, \param{unsigned char *}{ b}, \param{unsigned char}{ startR = 1}, \param{unsigned char}{ startG = 0}, \param{unsigned char}{ startB = 0}}
285
286\wxheading{Parameters}
287
288\docparam{r,g,b}{Pointers to variables to save the colour.}
289
290\docparam{startR,startG,startB}{Initial values of the colour. Returned colour
291will have RGB values equal to or greater than these.}
292
293Finds the first colour that is never used in the image. The search begins at
294given initial colour and continues by increasing R, G and B components (in this
295order) by 1 until an unused colour is found or the colour space exhausted.
296
297\wxheading{Return value}
298
299Returns FALSE if there is no unused colour left, TRUE on success.
300
301\wxheading{Notes}
302
303Note that this method involves computing the histogram, which is
304computationally intensive operation.
305
306\membersection{wxImage::FindHandler}
307
308\func{static wxImageHandler*}{FindHandler}{\param{const wxString\& }{name}}
309
310Finds the handler with the given name.
311
312\func{static wxImageHandler*}{FindHandler}{\param{const wxString\& }{extension}, \param{long}{ imageType}}
313
314Finds the handler associated with the given extension and type.
315
316\func{static wxImageHandler*}{FindHandler}{\param{long }{imageType}}
317
318Finds the handler associated with the given image type.
319
320\func{static wxImageHandler*}{FindHandlerMime}{\param{const wxString\& }{mimetype}}
321
322Finds the handler associated with the given MIME type.
323
324\docparam{name}{The handler name.}
325
326\docparam{extension}{The file extension, such as ``bmp".}
327
328\docparam{imageType}{The image type, such as wxBITMAP\_TYPE\_BMP.}
329
330\docparam{mimetype}{MIME type.}
331
332\wxheading{Return value}
333
334A pointer to the handler if found, NULL otherwise.
335
336\wxheading{See also}
337
338\helpref{wxImageHandler}{wximagehandler}
339
340\membersection{wxImage::GetBlue}\label{wximagegetblue}
341
342\constfunc{unsigned char}{GetBlue}{\param{int}{ x}, \param{int}{ y}}
343
344Returns the blue intensity at the given coordinate.
345
346\membersection{wxImage::GetData}\label{wximagegetdata}
347
348\constfunc{unsigned char*}{GetData}{\void}
349
350Returns the image data as an array. This is most often used when doing
351direct image manipulation. The return value points to an array of
352characters in RGBRGBRGB$\ldots$ format.
353
354You should not delete the returned pointer nor pass it to
355\helpref{wxImage::SetData}{wximagesetdata}.
356
357\membersection{wxImage::GetGreen}\label{wximagegetgreen}
358
359\constfunc{unsigned char}{GetGreen}{\param{int}{ x}, \param{int}{ y}}
360
361Returns the green intensity at the given coordinate.
362
363\membersection{wxImage::GetImageCount}\label{wximagegetimagecount}
364
365\func{static int}{GetImageCount}{\param{const wxString\&}{ filename}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}}
366
367\func{static int}{GetImageCount}{\param{wxInputStream\&}{ stream}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}}
368
369If the image file contains more than one image and the image handler is capable
370of retrieving these individually, this function will return the number of
371available images.
372
373\docparam{name}{Name of the file to query.}
374
375\docparam{stream}{Opened input stream with image data. Currently, the stream must support seeking.}
376
377\docparam{type}{May be one of the following:
378
379\twocolwidtha{5cm}%
380\begin{twocollist}
381\twocolitem{\indexit{wxBITMAP\_TYPE\_BMP}}{Load a Windows bitmap file.}
382\twocolitem{\indexit{wxBITMAP\_TYPE\_GIF}}{Load a GIF bitmap file.}
383\twocolitem{\indexit{wxBITMAP\_TYPE\_JPEG}}{Load a JPEG bitmap file.}
384\twocolitem{\indexit{wxBITMAP\_TYPE\_PNG}}{Load a PNG bitmap file.}
385\twocolitem{\indexit{wxBITMAP\_TYPE\_PCX}}{Load a PCX bitmap file.}
386\twocolitem{\indexit{wxBITMAP\_TYPE\_PNM}}{Load a PNM bitmap file.}
387\twocolitem{\indexit{wxBITMAP\_TYPE\_TIF}}{Load a TIFF bitmap file.}
388\twocolitem{\indexit{wxBITMAP\_TYPE\_XPM}}{Load a XPM bitmap file.}
389\twocolitem{\indexit{wxBITMAP\_TYPE\_ICO}}{Load a Windows icon file (ICO).}
390\twocolitem{\indexit{wxBITMAP\_TYPE\_CUR}}{Load a Windows cursor file (CUR).}
391\twocolitem{\indexit{wxBITMAP\_TYPE\_ANI}}{Load a Windows animated cursor file (ANI).}
392\twocolitem{\indexit{wxBITMAP\_TYPE\_ANY}}{Will try to autodetect the format.}
393\end{twocollist}}
394
395\wxheading{Return value}
396
397Number of available images. For most image handlers, this is 1 (exceptions
398are TIFF and ICO formats).
399
400\membersection{wxImage::GetRed}\label{wximagegetred}
401
402\constfunc{unsigned char}{GetRed}{\param{int}{ x}, \param{int}{ y}}
403
404Returns the red intensity at the given coordinate.
405
406\membersection{wxImage::GetHandlers}
407
408\func{static wxList\&}{GetHandlers}{\void}
409
410Returns the static list of image format handlers.
411
412\wxheading{See also}
413
414\helpref{wxImageHandler}{wximagehandler}
415
416\membersection{wxImage::GetHeight}\label{wximagegetheight}
417
418\constfunc{int}{GetHeight}{\void}
419
420Gets the height of the image in pixels.
421
422\membersection{wxImage::GetMaskBlue}\label{wximagegetmaskblue}
423
424\constfunc{unsigned char}{GetMaskBlue}{\void}
425
426Gets the blue value of the mask colour.
427
428\membersection{wxImage::GetMaskGreen}\label{wximagegetmaskgreen}
429
430\constfunc{unsigned char}{GetMaskGreen}{\void}
431
432Gets the green value of the mask colour.
433
434\membersection{wxImage::GetMaskRed}\label{wximagegetmaskred}
435
436\constfunc{unsigned char}{GetMaskRed}{\void}
437
438Gets the red value of the mask colour.
439
440\membersection{wxImage::GetPalette}\label{wximagegetpalette}
441
442\constfunc{const wxPalette\&}{GetPalette}{\void}
443
444Returns the palette associated with the image. Currently the palette is only
445used when converting to wxBitmap under Windows.
446
447Eventually wxImage handlers will set the palette if one exists in the image file.
448
449\membersection{wxImage::GetSubImage}\label{wximagegetsubimage}
450
451\constfunc{wxImage}{GetSubImage}{\param{const wxRect\&}{ rect}}
452
453Returns a sub image of the current one as long as the rect belongs entirely to
454the image.
455
456\membersection{wxImage::GetWidth}\label{wximagegetwidth}
457
458\constfunc{int}{GetWidth}{\void}
459
460Gets the width of the image in pixels.
461
462\wxheading{See also}
463
464\helpref{wxImage::GetHeight}{wximagegetheight}
465
466\membersection{wxImage::HasMask}\label{wximagehasmask}
467
468\constfunc{bool}{HasMask}{\void}
469
470Returns TRUE if there is a mask active, FALSE otherwise.
471
472\membersection{wxImage::GetOption}\label{wximagegetoption}
473
474\constfunc{wxString}{GetOption}{\param{const wxString\&}{ name}}
475
476Gets a user-defined option. The function is case-insensitive to {\it name}.
477
478For example, when saving as a JPEG file, the option {\bf quality} is
479used, which is a number between 0 and 100 (0 is terrible, 100 is very good).
480
481\wxheading{See also}
482
483\helpref{wxImage::SetOption}{wximagesetoption},\rtfsp
484\helpref{wxImage::GetOptionInt}{wximagegetoptionint},\rtfsp
485\helpref{wxImage::HasOption}{wximagehasoption}
486
487\membersection{wxImage::GetOptionInt}\label{wximagegetoptionint}
488
489\constfunc{int}{GetOptionInt}{\param{const wxString\&}{ name}}
490
491Gets a user-defined option as an integer. The function is case-insensitive to {\it name}.
492
493\wxheading{See also}
494
495\helpref{wxImage::SetOption}{wximagesetoption},\rtfsp
496\helpref{wxImage::GetOption}{wximagegetoption},\rtfsp
497\helpref{wxImage::HasOption}{wximagehasoption}
498
499\membersection{wxImage::HasOption}\label{wximagehasoption}
500
501\constfunc{bool}{HasOption}{\param{const wxString\&}{ name}}
502
503Returns TRUE if the given option is present. The function is case-insensitive to {\it name}.
504
505\wxheading{See also}
506
507\helpref{wxImage::SetOption}{wximagesetoption},\rtfsp
508\helpref{wxImage::GetOption}{wximagegetoption},\rtfsp
509\helpref{wxImage::GetOptionInt}{wximagegetoptionint}
510
511\membersection{wxImage::InitStandardHandlers}
512
513\func{static void}{InitStandardHandlers}{\void}
514
515Internal use only. Adds standard image format handlers. It only install BMP
516for the time being, which is used by wxBitmap.
517
518This function is called by wxWindows on startup, and shouldn't be called by
519the user.
520
521\wxheading{See also}
522
523\helpref{wxImageHandler}{wximagehandler},
524\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
525
526\membersection{wxImage::InsertHandler}
527
528\func{static void}{InsertHandler}{\param{wxImageHandler*}{ handler}}
529
530Adds a handler at the start of the static list of format handlers.
531
532\docparam{handler}{A new image format handler object. There is usually only one instance
533of a given handler class in an application session.}
534
535\wxheading{See also}
536
537\helpref{wxImageHandler}{wximagehandler}
538
539\membersection{wxImage::LoadFile}\label{wximageloadfile}
540
541\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}, \param{int}{ index = -1}}
542
543\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{const wxString\&}{ mimetype}, \param{int}{ index = -1}}
544
545Loads an image from a file. If no handler type is provided, the library will
546try to autodetect the format.
547
548\func{bool}{LoadFile}{\param{wxInputStream\&}{ stream}, \param{long}{ type}, \param{int}{ index = -1}}
549
550\func{bool}{LoadFile}{\param{wxInputStream\&}{ stream}, \param{const wxString\&}{ mimetype}, \param{int}{ index = -1}}
551
552Loads an image from an input stream.
553
554\wxheading{Parameters}
555
556\docparam{name}{Name of the file from which to load the image.}
557
558\docparam{stream}{Opened input stream from which to load the image. Currently, the stream must support seeking.}
559
560\docparam{type}{One of the following values:
561
562\twocolwidtha{5cm}%
563\begin{twocollist}
564\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Load a Windows image file.}
565\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Load a GIF image file.}
566\twocolitem{{\bf wxBITMAP\_TYPE\_JPEG}}{Load a JPEG image file.}
567\twocolitem{{\bf wxBITMAP\_TYPE\_PCX}}{Load a PCX image file.}
568\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Load a PNG image file.}
569\twocolitem{{\bf wxBITMAP\_TYPE\_PNM}}{Load a PNM image file.}
570\twocolitem{{\bf wxBITMAP\_TYPE\_TIF}}{Load a TIFF image file.}
571\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Load a XPM image file.}
572\twocolitem{{\bf wxBITMAP\_TYPE\_ICO}}{Load a Windows icon file (ICO).}
573\twocolitem{{\bf wxBITMAP\_TYPE\_CUR}}{Load a Windows cursor file (CUR).}
574\twocolitem{\indexit{wxBITMAP\_TYPE\_ANI}}{Load a Windows animated cursor file (ANI).}
575\twocolitem{{\bf wxBITMAP\_TYPE\_ANY}}{Will try to autodetect the format.}
576\end{twocollist}}
577
578\docparam{mimetype}{MIME type string (for example 'image/jpeg')}
579
580\docparam{index}{Index of the image to load in the case that the image file contains multiple images.
581This is only used by GIF, ICO and TIFF handlers. The default value (-1) means
582"choose the default image" and is interpreted as the first image (index=0) by
583the GIF and TIFF handler and as the largest and most colourful one by the ICO handler.}
584
585\wxheading{Remarks}
586
587Depending on how wxWindows has been configured, not all formats may be available.
588
589Note: you can use \helpref{GetOptionInt}{wximagegetoptionint} to get the
590hotspot for loaded cursor file:
591\begin{verbatim}
592 int hotspot_x = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X);
593 int hotspot_y = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_Y);
594
595\end{verbatim}
596
597\wxheading{Return value}
598
599TRUE if the operation succeeded, FALSE otherwise. If the optional index parameter is out of range,
600FALSE is returned and a call to wxLogError() takes place.
601
602\wxheading{See also}
603
604\helpref{wxImage::SaveFile}{wximagesavefile}
605
606\pythonnote{In place of a single overloaded method name, wxPython
607implements the following methods:\par
608\indented{2cm}{\begin{twocollist}
609\twocolitem{{\bf LoadFile(filename, type)}}{Loads an image of the given
610type from a file}
611\twocolitem{{\bf LoadMimeFile(filename, mimetype)}}{Loads an image of the given
612mimetype from a file}
613\end{twocollist}}
614}
615
616\perlnote{Methods supported by wxPerl are:\par
617\begin{itemize}
618\item{bitmap->LoadFile( name, type )}
619\item{bitmap->LoadFile( name, mimetype )}
620\end{itemize}
621}
622
623
624\membersection{wxImage::Ok}\label{wximageok}
625
626\constfunc{bool}{Ok}{\void}
627
628Returns TRUE if image data is present.
629
630\membersection{wxImage::RemoveHandler}
631
632\func{static bool}{RemoveHandler}{\param{const wxString\& }{name}}
633
634Finds the handler with the given name, and removes it. The handler
635is not deleted.
636
637\docparam{name}{The handler name.}
638
639\wxheading{Return value}
640
641TRUE if the handler was found and removed, FALSE otherwise.
642
643\wxheading{See also}
644
645\helpref{wxImageHandler}{wximagehandler}
646
647\membersection{wxImage::SaveFile}\label{wximagesavefile}
648
649\constfunc{bool}{SaveFile}{\param{const wxString\& }{name}, \param{int}{ type}}
650
651\constfunc{bool}{SaveFile}{\param{const wxString\& }{name}, \param{const wxString\&}{ mimetype}}
652
653Saves an image in the named file.
654
655\constfunc{bool}{SaveFile}{\param{const wxString\& }{name}}
656
657Saves an image in the named file. File type is determined from the extension of the
658file name. Note that this function may fail if the extension is not recognized! You
659can use one of the forms above to save images to files with non-standard extensions.
660
661\constfunc{bool}{SaveFile}{\param{wxOutputStream\& }{stream}, \param{int}{ type}}
662
663\constfunc{bool}{SaveFile}{\param{wxOutputStream\& }{stream}, \param{const wxString\&}{ mimetype}}
664
665Saves an image in the given stream.
666
667\wxheading{Parameters}
668
669\docparam{name}{Name of the file to save the image to.}
670
671\docparam{stream}{Opened output stream to save the image to.}
672
673\docparam{type}{Currently these types can be used:
674
675\twocolwidtha{5cm}%
676\begin{twocollist}
677\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Save a BMP image file.}
678\twocolitem{{\bf wxBITMAP\_TYPE\_JPEG}}{Save a JPEG image file.}
679\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Save a PNG image file.}
680\twocolitem{{\bf wxBITMAP\_TYPE\_PCX}}{Save a PCX image file (tries to save as 8-bit if possible, falls back to 24-bit otherwise).}
681\twocolitem{{\bf wxBITMAP\_TYPE\_PNM}}{Save a PNM image file (as raw RGB always).}
682\twocolitem{{\bf wxBITMAP\_TYPE\_TIFF}}{Save a TIFF image file.}
683\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Save a XPM image file.}
684\twocolitem{{\bf wxBITMAP\_TYPE\_ICO}}{Save a Windows icon file (ICO) (the size may be up to 255 wide by 127 high. A single image is saved in 8 colors at the size supplied).}
685\twocolitem{{\bf wxBITMAP\_TYPE\_CUR}}{Save a Windows cursor file (CUR).}
686\end{twocollist}}
687
688\docparam{mimetype}{MIME type.}
689
690\wxheading{Return value}
691
692TRUE if the operation succeeded, FALSE otherwise.
693
694\wxheading{Remarks}
695
696Depending on how wxWindows has been configured, not all formats may be available.
697
698Note: you can use \helpref{GetOptionInt}{wximagegetoptionint} to set the
699hotspot before saving an image into a cursor file (default hotspot is in
700the centre of the image):
701\begin{verbatim}
702 image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, hotspotX);
703 image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, hotspotY);
704
705\end{verbatim}
706
707\wxheading{See also}
708
709\helpref{wxImage::LoadFile}{wximageloadfile}
710
711\pythonnote{In place of a single overloaded method name, wxPython
712implements the following methods:\par
713\indented{2cm}{\begin{twocollist}
714\twocolitem{{\bf SaveFile(filename, type)}}{Saves the image using the given
715type to the named file}
716\twocolitem{{\bf SaveMimeFile(filename, mimetype)}}{Saves the image using the given
717mimetype to the named file}
718\end{twocollist}}
719}
720
721\perlnote{Methods supported by wxPerl are:\par
722\begin{itemize}
723\item{bitmap->SaveFile( name, type )}
724\item{bitmap->SaveFile( name, mimetype )}
725\end{itemize}
726}
727
728\membersection{wxImage::Mirror}\label{wximagemirror}
729
730\constfunc{wxImage}{Mirror}{\param{bool}{ horizontally = TRUE}}
731
732Returns a mirrored copy of the image. The parameter {\it horizontally}
733indicates the orientation.
734
735\membersection{wxImage::Replace}\label{wximagereplace}
736
737\func{void}{Replace}{\param{unsigned char}{ r1}, \param{unsigned char}{ g1}, \param{unsigned char}{ b1},
738\param{unsigned char}{ r2}, \param{unsigned char}{ g2}, \param{unsigned char}{ b2}}
739
740Replaces the colour specified by {\it r1,g1,b1} by the colour {\it r2,g2,b2}.
741
742\membersection{wxImage::Rescale}\label{wximagerescale}
743
744\func{wxImage \&}{Rescale}{\param{int}{ width}, \param{int}{ height}}
745
746Changes the size of the image in-place: after a call to this function, the
747image will have the given width and height.
748
749Returns the (modified) image itself.
750
751\wxheading{See also}
752
753\helpref{Scale}{wximagescale}
754
755\membersection{wxImage::Rotate}\label{wximagerotate}
756
757\func{wxImage}{Rotate}{\param{double}{ angle}, \param{const wxPoint\& }{rotationCentre},
758 \param{bool}{ interpolating = TRUE}, \param{wxPoint*}{ offsetAfterRotation = NULL}}
759
760Rotates the image about the given point, by {\it angle} radians. Passing TRUE
761to {\it interpolating} results in better image quality, but is slower. If the
762image has a mask, then the mask colour is used for the uncovered pixels in the
763rotated image background. Else, black (rgb 0, 0, 0) will be used.
764
765Returns the rotated image, leaving this image intact.
766
767\membersection{wxImage::Rotate90}\label{wximagerotate90}
768
769\constfunc{wxImage}{Rotate90}{\param{bool}{ clockwise = TRUE}}
770
771Returns a copy of the image rotated 90 degrees in the direction
772indicated by {\it clockwise}.
773
774\membersection{wxImage::Scale}\label{wximagescale}
775
776\constfunc{wxImage}{Scale}{\param{int}{ width}, \param{int}{ height}}
777
778Returns a scaled version of the image. This is also useful for
779scaling bitmaps in general as the only other way to scale bitmaps
780is to blit a wxMemoryDC into another wxMemoryDC.
781
782It may be mentioned that the GTK port uses this function internally
783to scale bitmaps when using mapping modes in wxDC.
784
785Example:
786
787\begin{verbatim}
788 // get the bitmap from somewhere
789 wxBitmap bmp = ...;
790
791 // rescale it to have size of 32*32
792 if ( bmp.GetWidth() != 32 || bmp.GetHeight() != 32 )
793 {
794 wxImage image(bmp);
795 bmp = wxBitmap(image.Scale(32, 32));
796
797 // another possibility:
798 image.Rescale(32, 32);
799 bmp = image;
800 }
801
802\end{verbatim}
803
804\wxheading{See also}
805
806\helpref{Rescale}{wximagerescale}
807
808\membersection{wxImage::SetData}\label{wximagesetdata}
809
810\func{void}{SetData}{\param{unsigned char*}{data}}
811
812Sets the image data without performing checks. The data given must have
813the size (width*height*3) or results will be unexpected. Don't use this
814method if you aren't sure you know what you are doing.
815
816The data must have been allocated with malloc(), NOT with operator new.
817
818After this call the pointer to the data is owned by the wxImage object,
819that will be responsible for deleting it.
820Do not pass to this function a pointer obtained through
821\helpref{wxImage::GetData}{wximagegetdata}.
822
823\membersection{wxImage::SetMask}\label{wximagesetmask}
824
825\func{void}{SetMask}{\param{bool}{ hasMask = TRUE}}
826
827Specifies whether there is a mask or not. The area of the mask is determined by the current mask colour.
828
829\membersection{wxImage::SetMaskColour}\label{wximagesetmaskcolour}
830
831\func{void}{SetMaskColour}{\param{unsigned char }{red}, \param{unsigned char }{blue}, \param{unsigned char }{green}}
832
833Sets the mask colour for this image (and tells the image to use the mask).
834
835\membersection{wxImage::SetMaskFromImage}\label{wximagesetmaskfromimage}
836
837\func{bool}{SetMaskFromImage}{\param{const wxImage\&}{ mask}, \param{unsigned char}{ mr}, \param{unsigned char}{ mg}, \param{unsigned char}{ mb}}
838
839\wxheading{Parameters}
840
841\docparam{mask}{The mask image to extract mask shape from. Must have same dimensions as the image.}
842
843\docparam{mr,mg,mb}{RGB value of pixels in {\it mask} that will be used to create the mask.}
844
845Sets image's mask so that the pixels that have RGB value of {\it mr,mg,mb}
846in {\it mask} will be masked in the image. This is done by first finding an
847unused colour in the image, setting this colour as the mask colour and then
848using this colour to draw all pixels in the image who corresponding pixel
849in {\it mask} has given RGB value.
850
851\wxheading{Return value}
852
853Returns FALSE if {\it mask} does not have same dimensions as the image or if
854there is no unused colour left. Returns TRUE if the mask was successfully
855applied.
856
857\wxheading{Notes}
858
859Note that this method involves computing the histogram, which is
860computationally intensive operation.
861
862\membersection{wxImage::SetOption}\label{wximagesetoption}
863
864\func{void}{SetOption}{\param{const wxString\&}{ name}, \param{const wxString\&}{ value}}
865
866\func{void}{SetOption}{\param{const wxString\&}{ name}, \param{int}{ value}}
867
868Sets a user-defined option. The function is case-insensitive to {\it name}.
869
870For example, when saving as a JPEG file, the option {\bf quality} is
871used, which is a number between 0 and 100 (0 is terrible, 100 is very good).
872
873\wxheading{See also}
874
875\helpref{wxImage::GetOption}{wximagegetoption},\rtfsp
876\helpref{wxImage::GetOptionInt}{wximagegetoptionint},\rtfsp
877\helpref{wxImage::HasOption}{wximagehasoption}
878
879\membersection{wxImage::SetPalette}\label{wximagesetpalette}
880
881\func{void}{SetPalette}{\param{const wxPalette\&}{ palette}}
882
883Associates a palette with the image. The palette may be used when converting
884wxImage to wxBitmap (MSW only at present) or in file save operations (none as yet).
885
886\membersection{wxImage::SetRGB}\label{wximagesetrgb}
887
888\func{void}{SetRGB}{\param{int }{x}, \param{int }{y}, \param{unsigned char }{red}, \param{unsigned char }{green}, \param{unsigned char }{blue}}
889
890Sets the pixel at the given coordinate. This routine performs bounds-checks
891for the coordinate so it can be considered a safe way to manipulate the
892data, but in some cases this might be too slow so that the data will have to
893be set directly. In that case you will have to get access to the image data
894using the \helpref{GetData}{wximagegetdata} method.
895
896\membersection{wxImage::operator $=$}
897
898\func{wxImage\& }{operator $=$}{\param{const wxImage\& }{image}}
899
900Assignment operator. This operator does not copy any data, but instead
901passes a pointer to the data in {\it image} and increments a reference
902counter. It is a fast operation.
903
904\wxheading{Parameters}
905
906\docparam{image}{Image to assign.}
907
908\wxheading{Return value}
909
910Returns 'this' object.
911
912\membersection{wxImage::operator $==$}
913
914\constfunc{bool}{operator $==$}{\param{const wxImage\& }{image}}
915
916Equality operator. This operator tests whether the internal data pointers are
917equal (a fast test).
918
919\wxheading{Parameters}
920
921\docparam{image}{Image to compare with 'this'}
922
923\wxheading{Return value}
924
925Returns TRUE if the images were effectively equal, FALSE otherwise.
926
927\membersection{wxImage::operator $!=$}
928
929\constfunc{bool}{operator $!=$}{\param{const wxImage\& }{image}}
930
931Inequality operator. This operator tests whether the internal data pointers are
932unequal (a fast test).
933
934\wxheading{Parameters}
935
936\docparam{image}{Image to compare with 'this'}
937
938\wxheading{Return value}
939
940Returns TRUE if the images were unequal, FALSE otherwise.
941
942\section{\class{wxImageHandler}}\label{wximagehandler}
943
944This is the base class for implementing image file loading/saving, and image creation from data.
945It is used within wxImage and is not normally seen by the application.
946
947If you wish to extend the capabilities of wxImage, derive a class from wxImageHandler
948and add the handler using \helpref{wxImage::AddHandler}{wximageaddhandler} in your
949application initialisation.
950
951\wxheading{Note (Legal Issue)}
952
953This software is based in part on the work of the Independent JPEG Group.
954
955(Applies when wxWindows is linked with JPEG support. wxJPEGHandler uses libjpeg
956created by IJG.)
957
958\wxheading{Derived from}
959
960\helpref{wxObject}{wxobject}
961
962\wxheading{Include files}
963
964<wx/image.h>
965
966\wxheading{See also}
967
968\helpref{wxImage}{wximage},
969\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
970
971\latexignore{\rtfignore{\wxheading{Members}}}
972
973\membersection{wxImageHandler::wxImageHandler}\label{wximagehandlerconstr}
974
975\func{}{wxImageHandler}{\void}
976
977Default constructor. In your own default constructor, initialise the members
978m\_name, m\_extension and m\_type.
979
980\membersection{wxImageHandler::\destruct{wxImageHandler}}
981
982\func{}{\destruct{wxImageHandler}}{\void}
983
984Destroys the wxImageHandler object.
985
986\membersection{wxImageHandler::GetName}
987
988\constfunc{wxString}{GetName}{\void}
989
990Gets the name of this handler.
991
992\membersection{wxImageHandler::GetExtension}
993
994\constfunc{wxString}{GetExtension}{\void}
995
996Gets the file extension associated with this handler.
997
998\membersection{wxImageHandler::GetImageCount}\label{wximagehandlergetimagecount}
999
1000\func{int}{GetImageCount}{\param{wxInputStream\&}{ stream}}
1001
1002If the image file contains more than one image and the image handler is capable
1003of retrieving these individually, this function will return the number of
1004available images.
1005
1006\docparam{stream}{Opened input stream for reading image data. Currently, the stream must support seeking.}
1007
1008\wxheading{Return value}
1009
1010Number of available images. For most image handlers, this is 1 (exceptions
1011are TIFF and ICO formats).
1012
1013\membersection{wxImageHandler::GetType}
1014
1015\constfunc{long}{GetType}{\void}
1016
1017Gets the image type associated with this handler.
1018
1019\membersection{wxImageHandler::GetMimeType}
1020
1021\constfunc{wxString}{GetMimeType}{\void}
1022
1023Gets the MIME type associated with this handler.
1024
1025\membersection{wxImageHandler::LoadFile}\label{wximagehandlerloadfile}
1026
1027\func{bool}{LoadFile}{\param{wxImage* }{image}, \param{wxInputStream\&}{ stream}, \param{bool}{ verbose=TRUE}, \param{int}{ index=0}}
1028
1029Loads a image from a stream, putting the resulting data into {\it image}. If the image file contains
1030more than one image and the image handler is capable of retrieving these individually, {\it index}
1031indicates which image to read from the stream.
1032
1033\wxheading{Parameters}
1034
1035\docparam{image}{The image object which is to be affected by this operation.}
1036
1037\docparam{stream}{Opened input stream for reading image data.}
1038
1039\docparam{verbose}{If set to TRUE, errors reported by the image handler will produce wxLogMessages.}
1040
1041\docparam{index}{The index of the image in the file (starting from zero).}
1042
1043\wxheading{Return value}
1044
1045TRUE if the operation succeeded, FALSE otherwise.
1046
1047\wxheading{See also}
1048
1049\helpref{wxImage::LoadFile}{wximageloadfile},
1050\helpref{wxImage::SaveFile}{wximagesavefile},
1051\helpref{wxImageHandler::SaveFile}{wximagehandlersavefile}
1052
1053\membersection{wxImageHandler::SaveFile}\label{wximagehandlersavefile}
1054
1055\func{bool}{SaveFile}{\param{wxImage* }{image}, \param{wxOutputStream\& }{stream}}
1056
1057Saves a image in the output stream.
1058
1059\wxheading{Parameters}
1060
1061\docparam{image}{The image object which is to be affected by this operation.}
1062
1063\docparam{stream}{Opened output stream for writing the data.}
1064
1065\wxheading{Return value}
1066
1067TRUE if the operation succeeded, FALSE otherwise.
1068
1069\wxheading{See also}
1070
1071\helpref{wxImage::LoadFile}{wximageloadfile},
1072\helpref{wxImage::SaveFile}{wximagesavefile},
1073\helpref{wxImageHandler::LoadFile}{wximagehandlerloadfile}
1074
1075\membersection{wxImageHandler::SetName}
1076
1077\func{void}{SetName}{\param{const wxString\& }{name}}
1078
1079Sets the handler name.
1080
1081\wxheading{Parameters}
1082
1083\docparam{name}{Handler name.}
1084
1085\membersection{wxImageHandler::SetExtension}
1086
1087\func{void}{SetExtension}{\param{const wxString\& }{extension}}
1088
1089Sets the handler extension.
1090
1091\wxheading{Parameters}
1092
1093\docparam{extension}{Handler extension.}
1094
1095\membersection{wxImageHandler::SetMimeType}\label{wximagehandlersetmimetype}
1096
1097\func{void}{SetMimeType}{\param{const wxString\& }{mimetype}}
1098
1099Sets the handler MIME type.
1100
1101\wxheading{Parameters}
1102
1103\docparam{mimename}{Handler MIME type.}
1104
1105\membersection{wxImageHandler::SetType}
1106
1107\func{void}{SetType}{\param{long }{type}}
1108
1109Sets the handler type.
1110
1111\wxheading{Parameters}
1112
1113\docparam{name}{Handler type.}
1114