]> git.saurik.com Git - wxWidgets.git/blame_incremental - docs/latex/wx/image.tex
set up scrollbars correctly when we don't need them (fixes the problems reported...
[wxWidgets.git] / docs / latex / wx / image.tex
... / ...
CommitLineData
1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2%% Name: image.tex
3%% Purpose: wxImage documentation
4%% Author: wxWidgets Team
5%% Modified by:
6%% Created:
7%% RCS-ID: $Id$
8%% Copyright: (c) wxWidgets Team
9%% License: wxWindows license
10%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11
12\section{\class{wxImage}}\label{wximage}
13
14This class encapsulates a platform-independent image. An image can be created
15from data, or using \helpref{wxBitmap::ConvertToImage}{wxbitmapconverttoimage}. An image
16can be loaded from a file in a variety of formats, and is extensible to new formats
17via image format handlers. Functions are available to set and get image bits, so
18it can be used for basic image manipulation.
19
20A wxImage cannot (currently) be drawn directly to a \helpref{wxDC}{wxdc}. Instead,
21a platform-specific \helpref{wxBitmap}{wxbitmap} object must be created from it using
22the \helpref{wxBitmap::wxBitmap(wxImage,int depth)}{wxbitmapctor} constructor.
23This bitmap can then
24be drawn in a device context, using \helpref{wxDC::DrawBitmap}{wxdcdrawbitmap}.
25
26One colour value of the image may be used as a mask colour which will lead to the automatic
27creation of a \helpref{wxMask}{wxmask} object associated to the bitmap object.
28
29\wxheading{Alpha channel support}
30
31Starting from wxWidgets 2.5.0 wxImage supports alpha channel data, that is in
32addition to a byte for the red, green and blue colour components for each pixel
33it also stores a byte representing the pixel opacity. An alpha value of $0$
34corresponds to a transparent pixel (null opacity) while a value of $255$
35means that the pixel is 100\% opaque.
36
37Unlike RGB data, not all images have an alpha channel and before using
38\helpref{GetAlpha}{wximagegetalpha} you should check if this image contains
39an alpha channel with \helpref{HasAlpha}{wximagehasalpha}. Note that currently only
40images loaded from PNG files with transparency information will have an alpha
41channel but alpha support will be added to the other formats as well (as well
42as support for saving images with alpha channel which also isn't implemented).
43
44\wxheading{Available image handlers}
45
46The following image handlers are available. {\bf wxBMPHandler} is always
47installed by default. To use other image formats, install the appropriate
48handler with \helpref{wxImage::AddHandler}{wximageaddhandler} or
49\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}.
50
51\twocolwidtha{5cm}%
52\begin{twocollist}
53\twocolitem{\indexit{wxBMPHandler}}{For loading and saving, always installed.}
54\twocolitem{\indexit{wxPNGHandler}}{For loading (including alpha support) and saving.}
55\twocolitem{\indexit{wxJPEGHandler}}{For loading and saving.}
56\twocolitem{\indexit{wxGIFHandler}}{Only for loading, due to legal issues.}
57\twocolitem{\indexit{wxPCXHandler}}{For loading and saving (see below).}
58\twocolitem{\indexit{wxPNMHandler}}{For loading and saving (see below).}
59\twocolitem{\indexit{wxTIFFHandler}}{For loading and saving.}
60\twocolitem{\indexit{wxIFFHandler}}{For loading only.}
61\twocolitem{\indexit{wxXPMHandler}}{For loading and saving.}
62\twocolitem{\indexit{wxICOHandler}}{For loading and saving.}
63\twocolitem{\indexit{wxCURHandler}}{For loading and saving.}
64\twocolitem{\indexit{wxANIHandler}}{For loading only.}
65\end{twocollist}
66
67When saving in PCX format, {\bf wxPCXHandler} will count the number of
68different colours in the image; if there are 256 or less colours, it will
69save as 8 bit, else it will save as 24 bit.
70
71Loading PNMs only works for ASCII or raw RGB images. When saving in
72PNM format, {\bf wxPNMHandler} will always save as raw RGB.
73
74\wxheading{Derived from}
75
76\helpref{wxObject}{wxobject}
77
78\wxheading{Include files}
79
80<wx/image.h>
81
82\wxheading{See also}
83
84\helpref{wxBitmap}{wxbitmap},
85\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
86
87\latexignore{\rtfignore{\wxheading{Members}}}
88
89
90\membersection{wxImage::wxImage}\label{wximagector}
91
92\func{}{wxImage}{\void}
93
94Default constructor.
95
96\func{}{wxImage}{\param{const wxImage\& }{image}}
97
98Copy constructor.
99
100\func{}{wxImage}{\param{const wxBitmap\&}{ bitmap}}
101
102(Deprecated form, use \helpref{wxBitmap::ConvertToImage}{wxbitmapconverttoimage}
103instead.) Constructs an image from a platform-dependent bitmap. This preserves
104mask information so that bitmaps and images can be converted back
105and forth without loss in that respect.
106
107\func{}{wxImage}{\param{int}{ width}, \param{int}{ height}, \param{bool}{ clear=true}}
108
109Creates an image with the given width and height. If {\it clear} is true, the new image will be initialized to black.
110Otherwise, the image data will be uninitialized.
111
112\func{}{wxImage}{\param{int}{ width}, \param{int}{ height}, \param{unsigned char*}{ data}, \param{bool}{ static\_data = \false}}
113
114Creates an image from given data with the given width and height. If
115{\it static\_data} is true, then wxImage will not delete the actual
116image data in its destructor, otherwise it will free it by calling
117{\it free()}.
118
119\func{}{wxImage}{\param{const wxString\& }{name}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}, \param{int}{ index = -1}}
120
121\func{}{wxImage}{\param{const wxString\& }{name}, \param{const wxString\&}{ mimetype}, \param{int}{ index = -1}}
122
123Loads an image from a file.
124
125\func{}{wxImage}{\param{wxInputStream\& }{stream}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}, \param{int}{ index = -1}}
126
127\func{}{wxImage}{\param{wxInputStream\& }{stream}, \param{const wxString\&}{ mimetype}, \param{int}{ index = -1}}
128
129Loads an image from an input stream.
130
131\func{}{wxImage}{\param{const char** }{xpmData}}
132
133Creates an image from XPM data.
134
135\wxheading{Parameters}
136
137\docparam{width}{Specifies the width of the image.}
138
139\docparam{height}{Specifies the height of the image.}
140
141\docparam{name}{Name of the file from which to load the image.}
142
143\docparam{stream}{Opened input stream from which to load the image. Currently, the stream must support seeking.}
144
145\docparam{type}{May be one of the following:
146
147\twocolwidtha{5cm}%
148\begin{twocollist}
149\twocolitem{\indexit{wxBITMAP\_TYPE\_BMP}}{Load a Windows bitmap file.}
150\twocolitem{\indexit{wxBITMAP\_TYPE\_GIF}}{Load a GIF bitmap file.}
151\twocolitem{\indexit{wxBITMAP\_TYPE\_JPEG}}{Load a JPEG bitmap file.}
152\twocolitem{\indexit{wxBITMAP\_TYPE\_PNG}}{Load a PNG bitmap file.}
153\twocolitem{\indexit{wxBITMAP\_TYPE\_PCX}}{Load a PCX bitmap file.}
154\twocolitem{\indexit{wxBITMAP\_TYPE\_PNM}}{Load a PNM bitmap file.}
155\twocolitem{\indexit{wxBITMAP\_TYPE\_TIF}}{Load a TIFF bitmap file.}
156\twocolitem{\indexit{wxBITMAP\_TYPE\_XPM}}{Load a XPM bitmap file.}
157\twocolitem{\indexit{wxBITMAP\_TYPE\_ICO}}{Load a Windows icon file (ICO).}
158\twocolitem{\indexit{wxBITMAP\_TYPE\_CUR}}{Load a Windows cursor file (CUR).}
159\twocolitem{\indexit{wxBITMAP\_TYPE\_ANI}}{Load a Windows animated cursor file (ANI).}
160\twocolitem{\indexit{wxBITMAP\_TYPE\_ANY}}{Will try to autodetect the format.}
161\end{twocollist}}
162
163\docparam{mimetype}{MIME type string (for example 'image/jpeg')}
164
165\docparam{index}{Index of the image to load in the case that the image file contains multiple images.
166This is only used by GIF, ICO and TIFF handlers. The default value (-1) means
167"choose the default image" and is interpreted as the first image (index=0) by
168the GIF and TIFF handler and as the largest and most colourful one by the ICO handler.}
169
170\docparam{xpmData}{A pointer to XPM image data.}
171
172\wxheading{Remarks}
173
174Depending on how wxWidgets has been configured, not all formats may be available.
175
176Note: any handler other than BMP must be previously
177initialized with \helpref{wxImage::AddHandler}{wximageaddhandler} or
178\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}.
179
180Note: you can use \helpref{GetOptionInt}{wximagegetoptionint} to get the
181hotspot for loaded cursor file:
182\begin{verbatim}
183 int hotspot_x = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X);
184 int hotspot_y = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_Y);
185
186\end{verbatim}
187
188\wxheading{See also}
189
190\helpref{wxImage::LoadFile}{wximageloadfile}
191
192\pythonnote{Constructors supported by wxPython are:\par
193\indented{2cm}{\begin{twocollist}
194\twocolitem{{\bf wxImage(name, flag)}}{Loads an image from a file}
195\twocolitem{{\bf wxNullImage()}}{Create a null image (has no size or
196image data)}
197\twocolitem{{\bf wxEmptyImage(width, height)}}{Creates an empty image
198of the given size}
199\twocolitem{{\bf wxImageFromMime(name, mimetype}}{Creates an image from
200the given file of the given mimetype}
201\twocolitem{{\bf wxImageFromBitmap(bitmap)}}{Creates an image from a
202platform-dependent bitmap}
203\end{twocollist}}
204}
205
206\perlnote{Constructors supported by wxPerl are:\par
207\begin{itemize}
208\item{Wx::Image->new( bitmap )}
209\item{Wx::Image->new( icon )}
210\item{Wx::Image->new( width, height )}
211\item{Wx::Image->new( width, height, data )}
212\item{Wx::Image->new( file, type, index )}
213\item{Wx::Image->new( file, mimetype, index )}
214\item{Wx::Image->new( stream, type, index )}
215\item{Wx::Image->new( stream, mimetype, index )}
216\end{itemize}
217}
218
219
220\membersection{wxImage::\destruct{wxImage}}\label{wximagedtor}
221
222\func{}{\destruct{wxImage}}{\void}
223
224Destructor.
225
226
227\membersection{wxImage::AddHandler}\label{wximageaddhandler}
228
229\func{static void}{AddHandler}{\param{wxImageHandler*}{ handler}}
230
231Adds a handler to the end of the static list of format handlers.
232
233\docparam{handler}{A new image format handler object. There is usually only one instance
234of a given handler class in an application session.}
235
236\wxheading{See also}
237
238\helpref{wxImageHandler}{wximagehandler}
239
240\func{bool}{CanRead}{\param{const wxString\&}{ filename}}
241
242returns true if the current image handlers can read this file
243
244\pythonnote{In wxPython this static method is named {\tt wxImage\_AddHandler}.}
245
246\membersection{wxImage::CleanUpHandlers}\label{wximagecleanuphandlers}
247
248\func{static void}{CleanUpHandlers}{\void}
249
250Deletes all image handlers.
251
252This function is called by wxWidgets on exit.
253
254
255\membersection{wxImage::ComputeHistogram}\label{wximagecomputehistogram}
256
257\constfunc{unsigned long}{ComputeHistogram}{\param{wxImageHistogram\& }{histogram}}
258
259Computes the histogram of the image. {\it histogram} is a reference to
260wxImageHistogram object. wxImageHistogram is a specialization of
261\helpref{wxHashMap}{wxhashmap} "template" and is defined as follows:
262
263\begin{verbatim}
264class WXDLLEXPORT wxImageHistogramEntry
265{
266public:
267 wxImageHistogramEntry() : index(0), value(0) {}
268 unsigned long index;
269 unsigned long value;
270};
271
272WX_DECLARE_EXPORTED_HASH_MAP(unsigned long, wxImageHistogramEntry,
273 wxIntegerHash, wxIntegerEqual,
274 wxImageHistogram);
275\end{verbatim}
276
277\wxheading{Return value}
278
279Returns number of colours in the histogram.
280
281
282\membersection{wxImage::ConvertAlphaToMask}\label{wximageconvertalphatomask}
283
284\func{bool}{ConvertAlphaToMask}{\param{unsigned char}{ threshold = $128$}}
285
286If the image has alpha channel, this method converts it to mask. All pixels
287with alpha value less than \arg{threshold} are replaced with mask colour
288and the alpha channel is removed. Mask colour is chosen automatically using
289\helpref{FindFirstUnusedColour}{wximagefindfirstunusedcolour}.
290
291If the image image doesn't have alpha channel,
292ConvertAlphaToMask does nothing.
293
294\wxheading{Return value}
295
296\false if FindFirstUnusedColour returns \false, \true otherwise.
297
298
299\membersection{wxImage::ConvertToBitmap}\label{wximageconverttobitmap}
300
301\constfunc{wxBitmap}{ConvertToBitmap}{\void}
302
303Deprecated, use equivalent \helpref{wxBitmap constructor}{wxbitmapctor}
304(which takes wxImage and depth as its arguments) instead.
305
306
307\membersection{wxImage::ConvertToGreyscale}\label{wximageconverttogreyscale}
308
309\constfunc{wxImage}{ConvertToGreyscale}{\param{double}{ lr = 0.299}, \param{double}{ lg = 0.587}, \param{double}{ lb = 0.114}}
310
311Returns a greyscale version of the image. The returned image uses the luminance
312component of the original to calculate the greyscale. Defaults to using
313ITU-T BT.601 when converting to YUV, where every pixel equals
314(R * {\it lr}) + (G * {\it lg}) + (B * {\it lb}).
315
316
317\membersection{wxImage::ConvertToMono}\label{wxbitmapconverttomono}
318
319\constfunc{wxImage}{ConvertToMono}{\param{unsigned char}{ r}, \param{unsigned char}{ g}, \param{unsigned char}{ b}}
320
321Returns monochromatic version of the image. The returned image has white
322colour where the original has {\it (r,g,b)} colour and black colour
323everywhere else.
324
325
326\membersection{wxImage::Copy}\label{wximagecopy}
327
328\constfunc{wxImage}{Copy}{\void}
329
330Returns an identical copy of the image.
331
332
333\membersection{wxImage::Create}\label{wximagecreate}
334
335\func{bool}{Create}{\param{int}{ width}, \param{int}{ height}, \param{bool}{ clear=true}}
336
337Creates a fresh image. If {\it clear} is true, the new image will be initialized to black.
338Otherwise, the image data will be uninitialized.
339
340\wxheading{Parameters}
341
342\docparam{width}{The width of the image in pixels.}
343
344\docparam{height}{The height of the image in pixels.}
345
346\wxheading{Return value}
347
348true if the call succeeded, false otherwise.
349
350
351\membersection{wxImage::Destroy}\label{wximagedestroy}
352
353\func{void}{Destroy}{\void}
354
355Destroys the image data.
356
357
358\membersection{wxImage::FindFirstUnusedColour}\label{wximagefindfirstunusedcolour}
359
360\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}}
361
362\wxheading{Parameters}
363
364\docparam{r,g,b}{Pointers to variables to save the colour.}
365
366\docparam{startR,startG,startB}{Initial values of the colour. Returned colour
367will have RGB values equal to or greater than these.}
368
369Finds the first colour that is never used in the image. The search begins at
370given initial colour and continues by increasing R, G and B components (in this
371order) by 1 until an unused colour is found or the colour space exhausted.
372
373\wxheading{Return value}
374
375Returns false if there is no unused colour left, true on success.
376
377\wxheading{Notes}
378
379Note that this method involves computing the histogram, which is
380computationally intensive operation.
381
382
383\membersection{wxImage::FindHandler}\label{wximagefindhandler}
384
385\func{static wxImageHandler*}{FindHandler}{\param{const wxString\& }{name}}
386
387Finds the handler with the given name.
388
389\func{static wxImageHandler*}{FindHandler}{\param{const wxString\& }{extension}, \param{long}{ imageType}}
390
391Finds the handler associated with the given extension and type.
392
393\func{static wxImageHandler*}{FindHandler}{\param{long }{imageType}}
394
395Finds the handler associated with the given image type.
396
397\func{static wxImageHandler*}{FindHandlerMime}{\param{const wxString\& }{mimetype}}
398
399Finds the handler associated with the given MIME type.
400
401\docparam{name}{The handler name.}
402
403\docparam{extension}{The file extension, such as ``bmp".}
404
405\docparam{imageType}{The image type, such as wxBITMAP\_TYPE\_BMP.}
406
407\docparam{mimetype}{MIME type.}
408
409\wxheading{Return value}
410
411A pointer to the handler if found, NULL otherwise.
412
413\wxheading{See also}
414
415\helpref{wxImageHandler}{wximagehandler}
416
417
418\membersection{wxImage::GetImageExtWildcard}\label{wximagegetimageextwildcard}
419
420\func{static wxString}{GetImageExtWildcard}{\void}
421
422Iterates all registered wxImageHandler objects, and returns a string containing file extension masks
423suitable for passing to file open/save dialog boxes.
424
425\wxheading{Return value}
426
427The format of the returned string is "(*.ext1;*.ext2)|*.ext1;*.ext2".
428
429It is usually a good idea to prepend a description before passing the result to the dialog.
430
431Example:
432
433\begin{verbatim}
434 wxFileDialog FileDlg( this, "Choose Image", ::wxGetCwd(), "", _("Image Files ") + wxImage::GetImageExtWildcard(), wxOPEN );
435\end{verbatim}
436
437\wxheading{See also}
438
439\helpref{wxImageHandler}{wximagehandler}
440
441
442\membersection{wxImage::GetAlpha}\label{wximagegetalpha}
443
444\constfunc{unsigned char}{GetAlpha}{\param{int}{ x}, \param{int}{ y}}
445
446Returns the alpha value for the given pixel. This function may only be called
447for the images with alpha channel, use \helpref{HasAlpha}{wximagehasalpha} to
448check for this.
449
450The returned value is the {\it opacity} of the image, i.e. the value of $0$
451corresponds to the transparent pixels while the value of $255$ -- to the opaque
452ones.
453
454\constfunc{unsigned char *}{GetAlpha}{\void}
455
456Returns pointer to the array storing the alpha values for this image. This
457pointer is {\tt NULL} for the images without the alpha channel. If the image
458does have it, this pointer may be used to directly manipulate the alpha values
459which are stored as the \helpref{RGB}{wximagegetdata} ones.
460
461
462\membersection{wxImage::GetBlue}\label{wximagegetblue}
463
464\constfunc{unsigned char}{GetBlue}{\param{int}{ x}, \param{int}{ y}}
465
466Returns the blue intensity at the given coordinate.
467
468
469\membersection{wxImage::GetData}\label{wximagegetdata}
470
471\constfunc{unsigned char*}{GetData}{\void}
472
473Returns the image data as an array. This is most often used when doing
474direct image manipulation. The return value points to an array of
475characters in RGBRGBRGB$\ldots$ format in the top-to-bottom, left-to-right
476order, that is the first RGB triplet corresponds to the pixel first pixel of
477the first row, the second one --- to the second pixel of the first row and so
478on until the end of the first row, with second row following after it and so
479on.
480
481You should not delete the returned pointer nor pass it to
482\helpref{wxImage::SetData}{wximagesetdata}.
483
484
485\membersection{wxImage::GetGreen}\label{wximagegetgreen}
486
487\constfunc{unsigned char}{GetGreen}{\param{int}{ x}, \param{int}{ y}}
488
489Returns the green intensity at the given coordinate.
490
491
492\membersection{wxImage::GetImageCount}\label{wximagegetimagecount}
493
494\func{static int}{GetImageCount}{\param{const wxString\&}{ filename}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}}
495
496\func{static int}{GetImageCount}{\param{wxInputStream\&}{ stream}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}}
497
498If the image file contains more than one image and the image handler is capable
499of retrieving these individually, this function will return the number of
500available images.
501
502\docparam{name}{Name of the file to query.}
503
504\docparam{stream}{Opened input stream with image data. Currently, the stream must support seeking.}
505
506\docparam{type}{May be one of the following:
507
508\twocolwidtha{5cm}%
509\begin{twocollist}
510\twocolitem{\indexit{wxBITMAP\_TYPE\_BMP}}{Load a Windows bitmap file.}
511\twocolitem{\indexit{wxBITMAP\_TYPE\_GIF}}{Load a GIF bitmap file.}
512\twocolitem{\indexit{wxBITMAP\_TYPE\_JPEG}}{Load a JPEG bitmap file.}
513\twocolitem{\indexit{wxBITMAP\_TYPE\_PNG}}{Load a PNG bitmap file.}
514\twocolitem{\indexit{wxBITMAP\_TYPE\_PCX}}{Load a PCX bitmap file.}
515\twocolitem{\indexit{wxBITMAP\_TYPE\_PNM}}{Load a PNM bitmap file.}
516\twocolitem{\indexit{wxBITMAP\_TYPE\_TIF}}{Load a TIFF bitmap file.}
517\twocolitem{\indexit{wxBITMAP\_TYPE\_XPM}}{Load a XPM bitmap file.}
518\twocolitem{\indexit{wxBITMAP\_TYPE\_ICO}}{Load a Windows icon file (ICO).}
519\twocolitem{\indexit{wxBITMAP\_TYPE\_CUR}}{Load a Windows cursor file (CUR).}
520\twocolitem{\indexit{wxBITMAP\_TYPE\_ANI}}{Load a Windows animated cursor file (ANI).}
521\twocolitem{\indexit{wxBITMAP\_TYPE\_ANY}}{Will try to autodetect the format.}
522\end{twocollist}}
523
524\wxheading{Return value}
525
526Number of available images. For most image handlers, this is 1 (exceptions
527are TIFF and ICO formats).
528
529
530\membersection{wxImage::GetHandlers}\label{wximagegethandlers}
531
532\func{static wxList\&}{GetHandlers}{\void}
533
534Returns the static list of image format handlers.
535
536\wxheading{See also}
537
538\helpref{wxImageHandler}{wximagehandler}
539
540
541\membersection{wxImage::GetHeight}\label{wximagegetheight}
542
543\constfunc{int}{GetHeight}{\void}
544
545Gets the height of the image in pixels.
546
547
548\membersection{wxImage::GetMaskBlue}\label{wximagegetmaskblue}
549
550\constfunc{unsigned char}{GetMaskBlue}{\void}
551
552Gets the blue value of the mask colour.
553
554
555\membersection{wxImage::GetMaskGreen}\label{wximagegetmaskgreen}
556
557\constfunc{unsigned char}{GetMaskGreen}{\void}
558
559Gets the green value of the mask colour.
560
561
562\membersection{wxImage::GetMaskRed}\label{wximagegetmaskred}
563
564\constfunc{unsigned char}{GetMaskRed}{\void}
565
566Gets the red value of the mask colour.
567
568
569\membersection{wxImage::GetOrFindMaskColour}\label{wximagegetgetorsetmaskcolour}
570
571\constfunc{bool}{GetOrFindMaskColour}{\param{unsigned char}{ *r}, \param{unsigned char}{ *g}, \param{unsigned char}{ *b}}
572
573Get the current mask colour or find a suitable unused colour that could be
574used as a mask colour. Returns {\tt true} if the image currently has a mask.
575
576
577\membersection{wxImage::GetPalette}\label{wximagegetpalette}
578
579\constfunc{const wxPalette\&}{GetPalette}{\void}
580
581Returns the palette associated with the image. Currently the palette is only
582used when converting to wxBitmap under Windows.
583
584Eventually wxImage handlers will set the palette if one exists in the image file.
585
586
587\membersection{wxImage::GetRed}\label{wximagegetred}
588
589\constfunc{unsigned char}{GetRed}{\param{int}{ x}, \param{int}{ y}}
590
591Returns the red intensity at the given coordinate.
592
593
594\membersection{wxImage::GetSubImage}\label{wximagegetsubimage}
595
596\constfunc{wxImage}{GetSubImage}{\param{const wxRect\&}{ rect}}
597
598Returns a sub image of the current one as long as the rect belongs entirely to
599the image.
600
601
602\membersection{wxImage::GetWidth}\label{wximagegetwidth}
603
604\constfunc{int}{GetWidth}{\void}
605
606Gets the width of the image in pixels.
607
608\wxheading{See also}
609
610\helpref{wxImage::GetHeight}{wximagegetheight}
611
612
613\membersection{HSVValue::HSVValue}\label{hsvvaluehsvvalue}
614
615\func{}{HSVValue}{\param{double }{h = 0.0}, \param{double }{s = 0.0}, \param{double }{v = 0.0}}
616
617Constructor for HSVValue, an object that contains values for hue, saturation and value which
618represent the value of a color. It is used by \helpref{wxImage::HSVtoRGB}{wximagehsvtorgb}
619and \helpref{wxImage::RGBtoHSV}{wximagergbtohsv}, which
620converts between HSV color space and RGB color space.
621
622\pythonnote{use wxImage\_HSVValue in wxPython}
623
624
625
626\membersection{wxImage::HSVtoRGB}\label{wximagehsvtorgb}
627
628\func{wxImage::RGBValue}{HSVtoRGB}{\param{const HSVValue \& }{hsv}}
629
630Converts a color in HSV color space to RGB color space.
631
632
633\membersection{wxImage::HasAlpha}\label{wximagehasalpha}
634
635\constfunc{bool}{HasAlpha}{\void}
636
637Returns true if this image has alpha channel, false otherwise.
638
639\wxheading{See also}
640
641\helpref{GetAlpha}{wximagegetalpha}, \helpref{SetAlpha}{wximagesetalpha}
642
643
644\membersection{wxImage::HasMask}\label{wximagehasmask}
645
646\constfunc{bool}{HasMask}{\void}
647
648Returns true if there is a mask active, false otherwise.
649
650
651\membersection{wxImage::GetOption}\label{wximagegetoption}
652
653\constfunc{wxString}{GetOption}{\param{const wxString\&}{ name}}
654
655Gets a user-defined option. The function is case-insensitive to {\it name}.
656
657For example, when saving as a JPEG file, the option {\bf quality} is
658used, which is a number between 0 and 100 (0 is terrible, 100 is very good).
659
660\wxheading{See also}
661
662\helpref{wxImage::SetOption}{wximagesetoption},\rtfsp
663\helpref{wxImage::GetOptionInt}{wximagegetoptionint},\rtfsp
664\helpref{wxImage::HasOption}{wximagehasoption}
665
666
667\membersection{wxImage::GetOptionInt}\label{wximagegetoptionint}
668
669\constfunc{int}{GetOptionInt}{\param{const wxString\&}{ name}}
670
671Gets a user-defined option as an integer. The function is case-insensitive to {\it name}.
672
673If the given option is not present, the function returns $0$. Use
674\helpref{wxImage::HasOption}{wximagehasoption} is $0$ is a possibly valid value
675for the option.
676
677Options for wxPNGHandler
678\twocolwidtha{5cm}%
679\begin{twocollist}
680\twocolitem{wxIMAGE\_OPTION\_PNG\_FORMAT}{Format for saving a PNG file.}
681\twocolitem{wxIMAGE\_OPTION\_PNG\_BITDEPTH}{Bit depth for every channel (R/G/B/A).}
682\end{twocollist}
683
684Supported values for wxIMAGE\_OPTION\_PNG\_FORMAT:
685\twocolwidtha{5cm}%
686\begin{twocollist}
687\twocolitem{wxPNG\_TYPE\_COLOUR}{Stores RGB image.}
688\twocolitem{wxPNG\_TYPE\_GREY}{Stores grey image, converts from RGB.}
689\twocolitem{wxPNG\_TYPE\_GREY\_RED}{Stores grey image, uses red value as grey.}
690\end{twocollist}
691
692
693\wxheading{See also}
694
695\helpref{wxImage::SetOption}{wximagesetoption},\rtfsp
696\helpref{wxImage::GetOption}{wximagegetoption}
697
698
699\membersection{wxImage::HasOption}\label{wximagehasoption}
700
701\constfunc{bool}{HasOption}{\param{const wxString\&}{ name}}
702
703Returns true if the given option is present. The function is case-insensitive to {\it name}.
704
705\wxheading{See also}
706
707\helpref{wxImage::SetOption}{wximagesetoption},\rtfsp
708\helpref{wxImage::GetOption}{wximagegetoption},\rtfsp
709\helpref{wxImage::GetOptionInt}{wximagegetoptionint}
710
711
712\membersection{wxImage::InitAlpha}\label{wximageinitalpha}
713
714\func{void}{InitAlpha}{\void}
715
716Initializes the image alpha channel data. It is an error to call it
717if the image already has alpha data. If it doesn't, alpha data will be
718by default initialized to all pixels being fully opaque. But if the image has a
719a mask colour, all mask pixels will be completely transparent.
720
721
722\membersection{wxImage::InitStandardHandlers}\label{wximageinitstandardhandlers}
723
724\func{static void}{InitStandardHandlers}{\void}
725
726Internal use only. Adds standard image format handlers. It only install BMP
727for the time being, which is used by wxBitmap.
728
729This function is called by wxWidgets on startup, and shouldn't be called by
730the user.
731
732\wxheading{See also}
733
734\helpref{wxImageHandler}{wximagehandler},
735\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
736
737
738\membersection{wxImage::InsertHandler}\label{wximageinserthandler}
739
740\func{static void}{InsertHandler}{\param{wxImageHandler*}{ handler}}
741
742Adds a handler at the start of the static list of format handlers.
743
744\docparam{handler}{A new image format handler object. There is usually only one instance
745of a given handler class in an application session.}
746
747\wxheading{See also}
748
749\helpref{wxImageHandler}{wximagehandler}
750
751
752\membersection{wxImage::IsTransparent}\label{wximageistransparent}
753
754\constfunc{bool}{IsTransparent}{\param{int }{x}, \param{int }{y}, \param{unsigned char}{ threshold = $128$}}
755
756Returns \true if the given pixel is transparent, i.e. either has the mask
757colour if this image has a mask or if this image has alpha channel and alpha
758value of this pixel is strictly less than \arg{threshold}.
759
760
761\membersection{wxImage::LoadFile}\label{wximageloadfile}
762
763\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}, \param{int}{ index = -1}}
764
765\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{const wxString\&}{ mimetype}, \param{int}{ index = -1}}
766
767Loads an image from a file. If no handler type is provided, the library will
768try to autodetect the format.
769
770\func{bool}{LoadFile}{\param{wxInputStream\&}{ stream}, \param{long}{ type}, \param{int}{ index = -1}}
771
772\func{bool}{LoadFile}{\param{wxInputStream\&}{ stream}, \param{const wxString\&}{ mimetype}, \param{int}{ index = -1}}
773
774Loads an image from an input stream.
775
776\wxheading{Parameters}
777
778\docparam{name}{Name of the file from which to load the image.}
779
780\docparam{stream}{Opened input stream from which to load the image. Currently, the stream must support seeking.}
781
782\docparam{type}{One of the following values:
783
784\twocolwidtha{5cm}%
785\begin{twocollist}
786\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Load a Windows image file.}
787\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Load a GIF image file.}
788\twocolitem{{\bf wxBITMAP\_TYPE\_JPEG}}{Load a JPEG image file.}
789\twocolitem{{\bf wxBITMAP\_TYPE\_PCX}}{Load a PCX image file.}
790\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Load a PNG image file.}
791\twocolitem{{\bf wxBITMAP\_TYPE\_PNM}}{Load a PNM image file.}
792\twocolitem{{\bf wxBITMAP\_TYPE\_TIF}}{Load a TIFF image file.}
793\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Load a XPM image file.}
794\twocolitem{{\bf wxBITMAP\_TYPE\_ICO}}{Load a Windows icon file (ICO).}
795\twocolitem{{\bf wxBITMAP\_TYPE\_CUR}}{Load a Windows cursor file (CUR).}
796\twocolitem{\indexit{wxBITMAP\_TYPE\_ANI}}{Load a Windows animated cursor file (ANI).}
797\twocolitem{{\bf wxBITMAP\_TYPE\_ANY}}{Will try to autodetect the format.}
798\end{twocollist}}
799
800\docparam{mimetype}{MIME type string (for example 'image/jpeg')}
801
802\docparam{index}{Index of the image to load in the case that the image file contains multiple images.
803This is only used by GIF, ICO and TIFF handlers. The default value (-1) means
804"choose the default image" and is interpreted as the first image (index=0) by
805the GIF and TIFF handler and as the largest and most colourful one by the ICO handler.}
806
807\wxheading{Remarks}
808
809Depending on how wxWidgets has been configured, not all formats may be available.
810
811Note: you can use \helpref{GetOptionInt}{wximagegetoptionint} to get the
812hotspot for loaded cursor file:
813\begin{verbatim}
814 int hotspot_x = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X);
815 int hotspot_y = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_Y);
816
817\end{verbatim}
818
819\wxheading{Return value}
820
821true if the operation succeeded, false otherwise. If the optional index parameter is out of range,
822false is returned and a call to wxLogError() takes place.
823
824\wxheading{See also}
825
826\helpref{wxImage::SaveFile}{wximagesavefile}
827
828\pythonnote{In place of a single overloaded method name, wxPython
829implements the following methods:\par
830\indented{2cm}{\begin{twocollist}
831\twocolitem{{\bf LoadFile(filename, type)}}{Loads an image of the given
832type from a file}
833\twocolitem{{\bf LoadMimeFile(filename, mimetype)}}{Loads an image of the given
834mimetype from a file}
835\end{twocollist}}
836}
837
838\perlnote{Methods supported by wxPerl are:\par
839\begin{itemize}
840\item{bitmap->LoadFile( name, type )}
841\item{bitmap->LoadFile( name, mimetype )}
842\end{itemize}
843}
844
845
846
847\membersection{wxImage::Ok}\label{wximageok}
848
849\constfunc{bool}{Ok}{\void}
850
851Returns true if image data is present.
852
853
854\membersection{RGBValue::RGBValue}\label{rgbvaluergbvalue}
855
856\func{}{RGBValue}{\param{unsigned char }{r = 0}, \param{unsigned char }{g = 0}, \param{unsigned char }{b = 0}}
857
858Constructor for RGBValue, an object that contains values for red, green and blud which
859represent the value of a color. It is used by \helpref{wxImage::HSVtoRGB}{wximagehsvtorgb}
860and \helpref{wxImage::RGBtoHSV}{wximagergbtohsv}, which
861converts between HSV color space and RGB color space.
862
863\pythonnote{use wxImage\_RGBValue in wxPython}
864
865
866\membersection{wxImage::RGBtoHSV}\label{wximagergbtohsv}
867
868\func{wxImage::HSVValue}{RGBtoHSV}{\param{const RGBValue\& }{rgb}}
869
870Converts a color in RGB color space to HSV color space.
871
872
873\membersection{wxImage::RemoveHandler}\label{wximageremovehandler}
874
875\func{static bool}{RemoveHandler}{\param{const wxString\& }{name}}
876
877Finds the handler with the given name, and removes it. The handler
878is not deleted.
879
880\docparam{name}{The handler name.}
881
882\wxheading{Return value}
883
884true if the handler was found and removed, false otherwise.
885
886\wxheading{See also}
887
888\helpref{wxImageHandler}{wximagehandler}
889
890
891\membersection{wxImage::Mirror}\label{wximagemirror}
892
893\constfunc{wxImage}{Mirror}{\param{bool}{ horizontally = true}}
894
895Returns a mirrored copy of the image. The parameter {\it horizontally}
896indicates the orientation.
897
898
899\membersection{wxImage::Replace}\label{wximagereplace}
900
901\func{void}{Replace}{\param{unsigned char}{ r1}, \param{unsigned char}{ g1}, \param{unsigned char}{ b1},
902\param{unsigned char}{ r2}, \param{unsigned char}{ g2}, \param{unsigned char}{ b2}}
903
904Replaces the colour specified by {\it r1,g1,b1} by the colour {\it r2,g2,b2}.
905
906
907\membersection{wxImage::Rescale}\label{wximagerescale}
908
909\func{wxImage \&}{Rescale}{\param{int}{ width}, \param{int}{ height}}
910
911Changes the size of the image in-place by scaling it: after a call to this function,
912the image will have the given width and height.
913
914Returns the (modified) image itself.
915
916\wxheading{See also}
917
918\helpref{Scale}{wximagescale}
919
920
921\membersection{wxImage::Resize}\label{wximageresize}
922
923\func{wxImage \&}{Resize}{\param{const wxSize\&}{ size}, \param{const wxPoint&}{ pos}, \param{int}{ red = -1}, \param{int}{ green = -1}, \param{int}{ blue = -1}}
924
925Changes the size of the image in-place without scaling it by adding either a border
926with the given colour or cropping as necessary. The image is pasted into a new
927image with the given {\it size} and background colour at the position {\it pos}
928relative to the upper left of the new image. If {\it red = green = blue = -1}
929then use either the current mask colour if set or find, use, and set a
930suitable mask colour for any newly exposed areas.
931
932Returns the (modified) image itself.
933
934\wxheading{See also}
935
936\helpref{Size}{wximagesize}
937
938
939\membersection{wxImage::Rotate}\label{wximagerotate}
940
941\func{wxImage}{Rotate}{\param{double}{ angle}, \param{const wxPoint\& }{rotationCentre},
942 \param{bool}{ interpolating = true}, \param{wxPoint*}{ offsetAfterRotation = NULL}}
943
944Rotates the image about the given point, by {\it angle} radians. Passing true
945to {\it interpolating} results in better image quality, but is slower. If the
946image has a mask, then the mask colour is used for the uncovered pixels in the
947rotated image background. Else, black (rgb 0, 0, 0) will be used.
948
949Returns the rotated image, leaving this image intact.
950
951
952\membersection{wxImage::RotateHue}\label{wximagerotatehue}
953
954\func{void}{RotateHue}{\param{double}{ angle}}
955
956Rotates the hue of each pixel in the image by {\it angle}, which is a double in
957the range of -1.0 to +1.0, where -1.0 corresponds to -360 degrees and +1.0 corresponds
958to +360 degrees.
959
960
961\membersection{wxImage::Rotate90}\label{wximagerotate90}
962
963\constfunc{wxImage}{Rotate90}{\param{bool}{ clockwise = true}}
964
965Returns a copy of the image rotated 90 degrees in the direction
966indicated by {\it clockwise}.
967
968
969\membersection{wxImage::SaveFile}\label{wximagesavefile}
970
971\constfunc{bool}{SaveFile}{\param{const wxString\& }{name}, \param{int}{ type}}
972
973\constfunc{bool}{SaveFile}{\param{const wxString\& }{name}, \param{const wxString\&}{ mimetype}}
974
975Saves an image in the named file.
976
977\constfunc{bool}{SaveFile}{\param{const wxString\& }{name}}
978
979Saves an image in the named file. File type is determined from the extension of the
980file name. Note that this function may fail if the extension is not recognized! You
981can use one of the forms above to save images to files with non-standard extensions.
982
983\constfunc{bool}{SaveFile}{\param{wxOutputStream\& }{stream}, \param{int}{ type}}
984
985\constfunc{bool}{SaveFile}{\param{wxOutputStream\& }{stream}, \param{const wxString\&}{ mimetype}}
986
987Saves an image in the given stream.
988
989\wxheading{Parameters}
990
991\docparam{name}{Name of the file to save the image to.}
992
993\docparam{stream}{Opened output stream to save the image to.}
994
995\docparam{type}{Currently these types can be used:
996
997\twocolwidtha{5cm}%
998\begin{twocollist}
999\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Save a BMP image file.}
1000\twocolitem{{\bf wxBITMAP\_TYPE\_JPEG}}{Save a JPEG image file.}
1001\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Save a PNG image file.}
1002\twocolitem{{\bf wxBITMAP\_TYPE\_PCX}}{Save a PCX image file (tries to save as 8-bit if possible, falls back to 24-bit otherwise).}
1003\twocolitem{{\bf wxBITMAP\_TYPE\_PNM}}{Save a PNM image file (as raw RGB always).}
1004\twocolitem{{\bf wxBITMAP\_TYPE\_TIFF}}{Save a TIFF image file.}
1005\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Save a XPM image file.}
1006\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).}
1007\twocolitem{{\bf wxBITMAP\_TYPE\_CUR}}{Save a Windows cursor file (CUR).}
1008\end{twocollist}}
1009
1010\docparam{mimetype}{MIME type.}
1011
1012\wxheading{Return value}
1013
1014true if the operation succeeded, false otherwise.
1015
1016\wxheading{Remarks}
1017
1018Depending on how wxWidgets has been configured, not all formats may be available.
1019
1020Note: you can use \helpref{GetOptionInt}{wximagegetoptionint} to set the
1021hotspot before saving an image into a cursor file (default hotspot is in
1022the centre of the image):
1023\begin{verbatim}
1024 image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, hotspotX);
1025 image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, hotspotY);
1026
1027\end{verbatim}
1028
1029\wxheading{See also}
1030
1031\helpref{wxImage::LoadFile}{wximageloadfile}
1032
1033\pythonnote{In place of a single overloaded method name, wxPython
1034implements the following methods:\par
1035\indented{2cm}{\begin{twocollist}
1036\twocolitem{{\bf SaveFile(filename, type)}}{Saves the image using the given
1037type to the named file}
1038\twocolitem{{\bf SaveMimeFile(filename, mimetype)}}{Saves the image using the given
1039mimetype to the named file}
1040\end{twocollist}}
1041}
1042
1043\perlnote{Methods supported by wxPerl are:\par
1044\begin{itemize}
1045\item{bitmap->SaveFile( name, type )}
1046\item{bitmap->SaveFile( name, mimetype )}
1047\end{itemize}
1048}
1049
1050
1051\membersection{wxImage::Scale}\label{wximagescale}
1052
1053\constfunc{wxImage}{Scale}{\param{int}{ width}, \param{int}{ height}}
1054
1055Returns a scaled version of the image. This is also useful for
1056scaling bitmaps in general as the only other way to scale bitmaps
1057is to blit a wxMemoryDC into another wxMemoryDC.
1058
1059It may be mentioned that the GTK port uses this function internally
1060to scale bitmaps when using mapping modes in wxDC.
1061
1062Example:
1063
1064\begin{verbatim}
1065 // get the bitmap from somewhere
1066 wxBitmap bmp = ...;
1067
1068 // rescale it to have size of 32*32
1069 if ( bmp.GetWidth() != 32 || bmp.GetHeight() != 32 )
1070 {
1071 wxImage image = bmp.ConvertToImage();
1072 bmp = wxBitmap(image.Scale(32, 32));
1073
1074 // another possibility:
1075 image.Rescale(32, 32);
1076 bmp = image;
1077 }
1078
1079\end{verbatim}
1080
1081\wxheading{See also}
1082
1083\helpref{Rescale}{wximagerescale}
1084
1085
1086\membersection{wxImage::Size}\label{wximagesize}
1087
1088\constfunc{wxImage}{Size}{\param{const wxSize\&}{ size}, \param{const wxPoint&}{ pos}, \param{int}{ red = -1}, \param{int}{ green = -1}, \param{int}{ blue = -1}}
1089
1090Returns a resized version of this image without scaling it by adding either a border
1091with the given colour or cropping as necessary. The image is pasted into a new
1092image with the given {\it size} and background colour at the position {\it pos}
1093relative to the upper left of the new image. If {\it red = green = blue = -1}
1094then use either the current mask colour if set or find, use, and set a
1095suitable mask colour for any newly exposed areas.
1096
1097\wxheading{See also}
1098
1099\helpref{Resize}{wximageresize}
1100
1101
1102\membersection{wxImage::SetAlpha}\label{wximagesetalpha}
1103
1104\func{void}{SetAlpha}{\param{unsigned char *}{alpha = {\tt NULL}},\param{bool}{ static\_data = \false}}
1105
1106This function is similar to \helpref{SetData}{wximagesetdata} and has similar
1107restrictions. The pointer passed to it may however be {\tt NULL} in which case
1108the function will allocate the alpha array internally -- this is useful to add
1109alpha channel data to an image which doesn't have any. If the pointer is not
1110{\tt NULL}, it must have one byte for each image pixel and be allocated with
1111{\tt malloc()}. wxImage takes ownership of the pointer and will free it unless
1112\arg{static\_data} parameter is set to \true -- in this case the caller should
1113do it.
1114
1115\func{void}{SetAlpha}{\param{int }{x}, \param{int }{y}, \param{unsigned char }{alpha}}
1116
1117Sets the alpha value for the given pixel. This function should only be called
1118if the image has alpha channel data, use \helpref{HasAlpha}{wximagehasalpha} to
1119check for this.
1120
1121
1122\membersection{wxImage::SetData}\label{wximagesetdata}
1123
1124\func{void}{SetData}{\param{unsigned char*}{data}}
1125
1126Sets the image data without performing checks. The data given must have
1127the size (width*height*3) or results will be unexpected. Don't use this
1128method if you aren't sure you know what you are doing.
1129
1130The data must have been allocated with {\tt malloc()}, {\large {\bf NOT}} with
1131{\tt operator new}.
1132
1133After this call the pointer to the data is owned by the wxImage object,
1134that will be responsible for deleting it.
1135Do not pass to this function a pointer obtained through
1136\helpref{wxImage::GetData}{wximagegetdata}.
1137
1138
1139\membersection{wxImage::SetMask}\label{wximagesetmask}
1140
1141\func{void}{SetMask}{\param{bool}{ hasMask = true}}
1142
1143Specifies whether there is a mask or not. The area of the mask is determined by the current mask colour.
1144
1145
1146\membersection{wxImage::SetMaskColour}\label{wximagesetmaskcolour}
1147
1148\func{void}{SetMaskColour}{\param{unsigned char }{red}, \param{unsigned char }{green}, \param{unsigned char }{blue}}
1149
1150Sets the mask colour for this image (and tells the image to use the mask).
1151
1152
1153\membersection{wxImage::SetMaskFromImage}\label{wximagesetmaskfromimage}
1154
1155\func{bool}{SetMaskFromImage}{\param{const wxImage\&}{ mask}, \param{unsigned char}{ mr}, \param{unsigned char}{ mg}, \param{unsigned char}{ mb}}
1156
1157\wxheading{Parameters}
1158
1159\docparam{mask}{The mask image to extract mask shape from. Must have same dimensions as the image.}
1160
1161\docparam{mr,mg,mb}{RGB value of pixels in {\it mask} that will be used to create the mask.}
1162
1163Sets image's mask so that the pixels that have RGB value of {\it mr,mg,mb}
1164in {\it mask} will be masked in the image. This is done by first finding an
1165unused colour in the image, setting this colour as the mask colour and then
1166using this colour to draw all pixels in the image who corresponding pixel
1167in {\it mask} has given RGB value.
1168
1169\wxheading{Return value}
1170
1171Returns false if {\it mask} does not have same dimensions as the image or if
1172there is no unused colour left. Returns true if the mask was successfully
1173applied.
1174
1175\wxheading{Notes}
1176
1177Note that this method involves computing the histogram, which is
1178computationally intensive operation.
1179
1180
1181\membersection{wxImage::SetOption}\label{wximagesetoption}
1182
1183\func{void}{SetOption}{\param{const wxString\&}{ name}, \param{const wxString\&}{ value}}
1184
1185\func{void}{SetOption}{\param{const wxString\&}{ name}, \param{int}{ value}}
1186
1187Sets a user-defined option. The function is case-insensitive to {\it name}.
1188
1189For example, when saving as a JPEG file, the option {\bf quality} is
1190used, which is a number between 0 and 100 (0 is terrible, 100 is very good).
1191
1192\wxheading{See also}
1193
1194\helpref{wxImage::GetOption}{wximagegetoption},\rtfsp
1195\helpref{wxImage::GetOptionInt}{wximagegetoptionint},\rtfsp
1196\helpref{wxImage::HasOption}{wximagehasoption}
1197
1198
1199\membersection{wxImage::SetPalette}\label{wximagesetpalette}
1200
1201\func{void}{SetPalette}{\param{const wxPalette\&}{ palette}}
1202
1203Associates a palette with the image. The palette may be used when converting
1204wxImage to wxBitmap (MSW only at present) or in file save operations (none as yet).
1205
1206
1207\membersection{wxImage::SetRGB}\label{wximagesetrgb}
1208
1209\func{void}{SetRGB}{\param{int }{x}, \param{int }{y}, \param{unsigned char }{red}, \param{unsigned char }{green}, \param{unsigned char }{blue}}
1210
1211Sets the pixel at the given coordinate. This routine performs bounds-checks
1212for the coordinate so it can be considered a safe way to manipulate the
1213data, but in some cases this might be too slow so that the data will have to
1214be set directly. In that case you will have to get access to the image data
1215using the \helpref{GetData}{wximagegetdata} method.
1216
1217
1218\membersection{wxImage::SetRGB}\label{wximagesetrgbrect}
1219
1220\func{void}{SetRGB}{\param{wxRect \& }{rect}, \param{unsigned char }{red}, \param{unsigned char }{green}, \param{unsigned char }{blue}}
1221
1222Sets the colour of the pixels within the given rectangle. This routine performs
1223bounds-checks for the coordinate so it can be considered a safe way to manipulate the
1224data.
1225
1226
1227\membersection{wxImage::operator $=$}\label{wximageassign}
1228
1229\func{wxImage\& }{operator $=$}{\param{const wxImage\& }{image}}
1230
1231Assignment operator. This operator does not copy any data, but instead
1232passes a pointer to the data in {\it image} and increments a reference
1233counter. It is a fast operation.
1234
1235\wxheading{Parameters}
1236
1237\docparam{image}{Image to assign.}
1238
1239\wxheading{Return value}
1240
1241Returns 'this' object.
1242
1243
1244\membersection{wxImage::operator $==$}\label{wximageequal}
1245
1246\constfunc{bool}{operator $==$}{\param{const wxImage\& }{image}}
1247
1248Equality operator. This operator tests whether the internal data pointers are
1249equal (a fast test).
1250
1251\wxheading{Parameters}
1252
1253\docparam{image}{Image to compare with 'this'}
1254
1255\wxheading{Return value}
1256
1257Returns true if the images were effectively equal, false otherwise.
1258
1259
1260\membersection{wxImage::operator $!=$}\label{wximagenotequal}
1261
1262\constfunc{bool}{operator $!=$}{\param{const wxImage\& }{image}}
1263
1264Inequality operator. This operator tests whether the internal data pointers are
1265unequal (a fast test).
1266
1267\wxheading{Parameters}
1268
1269\docparam{image}{Image to compare with 'this'}
1270
1271\wxheading{Return value}
1272
1273Returns true if the images were unequal, false otherwise.
1274
1275\section{\class{wxImageHandler}}\label{wximagehandler}
1276
1277This is the base class for implementing image file loading/saving, and image creation from data.
1278It is used within wxImage and is not normally seen by the application.
1279
1280If you wish to extend the capabilities of wxImage, derive a class from wxImageHandler
1281and add the handler using \helpref{wxImage::AddHandler}{wximageaddhandler} in your
1282application initialisation.
1283
1284\wxheading{Note (Legal Issue)}
1285
1286This software is based in part on the work of the Independent JPEG Group.
1287
1288(Applies when wxWidgets is linked with JPEG support. wxJPEGHandler uses libjpeg
1289created by IJG.)
1290
1291\wxheading{Derived from}
1292
1293\helpref{wxObject}{wxobject}
1294
1295\wxheading{Include files}
1296
1297<wx/image.h>
1298
1299\wxheading{See also}
1300
1301\helpref{wxImage}{wximage},
1302\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}
1303
1304\latexignore{\rtfignore{\wxheading{Members}}}
1305
1306
1307\membersection{wxImageHandler::wxImageHandler}\label{wximagehandlerctor}
1308
1309\func{}{wxImageHandler}{\void}
1310
1311Default constructor. In your own default constructor, initialise the members
1312m\_name, m\_extension and m\_type.
1313
1314
1315\membersection{wxImageHandler::\destruct{wxImageHandler}}\label{wximagehandlerdtor}
1316
1317\func{}{\destruct{wxImageHandler}}{\void}
1318
1319Destroys the wxImageHandler object.
1320
1321
1322\membersection{wxImageHandler::GetName}\label{wximagehandlergetname}
1323
1324\constfunc{wxString}{GetName}{\void}
1325
1326Gets the name of this handler.
1327
1328
1329\membersection{wxImageHandler::GetExtension}\label{wximagehandlergetextension}
1330
1331\constfunc{wxString}{GetExtension}{\void}
1332
1333Gets the file extension associated with this handler.
1334
1335
1336\membersection{wxImageHandler::GetImageCount}\label{wximagehandlergetimagecount}
1337
1338\func{int}{GetImageCount}{\param{wxInputStream\&}{ stream}}
1339
1340If the image file contains more than one image and the image handler is capable
1341of retrieving these individually, this function will return the number of
1342available images.
1343
1344\docparam{stream}{Opened input stream for reading image data. Currently, the stream must support seeking.}
1345
1346\wxheading{Return value}
1347
1348Number of available images. For most image handlers, this is 1 (exceptions
1349are TIFF and ICO formats).
1350
1351
1352\membersection{wxImageHandler::GetType}\label{wximagehandlergettype}
1353
1354\constfunc{long}{GetType}{\void}
1355
1356Gets the image type associated with this handler.
1357
1358
1359\membersection{wxImageHandler::GetMimeType}\label{wximagehandlergetmimetype}
1360
1361\constfunc{wxString}{GetMimeType}{\void}
1362
1363Gets the MIME type associated with this handler.
1364
1365
1366\membersection{wxImageHandler::LoadFile}\label{wximagehandlerloadfile}
1367
1368\func{bool}{LoadFile}{\param{wxImage* }{image}, \param{wxInputStream\&}{ stream}, \param{bool}{ verbose=true}, \param{int}{ index=0}}
1369
1370Loads a image from a stream, putting the resulting data into {\it image}. If the image file contains
1371more than one image and the image handler is capable of retrieving these individually, {\it index}
1372indicates which image to read from the stream.
1373
1374\wxheading{Parameters}
1375
1376\docparam{image}{The image object which is to be affected by this operation.}
1377
1378\docparam{stream}{Opened input stream for reading image data.}
1379
1380\docparam{verbose}{If set to true, errors reported by the image handler will produce wxLogMessages.}
1381
1382\docparam{index}{The index of the image in the file (starting from zero).}
1383
1384\wxheading{Return value}
1385
1386true if the operation succeeded, false otherwise.
1387
1388\wxheading{See also}
1389
1390\helpref{wxImage::LoadFile}{wximageloadfile},
1391\helpref{wxImage::SaveFile}{wximagesavefile},
1392\helpref{wxImageHandler::SaveFile}{wximagehandlersavefile}
1393
1394
1395\membersection{wxImageHandler::SaveFile}\label{wximagehandlersavefile}
1396
1397\func{bool}{SaveFile}{\param{wxImage* }{image}, \param{wxOutputStream\& }{stream}}
1398
1399Saves a image in the output stream.
1400
1401\wxheading{Parameters}
1402
1403\docparam{image}{The image object which is to be affected by this operation.}
1404
1405\docparam{stream}{Opened output stream for writing the data.}
1406
1407\wxheading{Return value}
1408
1409true if the operation succeeded, false otherwise.
1410
1411\wxheading{See also}
1412
1413\helpref{wxImage::LoadFile}{wximageloadfile},
1414\helpref{wxImage::SaveFile}{wximagesavefile},
1415\helpref{wxImageHandler::LoadFile}{wximagehandlerloadfile}
1416
1417
1418\membersection{wxImageHandler::SetName}\label{wximagehandlersetname}
1419
1420\func{void}{SetName}{\param{const wxString\& }{name}}
1421
1422Sets the handler name.
1423
1424\wxheading{Parameters}
1425
1426\docparam{name}{Handler name.}
1427
1428
1429\membersection{wxImageHandler::SetExtension}\label{wximagehandlersetextension}
1430
1431\func{void}{SetExtension}{\param{const wxString\& }{extension}}
1432
1433Sets the handler extension.
1434
1435\wxheading{Parameters}
1436
1437\docparam{extension}{Handler extension.}
1438
1439
1440\membersection{wxImageHandler::SetMimeType}\label{wximagehandlersetmimetype}
1441
1442\func{void}{SetMimeType}{\param{const wxString\& }{mimetype}}
1443
1444Sets the handler MIME type.
1445
1446\wxheading{Parameters}
1447
1448\docparam{mimename}{Handler MIME type.}
1449
1450
1451\membersection{wxImageHandler::SetType}\label{wximagehandlersettype}
1452
1453\func{void}{SetType}{\param{long }{type}}
1454
1455Sets the handler type.
1456
1457\wxheading{Parameters}
1458
1459\docparam{name}{Handler type.}