]> git.saurik.com Git - wxWidgets.git/blob - docs/latex/wx/image.tex
bugs in splitter docs corrected
[wxWidgets.git] / docs / latex / wx / image.tex
1 \section{\class{wxImage}}\label{wximage}
2
3 This class encapsulates a platform-independent image. An image can be created
4 from data, or using the constructor taking a wxBitmap object. An image
5 can be loaded from a file in a variety of formats, and is extensible to new formats
6 via image format handlers. Functions are available to set and get image bits, so
7 it can be used for basic image manipulation.
8
9 A wxImage cannot (currently) be drawn directly to a wxDC. Instead, a platform-specific
10 wxBitmap object must be created from it, and that bitmap drawn on the wxDC, using
11 wxDC::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
31 Default constructor.
32
33 \func{}{wxImage}{\param{const wxImage\& }{image}}
34
35 Copy constructor.
36
37 \func{}{wxImage}{\param{const wxBitmap\&}{ bitmap}}
38
39 Constructs an image from a platform-dependent bitmap. This preserves
40 mask information so that bitmaps and images can be converted back
41 and forth without loss in that respect.
42
43 \func{}{wxImage}{\param{int}{ width}, \param{int}{ height}}
44
45 Creates 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
51 Loads 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
57 Loads 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
78 The validity of these flags depends on the platform and wxWindows configuration.
79 If all possible wxWindows settings are used, the loading a BMP (Windows bitmap) file,
80 a PNG (portable network graphics) file and a JPEG file is supported on all platforms that
81 implement wxImage.}
82
83 \docparam{mimetype}{MIME type string (for example 'image/jpeg')}
84
85 Note : you must call wxImage::AddHandler(new wxJPEGHandler) during application
86 initialization 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
96 image data)}
97 \twocolitem{\bf{wxEmptyImage(width, height)}}{Creates an empty image
98 of the given size}
99 \twocolitem{\bf{wxImageFromMime(name, mimetype}}{Creates an image from
100 the given file of the given mimetype}
101 \twocolitem{\bf{wxImageFromBitmap(bitmap)}}{Creates an image from a
102 platform-dependent bitmap}
103 \end{twocollist}}
104 }
105
106 \membersection{wxImage::\destruct{wxImage}}
107
108 \func{}{\destruct{wxImage}}{\void}
109
110 Destructor.
111
112 \membersection{wxImage::AddHandler}\label{wximageaddhandler}
113
114 \func{static void}{AddHandler}{\param{wxImageHandler*}{ handler}}
115
116 Adds 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
119 of 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
130 Deletes all image handlers.
131
132 This function is called by wxWindows on exit.
133
134 \membersection{wxImage::ConvertToBitmap}\label{wximageconverttobitmap}
135
136 \constfunc{wxBitmap}{ConvertToBitmap}{\void}
137
138 Converts the image to a platform-specific bitmap object. This has to be done
139 to actually display an image as you cannot draw an image directly on a window.
140 The resulting bitmap will use the colour depth of the current system which entails
141 that a (crude) colour reduction has to take place. When in 8-bit mode, this
142 routine will use a color cube created on program start-up to look up colors.
143 Still, 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
149 Creates 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
159 TRUE if the call succeeded, FALSE otherwise.
160
161 \membersection{wxImage::Destroy}\label{wximagedestroy}
162
163 \func{bool}{Destroy}{\void}
164
165 Destroys the image data.
166
167 \membersection{wxImage::FindHandler}
168
169 \func{static wxImageHandler*}{FindHandler}{\param{const wxString\& }{name}}
170
171 Finds the handler with the given name.
172
173 \func{static wxImageHandler*}{FindHandler}{\param{const wxString\& }{extension}, \param{long}{ imageType}}
174
175 Finds the handler associated with the given extension and type.
176
177 \func{static wxImageHandler*}{FindHandler}{\param{long }{imageType}}
178
179 Finds the handler associated with the given image type.
180
181 \func{static wxImageHandler*}{FindHandlerMime}{\param{const wxString\& }{mimetype}}
182
183 Finds 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
195 A 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
205 Returns the blue intensity at the given coordinate.
206
207 \membersection{wxImage::GetData}\label{wximagegetdata}
208
209 \constfunc{unsigned char*}{GetData}{\void}
210
211 Returns the image data as an array. This is most often used when doing
212 direct image manipulation. The return value points to an array of
213 chararcters in RGBGBRGB... format.
214
215 \membersection{wxImage::GetGreen}\label{wximagegetgreen}
216
217 \constfunc{unsigned char}{GetGreen}{\param{int}{ x}, \param{int}{ y}}
218
219 Returns 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
225 Returns the red intensity at the given coordinate.
226
227 \membersection{wxImage::GetHandlers}
228
229 \func{static wxList\&}{GetHandlers}{\void}
230
231 Returns 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
241 Gets the height of the image in pixels.
242
243 \membersection{wxImage::GetMaskBlue}\label{wximagegetmaskblue}
244
245 \constfunc{unsigned char}{GetMaskBlue}{\void}
246
247 Gets the blue value of the mask colour.
248
249 \membersection{wxImage::GetMaskGreen}\label{wximagegetmaskgreen}
250
251 \constfunc{unsigned char}{GetMaskGreen}{\void}
252
253 Gets the green value of the mask colour.
254
255 \membersection{wxImage::GetMaskRed}\label{wximagegetmaskred}
256
257 \constfunc{unsigned char}{GetMaskRed}{\void}
258
259 Gets the red value of the mask colour.
260
261 \membersection{wxImage::GetWidth}\label{wximagegetwidth}
262
263 \constfunc{int}{GetWidth}{\void}
264
265 Gets 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
275 Returns TRUE if there is a mask active, FALSE otherwise.
276
277 \membersection{wxImage::InitStandardHandlers}
278
279 \func{static void}{InitStandardHandlers}{\void}
280
281 Adds the standard image format handlers, which, depending on wxWindows
282 configuration, can be handlers for Windows BMP (loading), PNG
283 (loading and saving) and JPEG (loading and saving) file formats.
284
285 This 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
295 Adds 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
298 of 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
310 Loads 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
316 Loads an image from an input stream.
317
318 \wxheading{Parameters}
319
320 \docparam{name}{A filename.
321 The meaning of {\it name} is determined by the {\it type} parameter.}
322
323 \docparam{stream}{An input stream.
324 The 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
335 The 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
341 TRUE 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
348 implements the following methods:\par
349 \indented{2cm}{\begin{twocollist}
350 \twocolitem{\bf{LoadFile(filename, type)}}{Loads an image of the given
351 type from a file}
352 \twocolitem{\bf{LoadMimeFile(filename, mimetype)}}{Loads an image of the given
353 mimetype from a file}
354 \end{twocollist}}
355 }
356
357
358 \membersection{wxImage::Ok}\label{wximageok}
359
360 \constfunc{bool}{Ok}{\void}
361
362 Returns TRUE if image data is present.
363
364 \membersection{wxImage::RemoveHandler}
365
366 \func{static bool}{RemoveHandler}{\param{const wxString\& }{name}}
367
368 Finds the handler with the given name, and removes it. The handler
369 is not deleted.
370
371 \docparam{name}{The handler name.}
372
373 \wxheading{Return value}
374
375 TRUE 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
387 Saves 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
393 Saves 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
409 The validity of these flags depends on the platform and wxWindows configuration
410 as well as user-added handlers.}
411
412 \docparam{mimetype}{MIME type.}
413
414 \wxheading{Return value}
415
416 TRUE if the operation succeeded, FALSE otherwise.
417
418 \wxheading{Remarks}
419
420 Depending 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
427 implements the following methods:\par
428 \indented{2cm}{\begin{twocollist}
429 \twocolitem{\bf{SaveFile(filename, type)}}{Saves the image using the given
430 type to the named file}
431 \twocolitem{\bf{SaveMimeFile(filename, mimetype)}}{Saves the image using the given
432 mimetype to the named file}
433 \end{twocollist}}
434 }
435
436 \membersection{wxImage::Scale}\label{wximagescale}
437
438 \func{wxImage}{Scale}{\param{int}{ width}, \param{int}{ height}}
439
440 Returns a scaled version of the image. This is also useful for
441 scaling bitmaps in general as the only other way to scale bitmaps
442 is to blit a wxMemoryDC into another wxMemoryDC. Windows can do such
443 scaling itself but in the GTK port, scaling bitmaps is done using
444 this routine internally.
445
446 \membersection{wxImage::SetData}\label{wximagesetdata}
447
448 \func{void}{SetData}{\param{unsigned char*}{data}}
449
450 Sets the image data without performing checks. The data given must have
451 the size (width*height*3) or results will be unexpected. Don't use this
452 method if you aren't sure you know what you are doing.
453
454 \membersection{wxImage::SetMask}\label{wximagesetmask}
455
456 \func{void}{SetMask}{\param{bool}{ hasMask = TRUE}}
457
458 Specifies whether there is a mask or not. The area of the mask is determined by the current mask colour.
459
460 \membersection{wxImage::SetMaskColour}\label{wximagesetmaskcolour}
461
462 \func{void}{SetMaskColour}{\param{unsigned char }{red}, \param{unsigned char }{blue}, \param{unsigned char }{green}}
463
464 Sets the mask colour for this image (and tells the image to use the mask).
465
466 \membersection{wxImage::SetRGB}\label{wximagesetrgb}
467
468 \func{void}{SetRGB}{\param{int }{x}, \param{int }{y}, \param{unsigned char }{red}, \param{unsigned char }{blue}, \param{unsigned char }{green}}
469
470 Sets the pixel at the given coordinate. This routine performs bounds-checks
471 for the coordinate so it can be considered a safe way to manipulate the
472 data, but in some cases this might be too slow so that the data will have to
473 be set directly. In that case you have to get that data by calling GetData().
474
475 \membersection{wxImage::operator $=$}
476
477 \func{wxImage\& }{operator $=$}{\param{const wxImage\& }{image}}
478
479 Assignment operator. This operator does not copy any data, but instead
480 passes a pointer to the data in {\it image} and increments a reference
481 counter. It is a fast operation.
482
483 \wxheading{Parameters}
484
485 \docparam{image}{Image to assign.}
486
487 \wxheading{Return value}
488
489 Returns 'this' object.
490
491 \membersection{wxImage::operator $==$}
492
493 \func{bool}{operator $==$}{\param{const wxImage\& }{image}}
494
495 Equality operator. This operator tests whether the internal data pointers are
496 equal (a fast test).
497
498 \wxheading{Parameters}
499
500 \docparam{image}{Image to compare with 'this'}
501
502 \wxheading{Return value}
503
504 Returns TRUE if the images were effectively equal, FALSE otherwise.
505
506 \membersection{wxImage::operator $!=$}
507
508 \func{bool}{operator $!=$}{\param{const wxImage\& }{image}}
509
510 Inequality operator. This operator tests whether the internal data pointers are
511 unequal (a fast test).
512
513 \wxheading{Parameters}
514
515 \docparam{image}{Image to compare with 'this'}
516
517 \wxheading{Return value}
518
519 Returns TRUE if the images were unequal, FALSE otherwise.
520
521 \section{\class{wxImageHandler}}\label{wximagehandler}
522
523 This is the base class for implementing image file loading/saving, and image creation from data.
524 It is used within wxImage and is not normally seen by the application.
525
526 If you wish to extend the capabilities of wxImage, derive a class from wxImageHandler
527 and add the handler using \helpref{wxImage::AddHandler}{wximageaddhandler} in your
528 application initialisation.
529
530 \wxheading{Note (Legal Issue)}
531
532 This software is based in part on the work of the Independent JPEG Group.
533
534 (Applies when wxWindows is linked with JPEG support. wxJPEGHandler uses libjpeg
535 created by IJG.)
536
537 \wxheading{Derived from}
538
539 \helpref{wxObject}{wxobject}
540
541 \wxheading{Include files}
542
543 <wx/image.h>
544
545 \wxheading{See also}
546
547 \helpref{wxImage}{wximage}
548
549 \latexignore{\rtfignore{\wxheading{Members}}}
550
551 \membersection{wxImageHandler::wxImageHandler}\label{wximagehandlerconstr}
552
553 \func{}{wxImageHandler}{\void}
554
555 Default constructor. In your own default constructor, initialise the members
556 m\_name, m\_extension and m\_type.
557
558 \membersection{wxImageHandler::\destruct{wxImageHandler}}
559
560 \func{}{\destruct{wxImageHandler}}{\void}
561
562 Destroys the wxImageHandler object.
563
564 \membersection{wxImageHandler::GetName}
565
566 \constfunc{wxString}{GetName}{\void}
567
568 Gets the name of this handler.
569
570 \membersection{wxImageHandler::GetExtension}
571
572 \constfunc{wxString}{GetExtension}{\void}
573
574 Gets the file extension associated with this handler.
575
576 \membersection{wxImageHandler::GetType}
577
578 \constfunc{long}{GetType}{\void}
579
580 Gets the image type associated with this handler.
581
582 \membersection{wxImageHandler::GetMimeType}
583
584 \constfunc{wxString}{GetMimeType}{\void}
585
586 Gets the MIME type associated with this handler.
587
588 \membersection{wxImageHandler::LoadFile}\label{wximagehandlerloadfile}
589
590 \func{bool}{LoadFile}{\param{wxImage* }{image}, \param{wxInputStream\&}{ stream}}
591
592 Loads a image from a stream, putting the resulting data into {\it image}.
593
594 \wxheading{Parameters}
595
596 \docparam{image}{The image object which is to be affected by this operation.}
597
598 \docparam{stream}{Opened input stream.
599 The meaning of {\it stream} is determined by the {\it type} parameter.}
600
601 \wxheading{Return value}
602
603 TRUE if the operation succeeded, FALSE otherwise.
604
605 \wxheading{See also}
606
607 \helpref{wxImage::LoadFile}{wximageloadfile}\\
608 \helpref{wxImage::SaveFile}{wximagesavefile}\\
609 \helpref{wxImageHandler::SaveFile}{wximagehandlersavefile}
610
611 \membersection{wxImageHandler::SaveFile}\label{wximagehandlersavefile}
612
613 \func{bool}{SaveFile}{\param{wxImage* }{image}, \param{wxOutputStream\& }{stream}}
614
615 Saves a image in the output stream.
616
617 \wxheading{Parameters}
618
619 \docparam{image}{The image object which is to be affected by this operation.}
620
621 \docparam{stream}{A stream. The meaning of {\it stream} is determined by the {\it type} parameter.}
622
623 \wxheading{Return value}
624
625 TRUE if the operation succeeded, FALSE otherwise.
626
627 \wxheading{See also}
628
629 \helpref{wxImage::LoadFile}{wximageloadfile}\\
630 \helpref{wxImage::SaveFile}{wximagesavefile}\\
631 \helpref{wxImageHandler::LoadFile}{wximagehandlerloadfile}
632
633 \membersection{wxImageHandler::SetName}
634
635 \func{void}{SetName}{\param{const wxString\& }{name}}
636
637 Sets the handler name.
638
639 \wxheading{Parameters}
640
641 \docparam{name}{Handler name.}
642
643 \membersection{wxImageHandler::SetExtension}
644
645 \func{void}{SetExtension}{\param{const wxString\& }{extension}}
646
647 Sets the handler extension.
648
649 \wxheading{Parameters}
650
651 \docparam{extension}{Handler extension.}
652
653 \membersection{wxImageHandler::SetType}
654
655 \func{void}{SetType}{\param{long }{type}}
656
657 Sets the handler type.
658
659 \wxheading{Parameters}
660
661 \docparam{name}{Handler type.}
662
663
664 \membersection{wxImageHandler::SetMimeType}
665
666 \func{void}{SetMimeType}{\param{const wxString\& }{mimetype}}
667
668 Sets the handler MIME type.
669
670 \wxheading{Parameters}
671
672 \docparam{mimename}{Handler MIME type.}
673