]> git.saurik.com Git - wxWidgets.git/blame_incremental - docs/latex/wx/image.tex
*** empty log message ***
[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 the constructor taking a wxBitmap object. 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 wxDC. Instead, a platform-specific
10wxBitmap object must be created from it, and that bitmap drawn on the wxDC, using
11wxDC::DrawBitmap.
12
13\wxheading{Derived from}
14
15\helpref{wxObject}{wxobject}
16
17\wxheading{Include files}
18
19<wx/image.h>
20
21\wxheading{See also}
22
23\helpref{wxBitmap}{wxbitmap}
24
25\latexignore{\rtfignore{\wxheading{Members}}}
26
27\membersection{wxImage::wxImage}\label{wximageconstr}
28
29\func{}{wxImage}{\void}
30
31Default constructor.
32
33\func{}{wxImage}{\param{const wxImage\& }{image}}
34
35Copy constructor.
36
37\func{}{wxImage}{\param{const wxBitmap\&}{ bitmap}}
38
39Constructs an image from a platform-dependent bitmap. This preserves
40mask information so that bitmaps and images can be converted back
41and forth without loss in that respect.
42
43\func{}{wxImage}{\param{int}{ width}, \param{int}{ height}}
44
45Creates an image with the given width and height.
46
47\func{}{wxImage}{\param{const wxString\& }{name}, \param{long}{ type = wxBITMAP\_TYPE\_PNG}}
48
49\func{}{wxImage}{\param{const wxString\& }{name}, \param{const wxString\&}{ mimetype}}
50
51Loads an image from a file.
52
53\func{}{wxImage}{\param{wxInputStream\& }{stream}, \param{long}{ type = wxBITMAP\_TYPE\_PNG}}
54
55\func{}{wxImage}{\param{wxInputStream\& }{stream}, \param{const wxString\&}{ mimetype}}
56
57Loads an image from an input stream.
58
59\wxheading{Parameters}
60
61\docparam{width}{Specifies the width of the image.}
62
63\docparam{height}{Specifies the height of the image.}
64
65\docparam{name}{This refers to an image filename. Its meaning is determined by the {\it type} parameter.}
66
67\docparam{stream}{This refers to an input stream. Its meaning is determined by the {\it type} parameter. It is equal to loading from file except that you provide opened stream (file, HTTP or any other custom class).}
68
69\docparam{type}{May be one of the following:
70
71\twocolwidtha{5cm}%
72\begin{twocollist}
73\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_BMP}}}{Load a Windows bitmap file.}
74\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_PNG}}}{Load a PNG bitmap file.}
75\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_JPEG}}}{Load a JPEG bitmap file.}
76\end{twocollist}
77
78The validity of these flags depends on the platform and wxWindows configuration.
79If all possible wxWindows settings are used, the loading a BMP (Windows bitmap) file,
80a PNG (portable network graphics) file and a JPEG file is supported on all platforms that
81implement wxImage.}
82
83\docparam{mimetype}{MIME type string (for example 'image/jpeg')}
84
85Note : you must call wxImage::AddHandler(new wxJPEGHandler) during application
86initialization in order to work with JPEGs.
87
88\wxheading{See also}
89
90\helpref{wxImage::LoadFile}{wximageloadfile}
91
92\pythonnote{Constructors supported by wxPython are:\par
93\indented{2cm}{\begin{twocollist}
94\twocolitem{\bf{wxImage(name, flag)}}{Loads an image from a file}
95\twocolitem{\bf{wxNullImage()}}{Create a null image (has no size or
96image data)}
97\twocolitem{\bf{wxEmptyImage(width, height)}}{Creates an empty image
98of the given size}
99\twocolitem{\bf{wxImageFromMime(name, mimetype}}{Creates an image from
100the given file of the given mimetype}
101\twocolitem{\bf{wxImageFromBitmap(bitmap)}}{Creates an image from a
102platform-dependent bitmap}
103\end{twocollist}}
104}
105
106\membersection{wxImage::\destruct{wxImage}}
107
108\func{}{\destruct{wxImage}}{\void}
109
110Destructor.
111
112\membersection{wxImage::AddHandler}\label{wximageaddhandler}
113
114\func{static void}{AddHandler}{\param{wxImageHandler*}{ handler}}
115
116Adds a handler to the end of the static list of format handlers.
117
118\docparam{handler}{A new image format handler object. There is usually only one instance
119of a given handler class in an application session.}
120
121\wxheading{See also}
122
123\helpref{wxImageHandler}{wximagehandler}
124
125\pythonnote{In wxPython this static method is named \tt{wxImage_AddHandler}.}
126\membersection{wxImage::CleanUpHandlers}
127
128\func{static void}{CleanUpHandlers}{\void}
129
130Deletes all image handlers.
131
132This function is called by wxWindows on exit.
133
134\membersection{wxImage::ConvertToBitmap}\label{wximageconverttobitmap}
135
136\constfunc{wxBitmap}{ConvertToBitmap}{\void}
137
138Converts the image to a platform-specific bitmap object. This has to be done
139to actually display an image as you cannot draw an image directly on a window.
140The resulting bitmap will use the colour depth of the current system which entails
141that a (crude) colour reduction has to take place. When in 8-bit mode, this
142routine will use a color cube created on program start-up to look up colors.
143Still, the image quality won't be perfect for photo images.
144
145\membersection{wxImage::Create}\label{wximagecreate}
146
147\func{bool}{Create}{\param{int}{ width}, \param{int}{ height}}
148
149Creates a fresh image.
150
151\wxheading{Parameters}
152
153\docparam{width}{The width of the image in pixels.}
154
155\docparam{height}{The height of the image in pixels.}
156
157\wxheading{Return value}
158
159TRUE if the call succeeded, FALSE otherwise.
160
161\membersection{wxImage::Destroy}\label{wximagedestroy}
162
163\func{bool}{Destroy}{\void}
164
165Destroys the image data.
166
167\membersection{wxImage::FindHandler}
168
169\func{static wxImageHandler*}{FindHandler}{\param{const wxString\& }{name}}
170
171Finds the handler with the given name.
172
173\func{static wxImageHandler*}{FindHandler}{\param{const wxString\& }{extension}, \param{long}{ imageType}}
174
175Finds the handler associated with the given extension and type.
176
177\func{static wxImageHandler*}{FindHandler}{\param{long }{imageType}}
178
179Finds the handler associated with the given image type.
180
181\func{static wxImageHandler*}{FindHandlerMime}{\param{const wxString\& }{mimetype}}
182
183Finds the handler associated with the given MIME type.
184
185\docparam{name}{The handler name.}
186
187\docparam{extension}{The file extension, such as ``bmp".}
188
189\docparam{imageType}{The image type, such as wxBITMAP\_TYPE\_BMP.}
190
191\docparam{mimetype}{MIME type.}
192
193\wxheading{Return value}
194
195A pointer to the handler if found, NULL otherwise.
196
197\wxheading{See also}
198
199\helpref{wxImageHandler}{wximagehandler}
200
201\membersection{wxImage::GetBlue}\label{wximagegetblue}
202
203\constfunc{unsigned char}{GetBlue}{\param{int}{ x}, \param{int}{ y}}
204
205Returns the blue intensity at the given coordinate.
206
207\membersection{wxImage::GetData}\label{wximagegetdata}
208
209\constfunc{unsigned char*}{GetData}{\void}
210
211Returns the image data as an array. This is most often used when doing
212direct image manipulation. The return value points to an array of
213chararcters in RGBGBRGB... format.
214
215\membersection{wxImage::GetGreen}\label{wximagegetgreen}
216
217\constfunc{unsigned char}{GetGreen}{\param{int}{ x}, \param{int}{ y}}
218
219Returns the green intensity at the given coordinate.
220
221\membersection{wxImage::GetRed}\label{wximagegetred}
222
223\constfunc{unsigned char}{GetRed}{\param{int}{ x}, \param{int}{ y}}
224
225Returns the red intensity at the given coordinate.
226
227\membersection{wxImage::GetHandlers}
228
229\func{static wxList\&}{GetHandlers}{\void}
230
231Returns the static list of image format handlers.
232
233\wxheading{See also}
234
235\helpref{wxImageHandler}{wximagehandler}
236
237\membersection{wxImage::GetHeight}\label{wximagegetheight}
238
239\constfunc{int}{GetHeight}{\void}
240
241Gets the height of the image in pixels.
242
243\membersection{wxImage::GetMaskBlue}\label{wximagegetmaskblue}
244
245\constfunc{unsigned char}{GetMaskBlue}{\void}
246
247Gets the blue value of the mask colour.
248
249\membersection{wxImage::GetMaskGreen}\label{wximagegetmaskgreen}
250
251\constfunc{unsigned char}{GetMaskGreen}{\void}
252
253Gets the green value of the mask colour.
254
255\membersection{wxImage::GetMaskRed}\label{wximagegetmaskred}
256
257\constfunc{unsigned char}{GetMaskRed}{\void}
258
259Gets the red value of the mask colour.
260
261\membersection{wxImage::GetWidth}\label{wximagegetwidth}
262
263\constfunc{int}{GetWidth}{\void}
264
265Gets the width of the image in pixels.
266
267\wxheading{See also}
268
269\helpref{wxImage::GetHeight}{wximagegetheight}
270
271\membersection{wxImage::HasMask}\label{wximagehasmask}
272
273\constfunc{bool}{HasMask}{\void}
274
275Returns TRUE if there is a mask active, FALSE otherwise.
276
277\membersection{wxImage::InitStandardHandlers}
278
279\func{static void}{InitStandardHandlers}{\void}
280
281Adds the standard image format handlers, which, depending on wxWindows
282configuration, can be handlers for Windows BMP (loading), PNG
283(loading and saving) and JPEG (loading and saving) file formats.
284
285This function is called by wxWindows on startup.
286
287\wxheading{See also}
288
289\helpref{wxImageHandler}{wximagehandler}
290
291\membersection{wxImage::InsertHandler}
292
293\func{static void}{InsertHandler}{\param{wxImageHandler*}{ handler}}
294
295Adds a handler at the start of the static list of format handlers.
296
297\docparam{handler}{A new image format handler object. There is usually only one instance
298of a given handler class in an application session.}
299
300\wxheading{See also}
301
302\helpref{wxImageHandler}{wximagehandler}
303
304\membersection{wxImage::LoadFile}\label{wximageloadfile}
305
306\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{long}{ type}}
307
308\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{const wxString\&}{ mimetype}}
309
310Loads an image from a file.
311
312\func{bool}{LoadFile}{\param{wxInputStream\&}{ stream}, \param{long}{ type}}
313
314\func{bool}{LoadFile}{\param{wxInputStream\&}{ stream}, \param{const wxString\&}{ mimetype}}
315
316Loads an image from an input stream.
317
318\wxheading{Parameters}
319
320\docparam{name}{A filename.
321The meaning of {\it name} is determined by the {\it type} parameter.}
322
323\docparam{stream}{An input stream.
324The meaning of {\it stream} data is determined by the {\it type} parameter.}
325
326\docparam{type}{One of the following values:
327
328\twocolwidtha{5cm}%
329\begin{twocollist}
330\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Load a Windows image file.}
331\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Load a PNG image file.}
332\twocolitem{{\bf wxBITMAP\_TYPE\_JPEG}}{Load a JPEG image file.}
333\end{twocollist}
334
335The validity of these flags depends on the platform and wxWindows configuration.}
336
337\docparam{mimetype}{MIME type string (for example 'image/jpeg')}
338
339\wxheading{Return value}
340
341TRUE if the operation succeeded, FALSE otherwise.
342
343\wxheading{See also}
344
345\helpref{wxImage::SaveFile}{wximagesavefile}
346
347\pythonnote{In place of a single overloaded method name, wxPython
348implements the following methods:\par
349\indented{2cm}{\begin{twocollist}
350\twocolitem{\bf{LoadFile(filename, type)}}{Loads an image of the given
351type from a file}
352\twocolitem{\bf{LoadMimeFile(filename, mimetype)}}{Loads an image of the given
353mimetype from a file}
354\end{twocollist}}
355}
356
357
358\membersection{wxImage::Ok}\label{wximageok}
359
360\constfunc{bool}{Ok}{\void}
361
362Returns TRUE if image data is present.
363
364\membersection{wxImage::RemoveHandler}
365
366\func{static bool}{RemoveHandler}{\param{const wxString\& }{name}}
367
368Finds the handler with the given name, and removes it. The handler
369is not deleted.
370
371\docparam{name}{The handler name.}
372
373\wxheading{Return value}
374
375TRUE if the handler was found and removed, FALSE otherwise.
376
377\wxheading{See also}
378
379\helpref{wxImageHandler}{wximagehandler}
380
381\membersection{wxImage::SaveFile}\label{wximagesavefile}
382
383\func{bool}{SaveFile}{\param{const wxString\& }{name}, \param{int}{ type}}
384
385\func{bool}{SaveFile}{\param{const wxString\& }{name}, \param{const wxString\&}{ mimetype}}
386
387Saves a image in the named file.
388
389\func{bool}{SaveFile}{\param{wxOutputStream\& }{stream}, \param{int}{ type}}
390
391\func{bool}{SaveFile}{\param{wxOutputStream\& }{stream}, \param{const wxString\&}{ mimetype}}
392
393Saves a image in the given stream.
394
395\wxheading{Parameters}
396
397\docparam{name}{A filename. The meaning of {\it name} is determined by the {\it type} parameter.}
398
399\docparam{stream}{An output stream. The meaning of {\it stream} is determined by the {\it type} parameter.}
400
401\docparam{type}{Currently two types can be used:
402
403\twocolwidtha{5cm}%
404\begin{twocollist}
405\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Save a PNG image file.}
406\twocolitem{{\bf wxBITMAP\_TYPE\_JPEG}}{Save a JPEG image file.}
407\end{twocollist}
408
409The validity of these flags depends on the platform and wxWindows configuration
410as well as user-added handlers.}
411
412\docparam{mimetype}{MIME type.}
413
414\wxheading{Return value}
415
416TRUE if the operation succeeded, FALSE otherwise.
417
418\wxheading{Remarks}
419
420Depending on how wxWindows has been configured, not all formats may be available.
421
422\wxheading{See also}
423
424\helpref{wxImage::LoadFile}{wximageloadfile}
425
426\pythonnote{In place of a single overloaded method name, wxPython
427implements the following methods:\par
428\indented{2cm}{\begin{twocollist}
429\twocolitem{\bf{SaveFile(filename, type)}}{Saves the image using the given
430type to the named file}
431\twocolitem{\bf{SaveMimeFile(filename, mimetype)}}{Saves the image using the given
432mimetype to the named file}
433\end{twocollist}}
434}
435
436\membersection{wxImage::Rescale}\label{wximagerescale}
437
438\func{wxImage}{Rescale}{\param{int}{ width}, \param{int}{ height}}
439
440Changes the size of the image in-place: after a call to this function, the
441image will have the given width and height.
442
443\wxheading{See also}
444
445\helpref{Scale}{wximagescale}
446
447\membersection{wxImage::Scale}\label{wximagescale}
448
449\constfunc{wxImage}{Scale}{\param{int}{ width}, \param{int}{ height}}
450
451Returns a scaled version of the image. This is also useful for
452scaling bitmaps in general as the only other way to scale bitmaps
453is to blit a wxMemoryDC into another wxMemoryDC.
454
455NB: although Windows can do such scaling itself but in the GTK port, scaling
456bitmaps is done using this routine internally.
457
458Example:
459
460\begin{verbatim}
461 // get the bitmap from somewhere
462 wxBitmap bmp = ...;
463
464 // rescale it to have size of 32*32
465 if ( bmp.GetWidth() != 32 || bmp.GetHeight() != 32 )
466 {
467 wxImage image(bmp);
468 bmp = image.Scale(32, 32).ConvertToBitmap();
469
470 // another possibility:
471 image.Rescale(32, 32);
472 bmp = image;
473 }
474
475\end{verbatim}
476
477\wxheading{See also}
478
479\helpref{Rescale}{wximagerescale}
480
481\membersection{wxImage::GetSubImage}\label{wximagegetsubimage}
482
483\constfunc{wxImage}{GetSubImage}{\param{const wxRect&}{rect}}
484
485Returns a sub image of the current one as long as the rect belongs entirely to
486the image.
487
488\membersection{wxImage::SetData}\label{wximagesetdata}
489
490\func{void}{SetData}{\param{unsigned char*}{data}}
491
492Sets the image data without performing checks. The data given must have
493the size (width*height*3) or results will be unexpected. Don't use this
494method if you aren't sure you know what you are doing.
495
496\membersection{wxImage::SetMask}\label{wximagesetmask}
497
498\func{void}{SetMask}{\param{bool}{ hasMask = TRUE}}
499
500Specifies whether there is a mask or not. The area of the mask is determined by the current mask colour.
501
502\membersection{wxImage::SetMaskColour}\label{wximagesetmaskcolour}
503
504\func{void}{SetMaskColour}{\param{unsigned char }{red}, \param{unsigned char }{blue}, \param{unsigned char }{green}}
505
506Sets the mask colour for this image (and tells the image to use the mask).
507
508\membersection{wxImage::SetRGB}\label{wximagesetrgb}
509
510\func{void}{SetRGB}{\param{int }{x}, \param{int }{y}, \param{unsigned char }{red}, \param{unsigned char }{blue}, \param{unsigned char }{green}}
511
512Sets the pixel at the given coordinate. This routine performs bounds-checks
513for the coordinate so it can be considered a safe way to manipulate the
514data, but in some cases this might be too slow so that the data will have to
515be set directly. In that case you have to get that data by calling GetData().
516
517\membersection{wxImage::operator $=$}
518
519\func{wxImage\& }{operator $=$}{\param{const wxImage\& }{image}}
520
521Assignment operator. This operator does not copy any data, but instead
522passes a pointer to the data in {\it image} and increments a reference
523counter. It is a fast operation.
524
525\wxheading{Parameters}
526
527\docparam{image}{Image to assign.}
528
529\wxheading{Return value}
530
531Returns 'this' object.
532
533\membersection{wxImage::operator $==$}
534
535\func{bool}{operator $==$}{\param{const wxImage\& }{image}}
536
537Equality operator. This operator tests whether the internal data pointers are
538equal (a fast test).
539
540\wxheading{Parameters}
541
542\docparam{image}{Image to compare with 'this'}
543
544\wxheading{Return value}
545
546Returns TRUE if the images were effectively equal, FALSE otherwise.
547
548\membersection{wxImage::operator $!=$}
549
550\func{bool}{operator $!=$}{\param{const wxImage\& }{image}}
551
552Inequality operator. This operator tests whether the internal data pointers are
553unequal (a fast test).
554
555\wxheading{Parameters}
556
557\docparam{image}{Image to compare with 'this'}
558
559\wxheading{Return value}
560
561Returns TRUE if the images were unequal, FALSE otherwise.
562
563\section{\class{wxImageHandler}}\label{wximagehandler}
564
565This is the base class for implementing image file loading/saving, and image creation from data.
566It is used within wxImage and is not normally seen by the application.
567
568If you wish to extend the capabilities of wxImage, derive a class from wxImageHandler
569and add the handler using \helpref{wxImage::AddHandler}{wximageaddhandler} in your
570application initialisation.
571
572\wxheading{Note (Legal Issue)}
573
574This software is based in part on the work of the Independent JPEG Group.
575
576(Applies when wxWindows is linked with JPEG support. wxJPEGHandler uses libjpeg
577created by IJG.)
578
579\wxheading{Derived from}
580
581\helpref{wxObject}{wxobject}
582
583\wxheading{Include files}
584
585<wx/image.h>
586
587\wxheading{See also}
588
589\helpref{wxImage}{wximage}
590
591\latexignore{\rtfignore{\wxheading{Members}}}
592
593\membersection{wxImageHandler::wxImageHandler}\label{wximagehandlerconstr}
594
595\func{}{wxImageHandler}{\void}
596
597Default constructor. In your own default constructor, initialise the members
598m\_name, m\_extension and m\_type.
599
600\membersection{wxImageHandler::\destruct{wxImageHandler}}
601
602\func{}{\destruct{wxImageHandler}}{\void}
603
604Destroys the wxImageHandler object.
605
606\membersection{wxImageHandler::GetName}
607
608\constfunc{wxString}{GetName}{\void}
609
610Gets the name of this handler.
611
612\membersection{wxImageHandler::GetExtension}
613
614\constfunc{wxString}{GetExtension}{\void}
615
616Gets the file extension associated with this handler.
617
618\membersection{wxImageHandler::GetType}
619
620\constfunc{long}{GetType}{\void}
621
622Gets the image type associated with this handler.
623
624\membersection{wxImageHandler::GetMimeType}
625
626\constfunc{wxString}{GetMimeType}{\void}
627
628Gets the MIME type associated with this handler.
629
630\membersection{wxImageHandler::LoadFile}\label{wximagehandlerloadfile}
631
632\func{bool}{LoadFile}{\param{wxImage* }{image}, \param{wxInputStream\&}{ stream}}
633
634Loads a image from a stream, putting the resulting data into {\it image}.
635
636\wxheading{Parameters}
637
638\docparam{image}{The image object which is to be affected by this operation.}
639
640\docparam{stream}{Opened input stream.
641The meaning of {\it stream} is determined by the {\it type} parameter.}
642
643\wxheading{Return value}
644
645TRUE if the operation succeeded, FALSE otherwise.
646
647\wxheading{See also}
648
649\helpref{wxImage::LoadFile}{wximageloadfile}\\
650\helpref{wxImage::SaveFile}{wximagesavefile}\\
651\helpref{wxImageHandler::SaveFile}{wximagehandlersavefile}
652
653\membersection{wxImageHandler::SaveFile}\label{wximagehandlersavefile}
654
655\func{bool}{SaveFile}{\param{wxImage* }{image}, \param{wxOutputStream\& }{stream}}
656
657Saves a image in the output stream.
658
659\wxheading{Parameters}
660
661\docparam{image}{The image object which is to be affected by this operation.}
662
663\docparam{stream}{A stream. The meaning of {\it stream} is determined by the {\it type} parameter.}
664
665\wxheading{Return value}
666
667TRUE if the operation succeeded, FALSE otherwise.
668
669\wxheading{See also}
670
671\helpref{wxImage::LoadFile}{wximageloadfile}\\
672\helpref{wxImage::SaveFile}{wximagesavefile}\\
673\helpref{wxImageHandler::LoadFile}{wximagehandlerloadfile}
674
675\membersection{wxImageHandler::SetName}
676
677\func{void}{SetName}{\param{const wxString\& }{name}}
678
679Sets the handler name.
680
681\wxheading{Parameters}
682
683\docparam{name}{Handler name.}
684
685\membersection{wxImageHandler::SetExtension}
686
687\func{void}{SetExtension}{\param{const wxString\& }{extension}}
688
689Sets the handler extension.
690
691\wxheading{Parameters}
692
693\docparam{extension}{Handler extension.}
694
695\membersection{wxImageHandler::SetType}
696
697\func{void}{SetType}{\param{long }{type}}
698
699Sets the handler type.
700
701\wxheading{Parameters}
702
703\docparam{name}{Handler type.}
704
705
706\membersection{wxImageHandler::SetMimeType}
707
708\func{void}{SetMimeType}{\param{const wxString\& }{mimetype}}
709
710Sets the handler MIME type.
711
712\wxheading{Parameters}
713
714\docparam{mimename}{Handler MIME type.}
715