1<?xml version="1.0"?>
2<!-- This file was automatically generated from C sources - DO NOT EDIT!
3To affect the contents of this file, edit the original C definitions,
4and/or use gtk-doc annotations. -->
5<repository version="1.2"
6 xmlns="http://www.gtk.org/introspection/core/1.0"
7 xmlns:c="http://www.gtk.org/introspection/c/1.0"
8 xmlns:doc="http://www.gtk.org/introspection/doc/1.0"
9 xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
10 <include name="GModule" version="2.0"/>
11 <include name="Gio" version="2.0"/>
12 <package name="gdk-pixbuf-2.0"/>
13 <c:include name="gdk-pixbuf/gdk-pixbuf.h"/>
14 <doc:format name="unknown"/>
15 <namespace name="GdkPixbuf"
16 version="2.0"
17 shared-library="libgdk_pixbuf-2.0.so.0"
18 c:identifier-prefixes="Gdk"
19 c:symbol-prefixes="gdk">
20 <enumeration name="Colorspace"
21 glib:type-name="GdkColorspace"
22 glib:get-type="gdk_colorspace_get_type"
23 c:type="GdkColorspace">
24 <doc xml:space="preserve"
25 filename="gdk-pixbuf/gdk-pixbuf-core.h"
26 line="71">This enumeration defines the color spaces that are supported by
27the gdk-pixbuf library.
28
29Currently only RGB is supported.</doc>
30 <member name="rgb"
31 value="0"
32 c:identifier="GDK_COLORSPACE_RGB"
33 glib:nick="rgb"
34 glib:name="GDK_COLORSPACE_RGB">
35 <doc xml:space="preserve"
36 filename="gdk-pixbuf/gdk-pixbuf-core.h"
37 line="73">Indicates a red/green/blue additive color space.</doc>
38 </member>
39 </enumeration>
40 <function-macro name="IS_PIXBUF"
41 c:identifier="GDK_IS_PIXBUF"
42 introspectable="0">
43 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="93"/>
44 <parameters>
45 <parameter name="object">
46 </parameter>
47 </parameters>
48 </function-macro>
49 <function-macro name="IS_PIXBUF_ANIMATION"
50 c:identifier="GDK_IS_PIXBUF_ANIMATION"
51 introspectable="0">
52 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h" line="46"/>
53 <parameters>
54 <parameter name="object">
55 </parameter>
56 </parameters>
57 </function-macro>
58 <function-macro name="IS_PIXBUF_ANIMATION_CLASS"
59 c:identifier="GDK_IS_PIXBUF_ANIMATION_CLASS"
60 introspectable="0">
61 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
62 line="135"/>
63 <parameters>
64 <parameter name="klass">
65 </parameter>
66 </parameters>
67 </function-macro>
68 <function-macro name="IS_PIXBUF_ANIMATION_ITER"
69 c:identifier="GDK_IS_PIXBUF_ANIMATION_ITER"
70 introspectable="0">
71 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h" line="50"/>
72 <parameters>
73 <parameter name="object">
74 </parameter>
75 </parameters>
76 </function-macro>
77 <function-macro name="IS_PIXBUF_ANIMATION_ITER_CLASS"
78 c:identifier="GDK_IS_PIXBUF_ANIMATION_ITER_CLASS"
79 introspectable="0">
80 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
81 line="183"/>
82 <parameters>
83 <parameter name="klass">
84 </parameter>
85 </parameters>
86 </function-macro>
87 <function-macro name="IS_PIXBUF_LOADER"
88 c:identifier="GDK_IS_PIXBUF_LOADER"
89 introspectable="0">
90 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="42"/>
91 <parameters>
92 <parameter name="obj">
93 </parameter>
94 </parameters>
95 </function-macro>
96 <function-macro name="IS_PIXBUF_LOADER_CLASS"
97 c:identifier="GDK_IS_PIXBUF_LOADER_CLASS"
98 introspectable="0">
99 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="43"/>
100 <parameters>
101 <parameter name="klass">
102 </parameter>
103 </parameters>
104 </function-macro>
105 <function-macro name="IS_PIXBUF_NON_ANIM"
106 c:identifier="GDK_IS_PIXBUF_NON_ANIM"
107 introspectable="0">
108 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
109 line="210"/>
110 <parameters>
111 <parameter name="object">
112 </parameter>
113 </parameters>
114 </function-macro>
115 <function-macro name="IS_PIXBUF_SIMPLE_ANIM"
116 c:identifier="GDK_IS_PIXBUF_SIMPLE_ANIM"
117 introspectable="0">
118 <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
119 line="43"/>
120 <parameters>
121 <parameter name="object">
122 </parameter>
123 </parameters>
124 </function-macro>
125 <function-macro name="IS_PIXBUF_SIMPLE_ANIM_CLASS"
126 c:identifier="GDK_IS_PIXBUF_SIMPLE_ANIM_CLASS"
127 introspectable="0">
128 <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
129 line="46"/>
130 <parameters>
131 <parameter name="klass">
132 </parameter>
133 </parameters>
134 </function-macro>
135 <enumeration name="InterpType"
136 glib:type-name="GdkInterpType"
137 glib:get-type="gdk_interp_type_get_type"
138 c:type="GdkInterpType">
139 <doc xml:space="preserve"
140 filename="gdk-pixbuf/gdk-pixbuf-transform.h"
141 line="39">Interpolation modes for scaling functions.
142
143The `GDK_INTERP_NEAREST` mode is the fastest scaling method, but has
144horrible quality when scaling down; `GDK_INTERP_BILINEAR` is the best
145choice if you aren't sure what to choose, it has a good speed/quality
146balance.
147
148**Note**: Cubic filtering is missing from the list; hyperbolic
149interpolation is just as fast and results in higher quality.</doc>
150 <member name="nearest"
151 value="0"
152 c:identifier="GDK_INTERP_NEAREST"
153 glib:nick="nearest"
154 glib:name="GDK_INTERP_NEAREST">
155 <doc xml:space="preserve"
156 filename="gdk-pixbuf/gdk-pixbuf-transform.h"
157 line="41">Nearest neighbor sampling; this is the fastest
158 and lowest quality mode. Quality is normally unacceptable when scaling
159 down, but may be OK when scaling up.</doc>
160 </member>
161 <member name="tiles"
162 value="1"
163 c:identifier="GDK_INTERP_TILES"
164 glib:nick="tiles"
165 glib:name="GDK_INTERP_TILES">
166 <doc xml:space="preserve"
167 filename="gdk-pixbuf/gdk-pixbuf-transform.h"
168 line="44">This is an accurate simulation of the PostScript
169 image operator without any interpolation enabled. Each pixel is
170 rendered as a tiny parallelogram of solid color, the edges of which
171 are implemented with antialiasing. It resembles nearest neighbor for
172 enlargement, and bilinear for reduction.</doc>
173 </member>
174 <member name="bilinear"
175 value="2"
176 c:identifier="GDK_INTERP_BILINEAR"
177 glib:nick="bilinear"
178 glib:name="GDK_INTERP_BILINEAR">
179 <doc xml:space="preserve"
180 filename="gdk-pixbuf/gdk-pixbuf-transform.h"
181 line="49">Best quality/speed balance; use this mode by
182 default. Bilinear interpolation. For enlargement, it is
183 equivalent to point-sampling the ideal bilinear-interpolated image.
184 For reduction, it is equivalent to laying down small tiles and
185 integrating over the coverage area.</doc>
186 </member>
187 <member name="hyper"
188 value="3"
189 c:identifier="GDK_INTERP_HYPER"
190 glib:nick="hyper"
191 glib:name="GDK_INTERP_HYPER">
192 <doc xml:space="preserve"
193 filename="gdk-pixbuf/gdk-pixbuf-transform.h"
194 line="54">This is the slowest and highest quality
195 reconstruction function. It is derived from the hyperbolic filters in
196 Wolberg's "Digital Image Warping", and is formally defined as the
197 hyperbolic-filter sampling the ideal hyperbolic-filter interpolated
198 image (the filter is designed to be idempotent for 1:1 pixel mapping).
199 **Deprecated**: this interpolation filter is deprecated, as in reality
200 it has a lower quality than the @GDK_INTERP_BILINEAR filter
201 (Since: 2.38)</doc>
202 </member>
203 </enumeration>
204 <function-macro name="PIXBUF" c:identifier="GDK_PIXBUF" introspectable="0">
205 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="92"/>
206 <parameters>
207 <parameter name="object">
208 </parameter>
209 </parameters>
210 </function-macro>
211 <function-macro name="PIXBUF_ANIMATION"
212 c:identifier="GDK_PIXBUF_ANIMATION"
213 introspectable="0">
214 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h" line="45"/>
215 <parameters>
216 <parameter name="object">
217 </parameter>
218 </parameters>
219 </function-macro>
220 <function-macro name="PIXBUF_ANIMATION_CLASS"
221 c:identifier="GDK_PIXBUF_ANIMATION_CLASS"
222 introspectable="0">
223 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
224 line="134"/>
225 <parameters>
226 <parameter name="klass">
227 </parameter>
228 </parameters>
229 </function-macro>
230 <function-macro name="PIXBUF_ANIMATION_GET_CLASS"
231 c:identifier="GDK_PIXBUF_ANIMATION_GET_CLASS"
232 introspectable="0">
233 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
234 line="136"/>
235 <parameters>
236 <parameter name="obj">
237 </parameter>
238 </parameters>
239 </function-macro>
240 <function-macro name="PIXBUF_ANIMATION_ITER"
241 c:identifier="GDK_PIXBUF_ANIMATION_ITER"
242 introspectable="0">
243 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h" line="49"/>
244 <parameters>
245 <parameter name="object">
246 </parameter>
247 </parameters>
248 </function-macro>
249 <function-macro name="PIXBUF_ANIMATION_ITER_CLASS"
250 c:identifier="GDK_PIXBUF_ANIMATION_ITER_CLASS"
251 introspectable="0">
252 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
253 line="182"/>
254 <parameters>
255 <parameter name="klass">
256 </parameter>
257 </parameters>
258 </function-macro>
259 <function-macro name="PIXBUF_ANIMATION_ITER_GET_CLASS"
260 c:identifier="GDK_PIXBUF_ANIMATION_ITER_GET_CLASS"
261 introspectable="0">
262 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
263 line="184"/>
264 <parameters>
265 <parameter name="obj">
266 </parameter>
267 </parameters>
268 </function-macro>
269 <function-macro name="PIXBUF_CHECK_VERSION"
270 c:identifier="GDK_PIXBUF_CHECK_VERSION"
271 version="2.36"
272 introspectable="0">
273 <doc xml:space="preserve"
274 filename="gdk-pixbuf/gdk-pixbuf-macros.h"
275 line="32">Macro to test the version of GdkPixbuf being compiled against.</doc>
276 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="45"/>
277 <parameters>
278 <parameter name="major">
279 <doc xml:space="preserve"
280 filename="gdk-pixbuf/gdk-pixbuf-macros.h"
281 line="34">major version (e.g. 2 for version 2.34.0)</doc>
282 </parameter>
283 <parameter name="minor">
284 <doc xml:space="preserve"
285 filename="gdk-pixbuf/gdk-pixbuf-macros.h"
286 line="35">minor version (e.g. 34 for version 2.34.0)</doc>
287 </parameter>
288 <parameter name="micro">
289 <doc xml:space="preserve"
290 filename="gdk-pixbuf/gdk-pixbuf-macros.h"
291 line="36">micro version (e.g. 0 for version 2.34.0)</doc>
292 </parameter>
293 </parameters>
294 </function-macro>
295 <function-macro name="PIXBUF_DEPRECATED_IN_2_0_FOR"
296 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_0_FOR"
297 introspectable="0">
298 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="353"/>
299 <parameters>
300 <parameter name="f">
301 </parameter>
302 </parameters>
303 </function-macro>
304 <function-macro name="PIXBUF_DEPRECATED_IN_2_10_FOR"
305 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_10_FOR"
306 introspectable="0">
307 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="443"/>
308 <parameters>
309 <parameter name="f">
310 </parameter>
311 </parameters>
312 </function-macro>
313 <function-macro name="PIXBUF_DEPRECATED_IN_2_12_FOR"
314 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_12_FOR"
315 introspectable="0">
316 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="461"/>
317 <parameters>
318 <parameter name="f">
319 </parameter>
320 </parameters>
321 </function-macro>
322 <function-macro name="PIXBUF_DEPRECATED_IN_2_14_FOR"
323 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_14_FOR"
324 introspectable="0">
325 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="479"/>
326 <parameters>
327 <parameter name="f">
328 </parameter>
329 </parameters>
330 </function-macro>
331 <function-macro name="PIXBUF_DEPRECATED_IN_2_16_FOR"
332 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_16_FOR"
333 introspectable="0">
334 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="497"/>
335 <parameters>
336 <parameter name="f">
337 </parameter>
338 </parameters>
339 </function-macro>
340 <function-macro name="PIXBUF_DEPRECATED_IN_2_18_FOR"
341 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_18_FOR"
342 introspectable="0">
343 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="515"/>
344 <parameters>
345 <parameter name="f">
346 </parameter>
347 </parameters>
348 </function-macro>
349 <function-macro name="PIXBUF_DEPRECATED_IN_2_20_FOR"
350 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_20_FOR"
351 introspectable="0">
352 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="533"/>
353 <parameters>
354 <parameter name="f">
355 </parameter>
356 </parameters>
357 </function-macro>
358 <function-macro name="PIXBUF_DEPRECATED_IN_2_22_FOR"
359 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_22_FOR"
360 introspectable="0">
361 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="551"/>
362 <parameters>
363 <parameter name="f">
364 </parameter>
365 </parameters>
366 </function-macro>
367 <function-macro name="PIXBUF_DEPRECATED_IN_2_24_FOR"
368 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_24_FOR"
369 introspectable="0">
370 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="569"/>
371 <parameters>
372 <parameter name="f">
373 </parameter>
374 </parameters>
375 </function-macro>
376 <function-macro name="PIXBUF_DEPRECATED_IN_2_26_FOR"
377 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_26_FOR"
378 introspectable="0">
379 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="587"/>
380 <parameters>
381 <parameter name="f">
382 </parameter>
383 </parameters>
384 </function-macro>
385 <function-macro name="PIXBUF_DEPRECATED_IN_2_28_FOR"
386 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_28_FOR"
387 introspectable="0">
388 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="605"/>
389 <parameters>
390 <parameter name="f">
391 </parameter>
392 </parameters>
393 </function-macro>
394 <function-macro name="PIXBUF_DEPRECATED_IN_2_2_FOR"
395 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_2_FOR"
396 introspectable="0">
397 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="371"/>
398 <parameters>
399 <parameter name="f">
400 </parameter>
401 </parameters>
402 </function-macro>
403 <function-macro name="PIXBUF_DEPRECATED_IN_2_30_FOR"
404 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_30_FOR"
405 introspectable="0">
406 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="623"/>
407 <parameters>
408 <parameter name="f">
409 </parameter>
410 </parameters>
411 </function-macro>
412 <function-macro name="PIXBUF_DEPRECATED_IN_2_32_FOR"
413 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_32_FOR"
414 introspectable="0">
415 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="641"/>
416 <parameters>
417 <parameter name="f">
418 </parameter>
419 </parameters>
420 </function-macro>
421 <function-macro name="PIXBUF_DEPRECATED_IN_2_34_FOR"
422 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_34_FOR"
423 introspectable="0">
424 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="659"/>
425 <parameters>
426 <parameter name="f">
427 </parameter>
428 </parameters>
429 </function-macro>
430 <function-macro name="PIXBUF_DEPRECATED_IN_2_36_FOR"
431 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_36_FOR"
432 introspectable="0">
433 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="677"/>
434 <parameters>
435 <parameter name="f">
436 </parameter>
437 </parameters>
438 </function-macro>
439 <function-macro name="PIXBUF_DEPRECATED_IN_2_38_FOR"
440 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_38_FOR"
441 introspectable="0">
442 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="695"/>
443 <parameters>
444 <parameter name="f">
445 </parameter>
446 </parameters>
447 </function-macro>
448 <function-macro name="PIXBUF_DEPRECATED_IN_2_40_FOR"
449 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_40_FOR"
450 introspectable="0">
451 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="713"/>
452 <parameters>
453 <parameter name="f">
454 </parameter>
455 </parameters>
456 </function-macro>
457 <function-macro name="PIXBUF_DEPRECATED_IN_2_44_FOR"
458 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_44_FOR"
459 introspectable="0">
460 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="731"/>
461 <parameters>
462 <parameter name="f">
463 </parameter>
464 </parameters>
465 </function-macro>
466 <function-macro name="PIXBUF_DEPRECATED_IN_2_4_FOR"
467 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_4_FOR"
468 introspectable="0">
469 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="389"/>
470 <parameters>
471 <parameter name="f">
472 </parameter>
473 </parameters>
474 </function-macro>
475 <function-macro name="PIXBUF_DEPRECATED_IN_2_6_FOR"
476 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_6_FOR"
477 introspectable="0">
478 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="407"/>
479 <parameters>
480 <parameter name="f">
481 </parameter>
482 </parameters>
483 </function-macro>
484 <function-macro name="PIXBUF_DEPRECATED_IN_2_8_FOR"
485 c:identifier="GDK_PIXBUF_DEPRECATED_IN_2_8_FOR"
486 introspectable="0">
487 <source-position filename="gdk-pixbuf/gdk-pixbuf-macros.h" line="425"/>
488 <parameters>
489 <parameter name="f">
490 </parameter>
491 </parameters>
492 </function-macro>
493 <function-macro name="PIXBUF_LOADER"
494 c:identifier="GDK_PIXBUF_LOADER"
495 introspectable="0">
496 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="40"/>
497 <parameters>
498 <parameter name="obj">
499 </parameter>
500 </parameters>
501 </function-macro>
502 <function-macro name="PIXBUF_LOADER_CLASS"
503 c:identifier="GDK_PIXBUF_LOADER_CLASS"
504 introspectable="0">
505 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="41"/>
506 <parameters>
507 <parameter name="klass">
508 </parameter>
509 </parameters>
510 </function-macro>
511 <function-macro name="PIXBUF_LOADER_GET_CLASS"
512 c:identifier="GDK_PIXBUF_LOADER_GET_CLASS"
513 introspectable="0">
514 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="44"/>
515 <parameters>
516 <parameter name="obj">
517 </parameter>
518 </parameters>
519 </function-macro>
520 <constant name="PIXBUF_MAJOR" value="2" c:type="GDK_PIXBUF_MAJOR">
521 <doc xml:space="preserve"
522 filename="gdk-pixbuf/gdk-pixbuf-features.h"
523 line="10">Major version of gdk-pixbuf library, that is the "0" in
524"0.8.2" for example.</doc>
525 <source-position filename="gdk-pixbuf/gdk-pixbuf-features.h" line="37"/>
526 <type name="gint" c:type="gint"/>
527 </constant>
528 <constant name="PIXBUF_MICRO" value="3" c:type="GDK_PIXBUF_MICRO">
529 <doc xml:space="preserve"
530 filename="gdk-pixbuf/gdk-pixbuf-features.h"
531 line="22">Micro version of gdk-pixbuf library, that is the "2" in
532"0.8.2" for example.</doc>
533 <source-position filename="gdk-pixbuf/gdk-pixbuf-features.h" line="39"/>
534 <type name="gint" c:type="gint"/>
535 </constant>
536 <constant name="PIXBUF_MINOR" value="44" c:type="GDK_PIXBUF_MINOR">
537 <doc xml:space="preserve"
538 filename="gdk-pixbuf/gdk-pixbuf-features.h"
539 line="16">Minor version of gdk-pixbuf library, that is the "8" in
540"0.8.2" for example.</doc>
541 <source-position filename="gdk-pixbuf/gdk-pixbuf-features.h" line="38"/>
542 <type name="gint" c:type="gint"/>
543 </constant>
544 <function-macro name="PIXBUF_NON_ANIM"
545 c:identifier="GDK_PIXBUF_NON_ANIM"
546 introspectable="0">
547 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
548 line="209"/>
549 <parameters>
550 <parameter name="object">
551 </parameter>
552 </parameters>
553 </function-macro>
554 <function-macro name="PIXBUF_SIMPLE_ANIM"
555 c:identifier="GDK_PIXBUF_SIMPLE_ANIM"
556 introspectable="0">
557 <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
558 line="42"/>
559 <parameters>
560 <parameter name="object">
561 </parameter>
562 </parameters>
563 </function-macro>
564 <function-macro name="PIXBUF_SIMPLE_ANIM_CLASS"
565 c:identifier="GDK_PIXBUF_SIMPLE_ANIM_CLASS"
566 introspectable="0">
567 <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
568 line="45"/>
569 <parameters>
570 <parameter name="klass">
571 </parameter>
572 </parameters>
573 </function-macro>
574 <function-macro name="PIXBUF_SIMPLE_ANIM_GET_CLASS"
575 c:identifier="GDK_PIXBUF_SIMPLE_ANIM_GET_CLASS"
576 introspectable="0">
577 <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
578 line="47"/>
579 <parameters>
580 <parameter name="obj">
581 </parameter>
582 </parameters>
583 </function-macro>
584 <constant name="PIXBUF_VERSION" value="2.44.3" c:type="GDK_PIXBUF_VERSION">
585 <doc xml:space="preserve"
586 filename="gdk-pixbuf/gdk-pixbuf-features.h"
587 line="28">Contains the full version of GdkPixbuf as a string.
588
589This is the version being compiled against; contrast with
590`gdk_pixbuf_version`.</doc>
591 <source-position filename="gdk-pixbuf/gdk-pixbuf-features.h" line="40"/>
592 <type name="utf8" c:type="gchar*"/>
593 </constant>
594 <class name="Pixbuf"
595 c:symbol-prefix="pixbuf"
596 c:type="GdkPixbuf"
597 parent="GObject.Object"
598 glib:type-name="GdkPixbuf"
599 glib:get-type="gdk_pixbuf_get_type">
600 <doc xml:space="preserve"
601 filename="gdk-pixbuf/gdk-pixbuf.c"
602 line="24">A pixel buffer.
603
604`GdkPixbuf` contains information about an image's pixel data,
605its color space, bits per sample, width and height, and the
606rowstride (the number of bytes between the start of one row
607and the start of the next).
608
609## Creating new `GdkPixbuf`
610
611The most basic way to create a pixbuf is to wrap an existing pixel
612buffer with a [class@GdkPixbuf.Pixbuf] instance. You can use the
613[`ctor@GdkPixbuf.Pixbuf.new_from_data`] function to do this.
614
615Every time you create a new `GdkPixbuf` instance for some data, you
616will need to specify the destroy notification function that will be
617called when the data buffer needs to be freed; this will happen when
618a `GdkPixbuf` is finalized by the reference counting functions. If
619you have a chunk of static data compiled into your application, you
620can pass in `NULL` as the destroy notification function so that the
621data will not be freed.
622
623The [`ctor@GdkPixbuf.Pixbuf.new`] constructor function can be used
624as a convenience to create a pixbuf with an empty buffer; this is
625equivalent to allocating a data buffer using `malloc()` and then
626wrapping it with `gdk_pixbuf_new_from_data()`. The `gdk_pixbuf_new()`
627function will compute an optimal rowstride so that rendering can be
628performed with an efficient algorithm.
629
630You can also copy an existing pixbuf with the [method@Pixbuf.copy]
631function. This is not the same as just acquiring a reference to
632the old pixbuf instance: the copy function will actually duplicate
633the pixel data in memory and create a new [class@Pixbuf] instance
634for it.
635
636## Reference counting
637
638`GdkPixbuf` structures are reference counted. This means that an
639application can share a single pixbuf among many parts of the
640code. When a piece of the program needs to use a pixbuf, it should
641acquire a reference to it by calling `g_object_ref()`; when it no
642longer needs the pixbuf, it should release the reference it acquired
643by calling `g_object_unref()`. The resources associated with a
644`GdkPixbuf` will be freed when its reference count drops to zero.
645Newly-created `GdkPixbuf` instances start with a reference count
646of one.
647
648## Image Data
649
650Image data in a pixbuf is stored in memory in an uncompressed,
651packed format. Rows in the image are stored top to bottom, and
652in each row pixels are stored from left to right.
653
654There may be padding at the end of a row.
655
656The "rowstride" value of a pixbuf, as returned by [`method@GdkPixbuf.Pixbuf.get_rowstride`],
657indicates the number of bytes between rows.
658
659**NOTE**: If you are copying raw pixbuf data with `memcpy()` note that the
660last row in the pixbuf may not be as wide as the full rowstride, but rather
661just as wide as the pixel data needs to be; that is: it is unsafe to do
662`memcpy (dest, pixels, rowstride * height)` to copy a whole pixbuf. Use
663[method@GdkPixbuf.Pixbuf.copy] instead, or compute the width in bytes of the
664last row as:
665
666```c
667last_row = width * ((n_channels * bits_per_sample + 7) / 8);
668```
669
670The same rule applies when iterating over each row of a `GdkPixbuf` pixels
671array.
672
673The following code illustrates a simple `put_pixel()`
674function for RGB pixbufs with 8 bits per channel with an alpha
675channel.
676
677```c
678static void
679put_pixel (GdkPixbuf *pixbuf,
680 int x,
681 int y,
682 guchar red,
683 guchar green,
684 guchar blue,
685 guchar alpha)
686{
687 int n_channels = gdk_pixbuf_get_n_channels (pixbuf);
688
689 // Ensure that the pixbuf is valid
690 g_assert (gdk_pixbuf_get_colorspace (pixbuf) == GDK_COLORSPACE_RGB);
691 g_assert (gdk_pixbuf_get_bits_per_sample (pixbuf) == 8);
692 g_assert (gdk_pixbuf_get_has_alpha (pixbuf));
693 g_assert (n_channels == 4);
694
695 int width = gdk_pixbuf_get_width (pixbuf);
696 int height = gdk_pixbuf_get_height (pixbuf);
697
698 // Ensure that the coordinates are in a valid range
699 g_assert (x >= 0 && x < width);
700 g_assert (y >= 0 && y < height);
701
702 int rowstride = gdk_pixbuf_get_rowstride (pixbuf);
703
704 // The pixel buffer in the GdkPixbuf instance
705 guchar *pixels = gdk_pixbuf_get_pixels (pixbuf);
706
707 // The pixel we wish to modify
708 guchar *p = pixels + y * rowstride + x * n_channels;
709 p[0] = red;
710 p[1] = green;
711 p[2] = blue;
712 p[3] = alpha;
713}
714```
715
716## Loading images
717
718The `GdkPixBuf` class provides a simple mechanism for loading
719an image from a file in synchronous and asynchronous fashion.
720
721For GUI applications, it is recommended to use the asynchronous
722stream API to avoid blocking the control flow of the application.
723
724Additionally, `GdkPixbuf` provides the [class@GdkPixbuf.PixbufLoader`]
725API for progressive image loading.
726
727## Saving images
728
729The `GdkPixbuf` class provides methods for saving image data in
730a number of file formats. The formatted data can be written to a
731file or to a memory buffer. `GdkPixbuf` can also call a user-defined
732callback on the data, which allows to e.g. write the image
733to a socket or store it in a database.</doc>
734 <implements name="Gio.Icon"/>
735 <implements name="Gio.LoadableIcon"/>
736 <constructor name="new" c:identifier="gdk_pixbuf_new">
737 <doc xml:space="preserve"
738 filename="gdk-pixbuf/gdk-pixbuf.c"
739 line="599">Creates a new `GdkPixbuf` structure and allocates a buffer for it.
740
741If the allocation of the buffer failed, this function will return `NULL`.
742
743The buffer has an optimal rowstride. Note that the buffer is not cleared;
744you will have to fill it completely yourself.</doc>
745 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="204"/>
746 <return-value transfer-ownership="full" nullable="1">
747 <doc xml:space="preserve"
748 filename="gdk-pixbuf/gdk-pixbuf.c"
749 line="614">A newly-created pixel buffer</doc>
750 <type name="Pixbuf" c:type="GdkPixbuf*"/>
751 </return-value>
752 <parameters>
753 <parameter name="colorspace" transfer-ownership="none">
754 <doc xml:space="preserve"
755 filename="gdk-pixbuf/gdk-pixbuf.c"
756 line="601">Color space for image</doc>
757 <type name="Colorspace" c:type="GdkColorspace"/>
758 </parameter>
759 <parameter name="has_alpha" transfer-ownership="none">
760 <doc xml:space="preserve"
761 filename="gdk-pixbuf/gdk-pixbuf.c"
762 line="602">Whether the image should have transparency information</doc>
763 <type name="gboolean" c:type="gboolean"/>
764 </parameter>
765 <parameter name="bits_per_sample" transfer-ownership="none">
766 <doc xml:space="preserve"
767 filename="gdk-pixbuf/gdk-pixbuf.c"
768 line="603">Number of bits per color sample</doc>
769 <type name="gint" c:type="int"/>
770 </parameter>
771 <parameter name="width" transfer-ownership="none">
772 <doc xml:space="preserve"
773 filename="gdk-pixbuf/gdk-pixbuf.c"
774 line="604">Width of image in pixels, must be > 0</doc>
775 <type name="gint" c:type="int"/>
776 </parameter>
777 <parameter name="height" transfer-ownership="none">
778 <doc xml:space="preserve"
779 filename="gdk-pixbuf/gdk-pixbuf.c"
780 line="605">Height of image in pixels, must be > 0</doc>
781 <type name="gint" c:type="int"/>
782 </parameter>
783 </parameters>
784 </constructor>
785 <constructor name="new_from_bytes"
786 c:identifier="gdk_pixbuf_new_from_bytes"
787 version="2.32">
788 <doc xml:space="preserve"
789 filename="gdk-pixbuf/gdk-pixbuf-data.c"
790 line="96">Creates a new #GdkPixbuf out of in-memory readonly image data.
791
792Currently only RGB images with 8 bits per sample are supported.
793
794This is the `GBytes` variant of gdk_pixbuf_new_from_data(), useful
795for language bindings.</doc>
796 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="284"/>
797 <return-value transfer-ownership="full">
798 <doc xml:space="preserve"
799 filename="gdk-pixbuf/gdk-pixbuf-data.c"
800 line="113">A newly-created pixbuf</doc>
801 <type name="Pixbuf" c:type="GdkPixbuf*"/>
802 </return-value>
803 <parameters>
804 <parameter name="data" transfer-ownership="none">
805 <doc xml:space="preserve"
806 filename="gdk-pixbuf/gdk-pixbuf-data.c"
807 line="98">Image data in 8-bit/sample packed format inside a #GBytes</doc>
808 <type name="GLib.Bytes" c:type="GBytes*"/>
809 </parameter>
810 <parameter name="colorspace" transfer-ownership="none">
811 <doc xml:space="preserve"
812 filename="gdk-pixbuf/gdk-pixbuf-data.c"
813 line="99">Colorspace for the image data</doc>
814 <type name="Colorspace" c:type="GdkColorspace"/>
815 </parameter>
816 <parameter name="has_alpha" transfer-ownership="none">
817 <doc xml:space="preserve"
818 filename="gdk-pixbuf/gdk-pixbuf-data.c"
819 line="100">Whether the data has an opacity channel</doc>
820 <type name="gboolean" c:type="gboolean"/>
821 </parameter>
822 <parameter name="bits_per_sample" transfer-ownership="none">
823 <doc xml:space="preserve"
824 filename="gdk-pixbuf/gdk-pixbuf-data.c"
825 line="101">Number of bits per sample</doc>
826 <type name="gint" c:type="int"/>
827 </parameter>
828 <parameter name="width" transfer-ownership="none">
829 <doc xml:space="preserve"
830 filename="gdk-pixbuf/gdk-pixbuf-data.c"
831 line="102">Width of the image in pixels, must be > 0</doc>
832 <type name="gint" c:type="int"/>
833 </parameter>
834 <parameter name="height" transfer-ownership="none">
835 <doc xml:space="preserve"
836 filename="gdk-pixbuf/gdk-pixbuf-data.c"
837 line="103">Height of the image in pixels, must be > 0</doc>
838 <type name="gint" c:type="int"/>
839 </parameter>
840 <parameter name="rowstride" transfer-ownership="none">
841 <doc xml:space="preserve"
842 filename="gdk-pixbuf/gdk-pixbuf-data.c"
843 line="104">Distance in bytes between row starts</doc>
844 <type name="gint" c:type="int"/>
845 </parameter>
846 </parameters>
847 </constructor>
848 <constructor name="new_from_data"
849 c:identifier="gdk_pixbuf_new_from_data">
850 <doc xml:space="preserve"
851 filename="gdk-pixbuf/gdk-pixbuf-data.c"
852 line="29">Creates a new #GdkPixbuf out of in-memory image data.
853
854Currently only RGB images with 8 bits per sample are supported.
855
856Since you are providing a pre-allocated pixel buffer, you must also
857specify a way to free that data. This is done with a function of
858type `GdkPixbufDestroyNotify`. When a pixbuf created with is
859finalized, your destroy notification function will be called, and
860it is its responsibility to free the pixel array.
861
862See also: [ctor@GdkPixbuf.Pixbuf.new_from_bytes]</doc>
863 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="274"/>
864 <return-value transfer-ownership="full">
865 <doc xml:space="preserve"
866 filename="gdk-pixbuf/gdk-pixbuf-data.c"
867 line="56">A newly-created pixbuf</doc>
868 <type name="Pixbuf" c:type="GdkPixbuf*"/>
869 </return-value>
870 <parameters>
871 <parameter name="data" transfer-ownership="none">
872 <doc xml:space="preserve"
873 filename="gdk-pixbuf/gdk-pixbuf-data.c"
874 line="31">Image data in 8-bit/sample packed format</doc>
875 <array zero-terminated="0" c:type="const guchar*">
876 <type name="guint8" c:type="guchar"/>
877 </array>
878 </parameter>
879 <parameter name="colorspace" transfer-ownership="none">
880 <doc xml:space="preserve"
881 filename="gdk-pixbuf/gdk-pixbuf-data.c"
882 line="32">Colorspace for the image data</doc>
883 <type name="Colorspace" c:type="GdkColorspace"/>
884 </parameter>
885 <parameter name="has_alpha" transfer-ownership="none">
886 <doc xml:space="preserve"
887 filename="gdk-pixbuf/gdk-pixbuf-data.c"
888 line="33">Whether the data has an opacity channel</doc>
889 <type name="gboolean" c:type="gboolean"/>
890 </parameter>
891 <parameter name="bits_per_sample" transfer-ownership="none">
892 <doc xml:space="preserve"
893 filename="gdk-pixbuf/gdk-pixbuf-data.c"
894 line="34">Number of bits per sample</doc>
895 <type name="gint" c:type="int"/>
896 </parameter>
897 <parameter name="width" transfer-ownership="none">
898 <doc xml:space="preserve"
899 filename="gdk-pixbuf/gdk-pixbuf-data.c"
900 line="35">Width of the image in pixels, must be > 0</doc>
901 <type name="gint" c:type="int"/>
902 </parameter>
903 <parameter name="height" transfer-ownership="none">
904 <doc xml:space="preserve"
905 filename="gdk-pixbuf/gdk-pixbuf-data.c"
906 line="36">Height of the image in pixels, must be > 0</doc>
907 <type name="gint" c:type="int"/>
908 </parameter>
909 <parameter name="rowstride" transfer-ownership="none">
910 <doc xml:space="preserve"
911 filename="gdk-pixbuf/gdk-pixbuf-data.c"
912 line="37">Distance in bytes between row starts</doc>
913 <type name="gint" c:type="int"/>
914 </parameter>
915 <parameter name="destroy_fn"
916 transfer-ownership="none"
917 nullable="1"
918 allow-none="1"
919 scope="async"
920 closure="8">
921 <doc xml:space="preserve"
922 filename="gdk-pixbuf/gdk-pixbuf-data.c"
923 line="38">Function
924 used to free the data when the pixbuf's reference count
925 drops to zero, or `NULL` if the data should not be freed</doc>
926 <type name="PixbufDestroyNotify" c:type="GdkPixbufDestroyNotify"/>
927 </parameter>
928 <parameter name="destroy_fn_data"
929 transfer-ownership="none"
930 nullable="1"
931 allow-none="1">
932 <doc xml:space="preserve"
933 filename="gdk-pixbuf/gdk-pixbuf-data.c"
934 line="41">Closure data to pass to the destroy
935 notification function</doc>
936 <type name="gpointer" c:type="gpointer"/>
937 </parameter>
938 </parameters>
939 </constructor>
940 <constructor name="new_from_file"
941 c:identifier="gdk_pixbuf_new_from_file"
942 throws="1">
943 <doc xml:space="preserve"
944 filename="gdk-pixbuf/gdk-pixbuf-io.c"
945 line="1176">Creates a new pixbuf by loading an image from a file.
946
947The file format is detected automatically.
948
949If `NULL` is returned, then @error will be set. Possible errors are:
950
951 - the file could not be opened
952 - there is no loader for the file's format
953 - there is not enough memory to allocate the image buffer
954 - the image buffer contains invalid data
955
956The error domains are `GDK_PIXBUF_ERROR` and `G_FILE_ERROR`.</doc>
957 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="250"/>
958 <return-value transfer-ownership="full" nullable="1">
959 <doc xml:space="preserve"
960 filename="gdk-pixbuf/gdk-pixbuf-io.c"
961 line="1195">A newly-created pixbuf</doc>
962 <type name="Pixbuf" c:type="GdkPixbuf*"/>
963 </return-value>
964 <parameters>
965 <parameter name="filename" transfer-ownership="none">
966 <doc xml:space="preserve"
967 filename="gdk-pixbuf/gdk-pixbuf-io.c"
968 line="1178">Name of file to load, in the GLib file
969 name encoding</doc>
970 <type name="filename" c:type="const char*"/>
971 </parameter>
972 </parameters>
973 </constructor>
974 <constructor name="new_from_file_at_scale"
975 c:identifier="gdk_pixbuf_new_from_file_at_scale"
976 version="2.6"
977 throws="1">
978 <doc xml:space="preserve"
979 filename="gdk-pixbuf/gdk-pixbuf-io.c"
980 line="1424">Creates a new pixbuf by loading an image from a file.
981
982The file format is detected automatically.
983
984If `NULL` is returned, then @error will be set. Possible errors are:
985
986 - the file could not be opened
987 - there is no loader for the file's format
988 - there is not enough memory to allocate the image buffer
989 - the image buffer contains invalid data
990
991The error domains are `GDK_PIXBUF_ERROR` and `G_FILE_ERROR`.
992
993The image will be scaled to fit in the requested size, optionally preserving
994the image's aspect ratio.
995
996When preserving the aspect ratio, a `width` of -1 will cause the image
997to be scaled to the exact given height, and a `height` of -1 will cause
998the image to be scaled to the exact given width. When not preserving
999aspect ratio, a `width` or `height` of -1 means to not scale the image
1000at all in that dimension. Negative values for `width` and `height` are
1001allowed since 2.8.</doc>
1002 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="258"/>
1003 <return-value transfer-ownership="full" nullable="1">
1004 <doc xml:space="preserve"
1005 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1006 line="1456">A newly-created pixbuf</doc>
1007 <type name="Pixbuf" c:type="GdkPixbuf*"/>
1008 </return-value>
1009 <parameters>
1010 <parameter name="filename" transfer-ownership="none">
1011 <doc xml:space="preserve"
1012 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1013 line="1426">Name of file to load, in the GLib file
1014 name encoding</doc>
1015 <type name="filename" c:type="const char*"/>
1016 </parameter>
1017 <parameter name="width" transfer-ownership="none">
1018 <doc xml:space="preserve"
1019 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1020 line="1428">The width the image should have or -1 to not constrain the width</doc>
1021 <type name="gint" c:type="int"/>
1022 </parameter>
1023 <parameter name="height" transfer-ownership="none">
1024 <doc xml:space="preserve"
1025 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1026 line="1429">The height the image should have or -1 to not constrain the height</doc>
1027 <type name="gint" c:type="int"/>
1028 </parameter>
1029 <parameter name="preserve_aspect_ratio" transfer-ownership="none">
1030 <doc xml:space="preserve"
1031 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1032 line="1430">`TRUE` to preserve the image's aspect ratio</doc>
1033 <type name="gboolean" c:type="gboolean"/>
1034 </parameter>
1035 </parameters>
1036 </constructor>
1037 <constructor name="new_from_file_at_size"
1038 c:identifier="gdk_pixbuf_new_from_file_at_size"
1039 version="2.4"
1040 throws="1">
1041 <doc xml:space="preserve"
1042 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1043 line="1297">Creates a new pixbuf by loading an image from a file.
1044
1045The file format is detected automatically.
1046
1047If `NULL` is returned, then @error will be set. Possible errors are:
1048
1049 - the file could not be opened
1050 - there is no loader for the file's format
1051 - there is not enough memory to allocate the image buffer
1052 - the image buffer contains invalid data
1053
1054The error domains are `GDK_PIXBUF_ERROR` and `G_FILE_ERROR`.
1055
1056The image will be scaled to fit in the requested size, preserving
1057the image's aspect ratio. Note that the returned pixbuf may be smaller
1058than `width` x `height`, if the aspect ratio requires it. To load
1059and image at the requested size, regardless of aspect ratio, use
1060[ctor@GdkPixbuf.Pixbuf.new_from_file_at_scale].</doc>
1061 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="253"/>
1062 <return-value transfer-ownership="full" nullable="1">
1063 <doc xml:space="preserve"
1064 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1065 line="1324">A newly-created pixbuf</doc>
1066 <type name="Pixbuf" c:type="GdkPixbuf*"/>
1067 </return-value>
1068 <parameters>
1069 <parameter name="filename" transfer-ownership="none">
1070 <doc xml:space="preserve"
1071 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1072 line="1299">Name of file to load, in the GLib file
1073 name encoding</doc>
1074 <type name="filename" c:type="const char*"/>
1075 </parameter>
1076 <parameter name="width" transfer-ownership="none">
1077 <doc xml:space="preserve"
1078 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1079 line="1301">The width the image should have or -1 to not constrain the width</doc>
1080 <type name="gint" c:type="int"/>
1081 </parameter>
1082 <parameter name="height" transfer-ownership="none">
1083 <doc xml:space="preserve"
1084 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1085 line="1302">The height the image should have or -1 to not constrain the height</doc>
1086 <type name="gint" c:type="int"/>
1087 </parameter>
1088 </parameters>
1089 </constructor>
1090 <constructor name="new_from_inline"
1091 c:identifier="gdk_pixbuf_new_from_inline"
1092 deprecated="1"
1093 deprecated-version="2.32"
1094 throws="1">
1095 <doc xml:space="preserve"
1096 filename="gdk-pixbuf/gdk-pixdata.c"
1097 line="951">Creates a `GdkPixbuf` from a flat representation that is suitable for
1098storing as inline data in a program.
1099
1100This is useful if you want to ship a program with images, but don't want
1101to depend on any external files.
1102
1103GdkPixbuf ships with a program called `gdk-pixbuf-csource`, which allows
1104for conversion of `GdkPixbuf`s into such a inline representation.
1105
1106In almost all cases, you should pass the `--raw` option to
1107`gdk-pixbuf-csource`. A sample invocation would be:
1108
1109```
1110gdk-pixbuf-csource --raw --name=myimage_inline myimage.png
1111```
1112
1113For the typical case where the inline pixbuf is read-only static data,
1114you don't need to copy the pixel data unless you intend to write to
1115it, so you can pass `FALSE` for `copy_pixels`. If you pass `--rle` to
1116`gdk-pixbuf-csource`, a copy will be made even if `copy_pixels` is `FALSE`,
1117so using this option is generally a bad idea.
1118
1119If you create a pixbuf from const inline data compiled into your
1120program, it's probably safe to ignore errors and disable length checks,
1121since things will always succeed:
1122
1123```c
1124pixbuf = gdk_pixbuf_new_from_inline (-1, myimage_inline, FALSE, NULL);
1125```
1126
1127For non-const inline data, you could get out of memory. For untrusted
1128inline data located at runtime, you could have corrupt inline data in
1129addition.</doc>
1130 <doc-deprecated xml:space="preserve">Use `GResource` instead.</doc-deprecated>
1131 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="295"/>
1132 <return-value transfer-ownership="full">
1133 <doc xml:space="preserve"
1134 filename="gdk-pixbuf/gdk-pixdata.c"
1135 line="995">A newly-created pixbuf</doc>
1136 <type name="Pixbuf" c:type="GdkPixbuf*"/>
1137 </return-value>
1138 <parameters>
1139 <parameter name="data_length" transfer-ownership="none">
1140 <doc xml:space="preserve"
1141 filename="gdk-pixbuf/gdk-pixdata.c"
1142 line="953">Length in bytes of the `data` argument or -1 to
1143 disable length checks</doc>
1144 <type name="gint" c:type="gint"/>
1145 </parameter>
1146 <parameter name="data" transfer-ownership="none">
1147 <doc xml:space="preserve"
1148 filename="gdk-pixbuf/gdk-pixdata.c"
1149 line="955">Byte data containing a
1150 serialized `GdkPixdata` structure</doc>
1151 <array length="0" zero-terminated="0" c:type="const guint8*">
1152 <type name="guint8" c:type="guint8"/>
1153 </array>
1154 </parameter>
1155 <parameter name="copy_pixels" transfer-ownership="none">
1156 <doc xml:space="preserve"
1157 filename="gdk-pixbuf/gdk-pixdata.c"
1158 line="957">Whether to copy the pixel data, or use direct pointers
1159 `data` for the resulting pixbuf</doc>
1160 <type name="gboolean" c:type="gboolean"/>
1161 </parameter>
1162 </parameters>
1163 </constructor>
1164 <constructor name="new_from_resource"
1165 c:identifier="gdk_pixbuf_new_from_resource"
1166 version="2.26"
1167 throws="1">
1168 <doc xml:space="preserve"
1169 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1170 line="1883">Creates a new pixbuf by loading an image from an resource.
1171
1172The file format is detected automatically. If `NULL` is returned, then
1173@error will be set.</doc>
1174 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="264"/>
1175 <return-value transfer-ownership="full" nullable="1">
1176 <doc xml:space="preserve"
1177 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1178 line="1893">A newly-created pixbuf</doc>
1179 <type name="Pixbuf" c:type="GdkPixbuf*"/>
1180 </return-value>
1181 <parameters>
1182 <parameter name="resource_path" transfer-ownership="none">
1183 <doc xml:space="preserve"
1184 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1185 line="1885">the path of the resource file</doc>
1186 <type name="utf8" c:type="const char*"/>
1187 </parameter>
1188 </parameters>
1189 </constructor>
1190 <constructor name="new_from_resource_at_scale"
1191 c:identifier="gdk_pixbuf_new_from_resource_at_scale"
1192 version="2.26"
1193 throws="1">
1194 <doc xml:space="preserve"
1195 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1196 line="1917">Creates a new pixbuf by loading an image from an resource.
1197
1198The file format is detected automatically. If `NULL` is returned, then
1199@error will be set.
1200
1201The image will be scaled to fit in the requested size, optionally
1202preserving the image's aspect ratio. When preserving the aspect ratio,
1203a @width of -1 will cause the image to be scaled to the exact given
1204height, and a @height of -1 will cause the image to be scaled to the
1205exact given width. When not preserving aspect ratio, a @width or
1206@height of -1 means to not scale the image at all in that dimension.
1207
1208The stream is not closed.</doc>
1209 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="267"/>
1210 <return-value transfer-ownership="full" nullable="1">
1211 <doc xml:space="preserve"
1212 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1213 line="1939">A newly-created pixbuf</doc>
1214 <type name="Pixbuf" c:type="GdkPixbuf*"/>
1215 </return-value>
1216 <parameters>
1217 <parameter name="resource_path" transfer-ownership="none">
1218 <doc xml:space="preserve"
1219 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1220 line="1919">the path of the resource file</doc>
1221 <type name="utf8" c:type="const char*"/>
1222 </parameter>
1223 <parameter name="width" transfer-ownership="none">
1224 <doc xml:space="preserve"
1225 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1226 line="1920">The width the image should have or -1 to not constrain the width</doc>
1227 <type name="gint" c:type="int"/>
1228 </parameter>
1229 <parameter name="height" transfer-ownership="none">
1230 <doc xml:space="preserve"
1231 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1232 line="1921">The height the image should have or -1 to not constrain the height</doc>
1233 <type name="gint" c:type="int"/>
1234 </parameter>
1235 <parameter name="preserve_aspect_ratio" transfer-ownership="none">
1236 <doc xml:space="preserve"
1237 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1238 line="1922">`TRUE` to preserve the image's aspect ratio</doc>
1239 <type name="gboolean" c:type="gboolean"/>
1240 </parameter>
1241 </parameters>
1242 </constructor>
1243 <constructor name="new_from_stream"
1244 c:identifier="gdk_pixbuf_new_from_stream"
1245 version="2.14"
1246 throws="1">
1247 <doc xml:space="preserve"
1248 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1249 line="1804">Creates a new pixbuf by loading an image from an input stream.
1250
1251The file format is detected automatically.
1252
1253If `NULL` is returned, then `error` will be set.
1254
1255The `cancellable` can be used to abort the operation from another thread.
1256If the operation was cancelled, the error `G_IO_ERROR_CANCELLED` will be
1257returned. Other possible errors are in the `GDK_PIXBUF_ERROR` and
1258`G_IO_ERROR` domains.
1259
1260The stream is not closed.</doc>
1261 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="404"/>
1262 <return-value transfer-ownership="full" nullable="1">
1263 <doc xml:space="preserve"
1264 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1265 line="1823">A newly-created pixbuf</doc>
1266 <type name="Pixbuf" c:type="GdkPixbuf*"/>
1267 </return-value>
1268 <parameters>
1269 <parameter name="stream" transfer-ownership="none">
1270 <doc xml:space="preserve"
1271 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1272 line="1806">a `GInputStream` to load the pixbuf from</doc>
1273 <type name="Gio.InputStream" c:type="GInputStream*"/>
1274 </parameter>
1275 <parameter name="cancellable"
1276 transfer-ownership="none"
1277 nullable="1"
1278 allow-none="1">
1279 <doc xml:space="preserve"
1280 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1281 line="1807">optional `GCancellable` object, `NULL` to ignore</doc>
1282 <type name="Gio.Cancellable" c:type="GCancellable*"/>
1283 </parameter>
1284 </parameters>
1285 </constructor>
1286 <constructor name="new_from_stream_at_scale"
1287 c:identifier="gdk_pixbuf_new_from_stream_at_scale"
1288 version="2.14"
1289 throws="1">
1290 <doc xml:space="preserve"
1291 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1292 line="1630">Creates a new pixbuf by loading an image from an input stream.
1293
1294The file format is detected automatically. If `NULL` is returned, then
1295@error will be set. The @cancellable can be used to abort the operation
1296from another thread. If the operation was cancelled, the error
1297`G_IO_ERROR_CANCELLED` will be returned. Other possible errors are in
1298the `GDK_PIXBUF_ERROR` and `G_IO_ERROR` domains.
1299
1300The image will be scaled to fit in the requested size, optionally
1301preserving the image's aspect ratio.
1302
1303When preserving the aspect ratio, a `width` of -1 will cause the image to be
1304scaled to the exact given height, and a `height` of -1 will cause the image
1305to be scaled to the exact given width. If both `width` and `height` are
1306given, this function will behave as if the smaller of the two values
1307is passed as -1.
1308
1309When not preserving aspect ratio, a `width` or `height` of -1 means to not
1310scale the image at all in that dimension.
1311
1312The stream is not closed.</doc>
1313 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="419"/>
1314 <return-value transfer-ownership="full" nullable="1">
1315 <doc xml:space="preserve"
1316 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1317 line="1661">A newly-created pixbuf</doc>
1318 <type name="Pixbuf" c:type="GdkPixbuf*"/>
1319 </return-value>
1320 <parameters>
1321 <parameter name="stream" transfer-ownership="none">
1322 <doc xml:space="preserve"
1323 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1324 line="1632">a `GInputStream` to load the pixbuf from</doc>
1325 <type name="Gio.InputStream" c:type="GInputStream*"/>
1326 </parameter>
1327 <parameter name="width" transfer-ownership="none">
1328 <doc xml:space="preserve"
1329 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1330 line="1633">The width the image should have or -1 to not constrain the width</doc>
1331 <type name="gint" c:type="gint"/>
1332 </parameter>
1333 <parameter name="height" transfer-ownership="none">
1334 <doc xml:space="preserve"
1335 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1336 line="1634">The height the image should have or -1 to not constrain the height</doc>
1337 <type name="gint" c:type="gint"/>
1338 </parameter>
1339 <parameter name="preserve_aspect_ratio" transfer-ownership="none">
1340 <doc xml:space="preserve"
1341 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1342 line="1635">`TRUE` to preserve the image's aspect ratio</doc>
1343 <type name="gboolean" c:type="gboolean"/>
1344 </parameter>
1345 <parameter name="cancellable"
1346 transfer-ownership="none"
1347 nullable="1"
1348 allow-none="1">
1349 <doc xml:space="preserve"
1350 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1351 line="1636">optional `GCancellable` object, `NULL` to ignore</doc>
1352 <type name="Gio.Cancellable" c:type="GCancellable*"/>
1353 </parameter>
1354 </parameters>
1355 </constructor>
1356 <constructor name="new_from_stream_finish"
1357 c:identifier="gdk_pixbuf_new_from_stream_finish"
1358 version="2.24"
1359 throws="1">
1360 <doc xml:space="preserve"
1361 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1362 line="2004">Finishes an asynchronous pixbuf creation operation started with
1363gdk_pixbuf_new_from_stream_async().</doc>
1364 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="415"/>
1365 <return-value transfer-ownership="full" nullable="1">
1366 <doc xml:space="preserve"
1367 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1368 line="2012">the newly created pixbuf</doc>
1369 <type name="Pixbuf" c:type="GdkPixbuf*"/>
1370 </return-value>
1371 <parameters>
1372 <parameter name="async_result" transfer-ownership="none">
1373 <doc xml:space="preserve"
1374 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1375 line="2006">a `GAsyncResult`</doc>
1376 <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
1377 </parameter>
1378 </parameters>
1379 </constructor>
1380 <constructor name="new_from_xpm_data"
1381 c:identifier="gdk_pixbuf_new_from_xpm_data"
1382 deprecated="1"
1383 deprecated-version="2.44">
1384 <doc xml:space="preserve"
1385 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1386 line="2238">Creates a new pixbuf by parsing XPM data in memory.
1387
1388This data is commonly the result of including an XPM file into a
1389program's C source.</doc>
1390 <doc-deprecated xml:space="preserve">Use [ctor@GdkPixbuf.Pixbuf.new_from_stream] with
1391 a [class@Gio.MemoryInputStream], making sure to handle errors in
1392 case the XPM format loader is not available</doc-deprecated>
1393 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="292"/>
1394 <return-value transfer-ownership="full" nullable="1">
1395 <doc xml:space="preserve"
1396 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1397 line="2247">A newly-created pixbuf</doc>
1398 <type name="Pixbuf" c:type="GdkPixbuf*"/>
1399 </return-value>
1400 <parameters>
1401 <parameter name="data" transfer-ownership="none">
1402 <doc xml:space="preserve"
1403 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1404 line="2240">Pointer to inline XPM data.</doc>
1405 <array c:type="const char**">
1406 <type name="utf8" c:type="char*"/>
1407 </array>
1408 </parameter>
1409 </parameters>
1410 </constructor>
1411 <function name="calculate_rowstride"
1412 c:identifier="gdk_pixbuf_calculate_rowstride"
1413 version="2.36.8">
1414 <doc xml:space="preserve"
1415 filename="gdk-pixbuf/gdk-pixbuf.c"
1416 line="557">Calculates the rowstride that an image created with those values would
1417have.
1418
1419This function is useful for front-ends and backends that want to check
1420image values without needing to create a `GdkPixbuf`.</doc>
1421 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="208"/>
1422 <return-value transfer-ownership="none">
1423 <doc xml:space="preserve"
1424 filename="gdk-pixbuf/gdk-pixbuf.c"
1425 line="571">the rowstride for the given values, or -1 in case of error.</doc>
1426 <type name="gint" c:type="gint"/>
1427 </return-value>
1428 <parameters>
1429 <parameter name="colorspace" transfer-ownership="none">
1430 <doc xml:space="preserve"
1431 filename="gdk-pixbuf/gdk-pixbuf.c"
1432 line="559">Color space for image</doc>
1433 <type name="Colorspace" c:type="GdkColorspace"/>
1434 </parameter>
1435 <parameter name="has_alpha" transfer-ownership="none">
1436 <doc xml:space="preserve"
1437 filename="gdk-pixbuf/gdk-pixbuf.c"
1438 line="560">Whether the image should have transparency information</doc>
1439 <type name="gboolean" c:type="gboolean"/>
1440 </parameter>
1441 <parameter name="bits_per_sample" transfer-ownership="none">
1442 <doc xml:space="preserve"
1443 filename="gdk-pixbuf/gdk-pixbuf.c"
1444 line="561">Number of bits per color sample</doc>
1445 <type name="gint" c:type="int"/>
1446 </parameter>
1447 <parameter name="width" transfer-ownership="none">
1448 <doc xml:space="preserve"
1449 filename="gdk-pixbuf/gdk-pixbuf.c"
1450 line="562">Width of image in pixels, must be > 0</doc>
1451 <type name="gint" c:type="int"/>
1452 </parameter>
1453 <parameter name="height" transfer-ownership="none">
1454 <doc xml:space="preserve"
1455 filename="gdk-pixbuf/gdk-pixbuf.c"
1456 line="563">Height of image in pixels, must be > 0</doc>
1457 <type name="gint" c:type="int"/>
1458 </parameter>
1459 </parameters>
1460 </function>
1461 <function name="get_file_info"
1462 c:identifier="gdk_pixbuf_get_file_info"
1463 version="2.4"
1464 glib:async-func="get_file_info_async">
1465 <doc xml:space="preserve"
1466 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1467 line="2054">Parses an image file far enough to determine its format and size.</doc>
1468 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="77"/>
1469 <return-value transfer-ownership="none" nullable="1">
1470 <doc xml:space="preserve"
1471 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1472 line="2062">A `GdkPixbufFormat` describing
1473 the image format of the file</doc>
1474 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
1475 </return-value>
1476 <parameters>
1477 <parameter name="filename" transfer-ownership="none">
1478 <doc xml:space="preserve"
1479 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1480 line="2056">The name of the file to identify.</doc>
1481 <type name="filename" c:type="const gchar*"/>
1482 </parameter>
1483 <parameter name="width"
1484 direction="out"
1485 caller-allocates="0"
1486 transfer-ownership="full"
1487 optional="1"
1488 allow-none="1">
1489 <doc xml:space="preserve"
1490 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1491 line="2057">Return location for the width of the image</doc>
1492 <type name="gint" c:type="gint*"/>
1493 </parameter>
1494 <parameter name="height"
1495 direction="out"
1496 caller-allocates="0"
1497 transfer-ownership="full"
1498 optional="1"
1499 allow-none="1">
1500 <doc xml:space="preserve"
1501 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1502 line="2058">Return location for the height of the image</doc>
1503 <type name="gint" c:type="gint*"/>
1504 </parameter>
1505 </parameters>
1506 </function>
1507 <function name="get_file_info_async"
1508 c:identifier="gdk_pixbuf_get_file_info_async"
1509 version="2.32"
1510 glib:finish-func="get_file_info_finish"
1511 glib:sync-func="get_file_info">
1512 <doc xml:space="preserve"
1513 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1514 line="2152">Asynchronously parses an image file far enough to determine its
1515format and size.
1516
1517For more details see gdk_pixbuf_get_file_info(), which is the synchronous
1518version of this function.
1519
1520When the operation is finished, @callback will be called in the
1521main thread. You can then call gdk_pixbuf_get_file_info_finish() to
1522get the result of the operation.</doc>
1523 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="81"/>
1524 <return-value transfer-ownership="none">
1525 <type name="none" c:type="void"/>
1526 </return-value>
1527 <parameters>
1528 <parameter name="filename" transfer-ownership="none">
1529 <doc xml:space="preserve"
1530 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1531 line="2154">The name of the file to identify</doc>
1532 <type name="filename" c:type="const gchar*"/>
1533 </parameter>
1534 <parameter name="cancellable"
1535 transfer-ownership="none"
1536 nullable="1"
1537 allow-none="1">
1538 <doc xml:space="preserve"
1539 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1540 line="2155">optional `GCancellable` object, `NULL` to ignore</doc>
1541 <type name="Gio.Cancellable" c:type="GCancellable*"/>
1542 </parameter>
1543 <parameter name="callback"
1544 transfer-ownership="none"
1545 nullable="1"
1546 allow-none="1"
1547 scope="async"
1548 closure="3">
1549 <doc xml:space="preserve"
1550 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1551 line="2156">a `GAsyncReadyCallback` to call when the file info is available</doc>
1552 <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1553 </parameter>
1554 <parameter name="user_data"
1555 transfer-ownership="none"
1556 nullable="1"
1557 allow-none="1">
1558 <doc xml:space="preserve"
1559 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1560 line="2157">the data to pass to the callback function</doc>
1561 <type name="gpointer" c:type="gpointer"/>
1562 </parameter>
1563 </parameters>
1564 </function>
1565 <function name="get_file_info_finish"
1566 c:identifier="gdk_pixbuf_get_file_info_finish"
1567 version="2.32"
1568 throws="1">
1569 <doc xml:space="preserve"
1570 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1571 line="2195">Finishes an asynchronous pixbuf parsing operation started with
1572gdk_pixbuf_get_file_info_async().</doc>
1573 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="86"/>
1574 <return-value transfer-ownership="none" nullable="1">
1575 <doc xml:space="preserve"
1576 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1577 line="2205">A `GdkPixbufFormat` describing the
1578 image format of the file</doc>
1579 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
1580 </return-value>
1581 <parameters>
1582 <parameter name="async_result" transfer-ownership="none">
1583 <doc xml:space="preserve"
1584 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1585 line="2197">a `GAsyncResult`</doc>
1586 <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
1587 </parameter>
1588 <parameter name="width"
1589 direction="out"
1590 caller-allocates="0"
1591 transfer-ownership="full">
1592 <doc xml:space="preserve"
1593 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1594 line="2198">Return location for the width of the image, or `NULL`</doc>
1595 <type name="gint" c:type="gint*"/>
1596 </parameter>
1597 <parameter name="height"
1598 direction="out"
1599 caller-allocates="0"
1600 transfer-ownership="full">
1601 <doc xml:space="preserve"
1602 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1603 line="2199">Return location for the height of the image, or `NULL`</doc>
1604 <type name="gint" c:type="gint*"/>
1605 </parameter>
1606 </parameters>
1607 </function>
1608 <function name="get_formats"
1609 c:identifier="gdk_pixbuf_get_formats"
1610 version="2.2">
1611 <doc xml:space="preserve"
1612 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1613 line="3520">Obtains the available information about the image formats supported
1614by GdkPixbuf.</doc>
1615 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="52"/>
1616 <return-value transfer-ownership="container">
1617 <doc xml:space="preserve"
1618 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1619 line="3526">A list of
1620 support image formats.</doc>
1621 <type name="GLib.SList" c:type="GSList*">
1622 <type name="PixbufFormat"/>
1623 </type>
1624 </return-value>
1625 </function>
1626 <function name="init_modules"
1627 c:identifier="gdk_pixbuf_init_modules"
1628 version="2.40"
1629 throws="1">
1630 <doc xml:space="preserve"
1631 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1632 line="563">Initalizes the gdk-pixbuf loader modules referenced by the `loaders.cache`
1633file present inside that directory.
1634
1635This is to be used by applications that want to ship certain loaders
1636in a different location from the system ones.
1637
1638This is needed when the OS or runtime ships a minimal number of loaders
1639so as to reduce the potential attack surface of carefully crafted image
1640files, especially for uncommon file types. Applications that require
1641broader image file types coverage, such as image viewers, would be
1642expected to ship the gdk-pixbuf modules in a separate location, bundled
1643with the application in a separate directory from the OS or runtime-
1644provided modules.</doc>
1645 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="45"/>
1646 <return-value transfer-ownership="none">
1647 <type name="gboolean" c:type="gboolean"/>
1648 </return-value>
1649 <parameters>
1650 <parameter name="path" transfer-ownership="none">
1651 <doc xml:space="preserve"
1652 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1653 line="565">Path to directory where the `loaders.cache` is installed</doc>
1654 <type name="utf8" c:type="const char*"/>
1655 </parameter>
1656 </parameters>
1657 </function>
1658 <function name="new_from_stream_async"
1659 c:identifier="gdk_pixbuf_new_from_stream_async"
1660 version="2.24"
1661 glib:finish-func="gdk_pixbuf_new_from_stream_finish">
1662 <doc xml:space="preserve"
1663 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1664 line="1962">Creates a new pixbuf by asynchronously loading an image from an input stream.
1665
1666For more details see gdk_pixbuf_new_from_stream(), which is the synchronous
1667version of this function.
1668
1669When the operation is finished, @callback will be called in the main thread.
1670You can then call gdk_pixbuf_new_from_stream_finish() to get the result of
1671the operation.</doc>
1672 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="409"/>
1673 <return-value transfer-ownership="none">
1674 <type name="none" c:type="void"/>
1675 </return-value>
1676 <parameters>
1677 <parameter name="stream" transfer-ownership="none">
1678 <doc xml:space="preserve"
1679 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1680 line="1964">a `GInputStream` from which to load the pixbuf</doc>
1681 <type name="Gio.InputStream" c:type="GInputStream*"/>
1682 </parameter>
1683 <parameter name="cancellable"
1684 transfer-ownership="none"
1685 nullable="1"
1686 allow-none="1">
1687 <doc xml:space="preserve"
1688 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1689 line="1965">optional `GCancellable` object, `NULL` to ignore</doc>
1690 <type name="Gio.Cancellable" c:type="GCancellable*"/>
1691 </parameter>
1692 <parameter name="callback"
1693 transfer-ownership="none"
1694 nullable="1"
1695 allow-none="1"
1696 scope="async"
1697 closure="3">
1698 <doc xml:space="preserve"
1699 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1700 line="1966">a `GAsyncReadyCallback` to call when the pixbuf is loaded</doc>
1701 <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1702 </parameter>
1703 <parameter name="user_data"
1704 transfer-ownership="none"
1705 nullable="1"
1706 allow-none="1">
1707 <doc xml:space="preserve"
1708 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1709 line="1967">the data to pass to the callback function</doc>
1710 <type name="gpointer" c:type="gpointer"/>
1711 </parameter>
1712 </parameters>
1713 </function>
1714 <function name="new_from_stream_at_scale_async"
1715 c:identifier="gdk_pixbuf_new_from_stream_at_scale_async"
1716 version="2.24"
1717 glib:finish-func="gdk_pixbuf_new_from_stream_finish">
1718 <doc xml:space="preserve"
1719 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1720 line="1742">Creates a new pixbuf by asynchronously loading an image from an input stream.
1721
1722For more details see gdk_pixbuf_new_from_stream_at_scale(), which is the synchronous
1723version of this function.
1724
1725When the operation is finished, @callback will be called in the main thread.
1726You can then call gdk_pixbuf_new_from_stream_finish() to get the result of the operation.</doc>
1727 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="427"/>
1728 <return-value transfer-ownership="none">
1729 <type name="none" c:type="void"/>
1730 </return-value>
1731 <parameters>
1732 <parameter name="stream" transfer-ownership="none">
1733 <doc xml:space="preserve"
1734 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1735 line="1744">a `GInputStream` from which to load the pixbuf</doc>
1736 <type name="Gio.InputStream" c:type="GInputStream*"/>
1737 </parameter>
1738 <parameter name="width" transfer-ownership="none">
1739 <doc xml:space="preserve"
1740 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1741 line="1745">the width the image should have or -1 to not constrain the width</doc>
1742 <type name="gint" c:type="gint"/>
1743 </parameter>
1744 <parameter name="height" transfer-ownership="none">
1745 <doc xml:space="preserve"
1746 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1747 line="1746">the height the image should have or -1 to not constrain the height</doc>
1748 <type name="gint" c:type="gint"/>
1749 </parameter>
1750 <parameter name="preserve_aspect_ratio" transfer-ownership="none">
1751 <doc xml:space="preserve"
1752 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1753 line="1747">`TRUE` to preserve the image's aspect ratio</doc>
1754 <type name="gboolean" c:type="gboolean"/>
1755 </parameter>
1756 <parameter name="cancellable"
1757 transfer-ownership="none"
1758 nullable="1"
1759 allow-none="1">
1760 <doc xml:space="preserve"
1761 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1762 line="1748">optional `GCancellable` object, `NULL` to ignore</doc>
1763 <type name="Gio.Cancellable" c:type="GCancellable*"/>
1764 </parameter>
1765 <parameter name="callback"
1766 transfer-ownership="none"
1767 nullable="1"
1768 allow-none="1"
1769 scope="async"
1770 closure="6">
1771 <doc xml:space="preserve"
1772 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1773 line="1749">a `GAsyncReadyCallback` to call when the pixbuf is loaded</doc>
1774 <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
1775 </parameter>
1776 <parameter name="user_data"
1777 transfer-ownership="none"
1778 nullable="1"
1779 allow-none="1">
1780 <doc xml:space="preserve"
1781 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1782 line="1750">the data to pass to the callback function</doc>
1783 <type name="gpointer" c:type="gpointer"/>
1784 </parameter>
1785 </parameters>
1786 </function>
1787 <function name="save_to_stream_finish"
1788 c:identifier="gdk_pixbuf_save_to_stream_finish"
1789 version="2.24"
1790 throws="1">
1791 <doc xml:space="preserve"
1792 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1793 line="3293">Finishes an asynchronous pixbuf save operation started with
1794gdk_pixbuf_save_to_stream_async().</doc>
1795 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="453"/>
1796 <return-value transfer-ownership="none">
1797 <doc xml:space="preserve"
1798 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1799 line="3301">`TRUE` if the pixbuf was saved successfully, `FALSE` if an error was set.</doc>
1800 <type name="gboolean" c:type="gboolean"/>
1801 </return-value>
1802 <parameters>
1803 <parameter name="async_result" transfer-ownership="none">
1804 <doc xml:space="preserve"
1805 filename="gdk-pixbuf/gdk-pixbuf-io.c"
1806 line="3295">a `GAsyncResult`</doc>
1807 <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
1808 </parameter>
1809 </parameters>
1810 </function>
1811 <method name="add_alpha" c:identifier="gdk_pixbuf_add_alpha">
1812 <doc xml:space="preserve"
1813 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1814 line="29">Takes an existing pixbuf and adds an alpha channel to it.
1815
1816If the existing pixbuf already had an alpha channel, the channel
1817values are copied from the original; otherwise, the alpha channel
1818is initialized to 255 (full opacity).
1819
1820If `substitute_color` is `TRUE`, then the color specified by the
1821(`r`, `g`, `b`) arguments will be assigned zero opacity. That is,
1822if you pass `(255, 255, 255)` for the substitute color, all white
1823pixels will become fully transparent.
1824
1825If `substitute_color` is `FALSE`, then the (`r`, `g`, `b`) arguments
1826will be ignored.</doc>
1827 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="477"/>
1828 <return-value transfer-ownership="full" nullable="1">
1829 <doc xml:space="preserve"
1830 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1831 line="51">A newly-created pixbuf</doc>
1832 <type name="Pixbuf" c:type="GdkPixbuf*"/>
1833 </return-value>
1834 <parameters>
1835 <instance-parameter name="pixbuf" transfer-ownership="none">
1836 <doc xml:space="preserve"
1837 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1838 line="31">A #GdkPixbuf.</doc>
1839 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
1840 </instance-parameter>
1841 <parameter name="substitute_color" transfer-ownership="none">
1842 <doc xml:space="preserve"
1843 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1844 line="32">Whether to set a color to zero opacity.</doc>
1845 <type name="gboolean" c:type="gboolean"/>
1846 </parameter>
1847 <parameter name="r" transfer-ownership="none">
1848 <doc xml:space="preserve"
1849 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1850 line="33">Red value to substitute.</doc>
1851 <type name="guint8" c:type="guchar"/>
1852 </parameter>
1853 <parameter name="g" transfer-ownership="none">
1854 <doc xml:space="preserve"
1855 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1856 line="34">Green value to substitute.</doc>
1857 <type name="guint8" c:type="guchar"/>
1858 </parameter>
1859 <parameter name="b" transfer-ownership="none">
1860 <doc xml:space="preserve"
1861 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1862 line="35">Blue value to substitute.</doc>
1863 <type name="guint8" c:type="guchar"/>
1864 </parameter>
1865 </parameters>
1866 </method>
1867 <method name="apply_embedded_orientation"
1868 c:identifier="gdk_pixbuf_apply_embedded_orientation"
1869 version="2.12">
1870 <doc xml:space="preserve"
1871 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1872 line="273">Takes an existing pixbuf and checks for the presence of an
1873associated "orientation" option.
1874
1875The orientation option may be provided by the JPEG loader (which
1876reads the exif orientation tag) or the TIFF loader (which reads
1877the TIFF orientation tag, and compensates it for the partial
1878transforms performed by libtiff).
1879
1880If an orientation option/tag is present, the appropriate transform
1881will be performed so that the pixbuf is oriented correctly.</doc>
1882 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="497"/>
1883 <return-value transfer-ownership="full" nullable="1">
1884 <doc xml:space="preserve"
1885 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1886 line="288">A newly-created pixbuf</doc>
1887 <type name="Pixbuf" c:type="GdkPixbuf*"/>
1888 </return-value>
1889 <parameters>
1890 <instance-parameter name="src" transfer-ownership="none">
1891 <doc xml:space="preserve"
1892 filename="gdk-pixbuf/gdk-pixbuf-util.c"
1893 line="275">a pixbuf with an orientation option</doc>
1894 <type name="Pixbuf" c:type="GdkPixbuf*"/>
1895 </instance-parameter>
1896 </parameters>
1897 </method>
1898 <method name="composite" c:identifier="gdk_pixbuf_composite">
1899 <doc xml:space="preserve"
1900 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1901 line="91">Creates a transformation of the source image @src by scaling by
1902@scale_x and @scale_y then translating by @offset_x and @offset_y.
1903
1904This gives an image in the coordinates of the destination pixbuf.
1905The rectangle (@dest_x, @dest_y, @dest_width, @dest_height)
1906is then alpha blended onto the corresponding rectangle of the
1907original destination image.
1908
1909When the destination rectangle contains parts not in the source
1910image, the data at the edges of the source image is replicated
1911to infinity.
1912
1913</doc>
1914 <source-position filename="gdk-pixbuf/gdk-pixbuf-transform.h"
1915 line="111"/>
1916 <return-value transfer-ownership="none">
1917 <type name="none" c:type="void"/>
1918 </return-value>
1919 <parameters>
1920 <instance-parameter name="src" transfer-ownership="none">
1921 <doc xml:space="preserve"
1922 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1923 line="93">a #GdkPixbuf</doc>
1924 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
1925 </instance-parameter>
1926 <parameter name="dest" transfer-ownership="none">
1927 <doc xml:space="preserve"
1928 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1929 line="94">the #GdkPixbuf into which to render the results</doc>
1930 <type name="Pixbuf" c:type="GdkPixbuf*"/>
1931 </parameter>
1932 <parameter name="dest_x" transfer-ownership="none">
1933 <doc xml:space="preserve"
1934 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1935 line="95">the left coordinate for region to render</doc>
1936 <type name="gint" c:type="int"/>
1937 </parameter>
1938 <parameter name="dest_y" transfer-ownership="none">
1939 <doc xml:space="preserve"
1940 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1941 line="96">the top coordinate for region to render</doc>
1942 <type name="gint" c:type="int"/>
1943 </parameter>
1944 <parameter name="dest_width" transfer-ownership="none">
1945 <doc xml:space="preserve"
1946 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1947 line="97">the width of the region to render</doc>
1948 <type name="gint" c:type="int"/>
1949 </parameter>
1950 <parameter name="dest_height" transfer-ownership="none">
1951 <doc xml:space="preserve"
1952 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1953 line="98">the height of the region to render</doc>
1954 <type name="gint" c:type="int"/>
1955 </parameter>
1956 <parameter name="offset_x" transfer-ownership="none">
1957 <doc xml:space="preserve"
1958 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1959 line="99">the offset in the X direction (currently rounded to an integer)</doc>
1960 <type name="gdouble" c:type="double"/>
1961 </parameter>
1962 <parameter name="offset_y" transfer-ownership="none">
1963 <doc xml:space="preserve"
1964 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1965 line="100">the offset in the Y direction (currently rounded to an integer)</doc>
1966 <type name="gdouble" c:type="double"/>
1967 </parameter>
1968 <parameter name="scale_x" transfer-ownership="none">
1969 <doc xml:space="preserve"
1970 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1971 line="101">the scale factor in the X direction</doc>
1972 <type name="gdouble" c:type="double"/>
1973 </parameter>
1974 <parameter name="scale_y" transfer-ownership="none">
1975 <doc xml:space="preserve"
1976 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1977 line="102">the scale factor in the Y direction</doc>
1978 <type name="gdouble" c:type="double"/>
1979 </parameter>
1980 <parameter name="interp_type" transfer-ownership="none">
1981 <doc xml:space="preserve"
1982 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1983 line="103">the interpolation type for the transformation.</doc>
1984 <type name="InterpType" c:type="GdkInterpType"/>
1985 </parameter>
1986 <parameter name="overall_alpha" transfer-ownership="none">
1987 <doc xml:space="preserve"
1988 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1989 line="104">overall alpha for source image (0..255)</doc>
1990 <type name="gint" c:type="int"/>
1991 </parameter>
1992 </parameters>
1993 </method>
1994 <method name="composite_color" c:identifier="gdk_pixbuf_composite_color">
1995 <doc xml:space="preserve"
1996 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
1997 line="158">Creates a transformation of the source image @src by scaling by
1998@scale_x and @scale_y then translating by @offset_x and @offset_y,
1999then alpha blends the rectangle (@dest_x ,@dest_y, @dest_width,
2000@dest_height) of the resulting image with a checkboard of the
2001colors @color1 and @color2 and renders it onto the destination
2002image.
2003
2004If the source image has no alpha channel, and @overall_alpha is 255, a fast
2005path is used which omits the alpha blending and just performs the scaling.
2006
2007See gdk_pixbuf_composite_color_simple() for a simpler variant of this
2008function suitable for many tasks.</doc>
2009 <source-position filename="gdk-pixbuf/gdk-pixbuf-transform.h"
2010 line="124"/>
2011 <return-value transfer-ownership="none">
2012 <type name="none" c:type="void"/>
2013 </return-value>
2014 <parameters>
2015 <instance-parameter name="src" transfer-ownership="none">
2016 <doc xml:space="preserve"
2017 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2018 line="160">a #GdkPixbuf</doc>
2019 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2020 </instance-parameter>
2021 <parameter name="dest" transfer-ownership="none">
2022 <doc xml:space="preserve"
2023 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2024 line="161">the #GdkPixbuf into which to render the results</doc>
2025 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2026 </parameter>
2027 <parameter name="dest_x" transfer-ownership="none">
2028 <doc xml:space="preserve"
2029 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2030 line="162">the left coordinate for region to render</doc>
2031 <type name="gint" c:type="int"/>
2032 </parameter>
2033 <parameter name="dest_y" transfer-ownership="none">
2034 <doc xml:space="preserve"
2035 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2036 line="163">the top coordinate for region to render</doc>
2037 <type name="gint" c:type="int"/>
2038 </parameter>
2039 <parameter name="dest_width" transfer-ownership="none">
2040 <doc xml:space="preserve"
2041 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2042 line="164">the width of the region to render</doc>
2043 <type name="gint" c:type="int"/>
2044 </parameter>
2045 <parameter name="dest_height" transfer-ownership="none">
2046 <doc xml:space="preserve"
2047 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2048 line="165">the height of the region to render</doc>
2049 <type name="gint" c:type="int"/>
2050 </parameter>
2051 <parameter name="offset_x" transfer-ownership="none">
2052 <doc xml:space="preserve"
2053 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2054 line="166">the offset in the X direction (currently rounded to an integer)</doc>
2055 <type name="gdouble" c:type="double"/>
2056 </parameter>
2057 <parameter name="offset_y" transfer-ownership="none">
2058 <doc xml:space="preserve"
2059 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2060 line="167">the offset in the Y direction (currently rounded to an integer)</doc>
2061 <type name="gdouble" c:type="double"/>
2062 </parameter>
2063 <parameter name="scale_x" transfer-ownership="none">
2064 <doc xml:space="preserve"
2065 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2066 line="168">the scale factor in the X direction</doc>
2067 <type name="gdouble" c:type="double"/>
2068 </parameter>
2069 <parameter name="scale_y" transfer-ownership="none">
2070 <doc xml:space="preserve"
2071 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2072 line="169">the scale factor in the Y direction</doc>
2073 <type name="gdouble" c:type="double"/>
2074 </parameter>
2075 <parameter name="interp_type" transfer-ownership="none">
2076 <doc xml:space="preserve"
2077 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2078 line="170">the interpolation type for the transformation.</doc>
2079 <type name="InterpType" c:type="GdkInterpType"/>
2080 </parameter>
2081 <parameter name="overall_alpha" transfer-ownership="none">
2082 <doc xml:space="preserve"
2083 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2084 line="171">overall alpha for source image (0..255)</doc>
2085 <type name="gint" c:type="int"/>
2086 </parameter>
2087 <parameter name="check_x" transfer-ownership="none">
2088 <doc xml:space="preserve"
2089 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2090 line="172">the X offset for the checkboard (origin of checkboard is at -@check_x, -@check_y)</doc>
2091 <type name="gint" c:type="int"/>
2092 </parameter>
2093 <parameter name="check_y" transfer-ownership="none">
2094 <doc xml:space="preserve"
2095 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2096 line="173">the Y offset for the checkboard</doc>
2097 <type name="gint" c:type="int"/>
2098 </parameter>
2099 <parameter name="check_size" transfer-ownership="none">
2100 <doc xml:space="preserve"
2101 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2102 line="174">the size of checks in the checkboard (must be a power of two)</doc>
2103 <type name="gint" c:type="int"/>
2104 </parameter>
2105 <parameter name="color1" transfer-ownership="none">
2106 <doc xml:space="preserve"
2107 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2108 line="175">the color of check at upper left</doc>
2109 <type name="guint32" c:type="guint32"/>
2110 </parameter>
2111 <parameter name="color2" transfer-ownership="none">
2112 <doc xml:space="preserve"
2113 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2114 line="176">the color of the other check</doc>
2115 <type name="guint32" c:type="guint32"/>
2116 </parameter>
2117 </parameters>
2118 </method>
2119 <method name="composite_color_simple"
2120 c:identifier="gdk_pixbuf_composite_color_simple">
2121 <doc xml:space="preserve"
2122 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2123 line="292">Creates a new pixbuf by scaling `src` to `dest_width` x `dest_height`
2124and alpha blending the result with a checkboard of colors `color1`
2125and `color2`.</doc>
2126 <source-position filename="gdk-pixbuf/gdk-pixbuf-transform.h"
2127 line="149"/>
2128 <return-value transfer-ownership="full" nullable="1">
2129 <doc xml:space="preserve"
2130 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2131 line="307">the new pixbuf</doc>
2132 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2133 </return-value>
2134 <parameters>
2135 <instance-parameter name="src" transfer-ownership="none">
2136 <doc xml:space="preserve"
2137 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2138 line="294">a #GdkPixbuf</doc>
2139 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2140 </instance-parameter>
2141 <parameter name="dest_width" transfer-ownership="none">
2142 <doc xml:space="preserve"
2143 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2144 line="295">the width of destination image</doc>
2145 <type name="gint" c:type="int"/>
2146 </parameter>
2147 <parameter name="dest_height" transfer-ownership="none">
2148 <doc xml:space="preserve"
2149 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2150 line="296">the height of destination image</doc>
2151 <type name="gint" c:type="int"/>
2152 </parameter>
2153 <parameter name="interp_type" transfer-ownership="none">
2154 <doc xml:space="preserve"
2155 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2156 line="297">the interpolation type for the transformation.</doc>
2157 <type name="InterpType" c:type="GdkInterpType"/>
2158 </parameter>
2159 <parameter name="overall_alpha" transfer-ownership="none">
2160 <doc xml:space="preserve"
2161 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2162 line="298">overall alpha for source image (0..255)</doc>
2163 <type name="gint" c:type="int"/>
2164 </parameter>
2165 <parameter name="check_size" transfer-ownership="none">
2166 <doc xml:space="preserve"
2167 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2168 line="299">the size of checks in the checkboard (must be a power of two)</doc>
2169 <type name="gint" c:type="int"/>
2170 </parameter>
2171 <parameter name="color1" transfer-ownership="none">
2172 <doc xml:space="preserve"
2173 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2174 line="300">the color of check at upper left</doc>
2175 <type name="guint32" c:type="guint32"/>
2176 </parameter>
2177 <parameter name="color2" transfer-ownership="none">
2178 <doc xml:space="preserve"
2179 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2180 line="301">the color of the other check</doc>
2181 <type name="guint32" c:type="guint32"/>
2182 </parameter>
2183 </parameters>
2184 </method>
2185 <method name="copy" c:identifier="gdk_pixbuf_copy">
2186 <doc xml:space="preserve"
2187 filename="gdk-pixbuf/gdk-pixbuf.c"
2188 line="643">Creates a new `GdkPixbuf` with a copy of the information in the specified
2189`pixbuf`.
2190
2191Note that this does not copy the options set on the original `GdkPixbuf`,
2192use gdk_pixbuf_copy_options() for this.</doc>
2193 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="216"/>
2194 <return-value transfer-ownership="full" nullable="1">
2195 <doc xml:space="preserve"
2196 filename="gdk-pixbuf/gdk-pixbuf.c"
2197 line="653">A newly-created pixbuf</doc>
2198 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2199 </return-value>
2200 <parameters>
2201 <instance-parameter name="pixbuf" transfer-ownership="none">
2202 <doc xml:space="preserve"
2203 filename="gdk-pixbuf/gdk-pixbuf.c"
2204 line="645">A pixbuf.</doc>
2205 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2206 </instance-parameter>
2207 </parameters>
2208 </method>
2209 <method name="copy_area" c:identifier="gdk_pixbuf_copy_area">
2210 <doc xml:space="preserve"
2211 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2212 line="121">Copies a rectangular area from `src_pixbuf` to `dest_pixbuf`.
2213
2214Conversion of pixbuf formats is done automatically.
2215
2216If the source rectangle overlaps the destination rectangle on the
2217same pixbuf, it will be overwritten during the copy operation.
2218Therefore, you can not use this function to scroll a pixbuf.</doc>
2219 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="482"/>
2220 <return-value transfer-ownership="none">
2221 <type name="none" c:type="void"/>
2222 </return-value>
2223 <parameters>
2224 <instance-parameter name="src_pixbuf" transfer-ownership="none">
2225 <doc xml:space="preserve"
2226 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2227 line="123">Source pixbuf.</doc>
2228 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2229 </instance-parameter>
2230 <parameter name="src_x" transfer-ownership="none">
2231 <doc xml:space="preserve"
2232 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2233 line="124">Source X coordinate within @src_pixbuf.</doc>
2234 <type name="gint" c:type="int"/>
2235 </parameter>
2236 <parameter name="src_y" transfer-ownership="none">
2237 <doc xml:space="preserve"
2238 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2239 line="125">Source Y coordinate within @src_pixbuf.</doc>
2240 <type name="gint" c:type="int"/>
2241 </parameter>
2242 <parameter name="width" transfer-ownership="none">
2243 <doc xml:space="preserve"
2244 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2245 line="126">Width of the area to copy.</doc>
2246 <type name="gint" c:type="int"/>
2247 </parameter>
2248 <parameter name="height" transfer-ownership="none">
2249 <doc xml:space="preserve"
2250 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2251 line="127">Height of the area to copy.</doc>
2252 <type name="gint" c:type="int"/>
2253 </parameter>
2254 <parameter name="dest_pixbuf" transfer-ownership="none">
2255 <doc xml:space="preserve"
2256 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2257 line="128">Destination pixbuf.</doc>
2258 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2259 </parameter>
2260 <parameter name="dest_x" transfer-ownership="none">
2261 <doc xml:space="preserve"
2262 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2263 line="129">X coordinate within @dest_pixbuf.</doc>
2264 <type name="gint" c:type="int"/>
2265 </parameter>
2266 <parameter name="dest_y" transfer-ownership="none">
2267 <doc xml:space="preserve"
2268 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2269 line="130">Y coordinate within @dest_pixbuf.</doc>
2270 <type name="gint" c:type="int"/>
2271 </parameter>
2272 </parameters>
2273 </method>
2274 <method name="copy_options"
2275 c:identifier="gdk_pixbuf_copy_options"
2276 version="2.36">
2277 <doc xml:space="preserve"
2278 filename="gdk-pixbuf/gdk-pixbuf.c"
2279 line="1311">Copies the key/value pair options attached to a `GdkPixbuf` to another
2280`GdkPixbuf`.
2281
2282This is useful to keep original metadata after having manipulated
2283a file. However be careful to remove metadata which you've already
2284applied, such as the "orientation" option after rotating the image.</doc>
2285 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="513"/>
2286 <return-value transfer-ownership="none">
2287 <doc xml:space="preserve"
2288 filename="gdk-pixbuf/gdk-pixbuf.c"
2289 line="1323">`TRUE` on success.</doc>
2290 <type name="gboolean" c:type="gboolean"/>
2291 </return-value>
2292 <parameters>
2293 <instance-parameter name="src_pixbuf" transfer-ownership="none">
2294 <doc xml:space="preserve"
2295 filename="gdk-pixbuf/gdk-pixbuf.c"
2296 line="1313">the source pixbuf</doc>
2297 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2298 </instance-parameter>
2299 <parameter name="dest_pixbuf" transfer-ownership="none">
2300 <doc xml:space="preserve"
2301 filename="gdk-pixbuf/gdk-pixbuf.c"
2302 line="1314">the destination pixbuf</doc>
2303 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2304 </parameter>
2305 </parameters>
2306 </method>
2307 <method name="fill" c:identifier="gdk_pixbuf_fill">
2308 <doc xml:space="preserve"
2309 filename="gdk-pixbuf/gdk-pixbuf.c"
2310 line="1043">Clears a pixbuf to the given RGBA value, converting the RGBA value into
2311the pixbuf's pixel format.
2312
2313The alpha component will be ignored if the pixbuf doesn't have an alpha
2314channel.</doc>
2315 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="301"/>
2316 <return-value transfer-ownership="none">
2317 <type name="none" c:type="void"/>
2318 </return-value>
2319 <parameters>
2320 <instance-parameter name="pixbuf" transfer-ownership="none">
2321 <doc xml:space="preserve"
2322 filename="gdk-pixbuf/gdk-pixbuf.c"
2323 line="1045">a `GdkPixbuf`</doc>
2324 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2325 </instance-parameter>
2326 <parameter name="pixel" transfer-ownership="none">
2327 <doc xml:space="preserve"
2328 filename="gdk-pixbuf/gdk-pixbuf.c"
2329 line="1046">RGBA pixel to used to clear (`0xffffffff` is opaque white,
2330 `0x00000000` transparent black)</doc>
2331 <type name="guint32" c:type="guint32"/>
2332 </parameter>
2333 </parameters>
2334 </method>
2335 <method name="flip" c:identifier="gdk_pixbuf_flip" version="2.6">
2336 <doc xml:space="preserve"
2337 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2338 line="446">Flips a pixbuf horizontally or vertically and returns the
2339result in a new pixbuf.</doc>
2340 <source-position filename="gdk-pixbuf/gdk-pixbuf-transform.h"
2341 line="162"/>
2342 <return-value transfer-ownership="full" nullable="1">
2343 <doc xml:space="preserve"
2344 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2345 line="454">the new pixbuf</doc>
2346 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2347 </return-value>
2348 <parameters>
2349 <instance-parameter name="src" transfer-ownership="none">
2350 <doc xml:space="preserve"
2351 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2352 line="448">a #GdkPixbuf</doc>
2353 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2354 </instance-parameter>
2355 <parameter name="horizontal" transfer-ownership="none">
2356 <doc xml:space="preserve"
2357 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2358 line="449">`TRUE` to flip horizontally, `FALSE` to flip vertically</doc>
2359 <type name="gboolean" c:type="gboolean"/>
2360 </parameter>
2361 </parameters>
2362 </method>
2363 <method name="get_bits_per_sample"
2364 c:identifier="gdk_pixbuf_get_bits_per_sample"
2365 glib:get-property="bits-per-sample">
2366 <doc xml:space="preserve"
2367 filename="gdk-pixbuf/gdk-pixbuf.c"
2368 line="795">Queries the number of bits per color sample in a pixbuf.</doc>
2369 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="178"/>
2370 <return-value transfer-ownership="none">
2371 <doc xml:space="preserve"
2372 filename="gdk-pixbuf/gdk-pixbuf.c"
2373 line="801">Number of bits per color sample.</doc>
2374 <type name="gint" c:type="int"/>
2375 </return-value>
2376 <parameters>
2377 <instance-parameter name="pixbuf" transfer-ownership="none">
2378 <doc xml:space="preserve"
2379 filename="gdk-pixbuf/gdk-pixbuf.c"
2380 line="797">A pixbuf.</doc>
2381 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2382 </instance-parameter>
2383 </parameters>
2384 </method>
2385 <method name="get_byte_length"
2386 c:identifier="gdk_pixbuf_get_byte_length"
2387 version="2.26">
2388 <doc xml:space="preserve"
2389 filename="gdk-pixbuf/gdk-pixbuf.c"
2390 line="1008">Returns the length of the pixel data, in bytes.</doc>
2391 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="188"/>
2392 <return-value transfer-ownership="none">
2393 <doc xml:space="preserve"
2394 filename="gdk-pixbuf/gdk-pixbuf.c"
2395 line="1014">The length of the pixel data.</doc>
2396 <type name="gsize" c:type="gsize"/>
2397 </return-value>
2398 <parameters>
2399 <instance-parameter name="pixbuf" transfer-ownership="none">
2400 <doc xml:space="preserve"
2401 filename="gdk-pixbuf/gdk-pixbuf.c"
2402 line="1010">A pixbuf</doc>
2403 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2404 </instance-parameter>
2405 </parameters>
2406 </method>
2407 <method name="get_colorspace"
2408 c:identifier="gdk_pixbuf_get_colorspace"
2409 glib:get-property="colorspace">
2410 <doc xml:space="preserve"
2411 filename="gdk-pixbuf/gdk-pixbuf.c"
2412 line="747">Queries the color space of a pixbuf.</doc>
2413 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="172"/>
2414 <return-value transfer-ownership="none">
2415 <doc xml:space="preserve"
2416 filename="gdk-pixbuf/gdk-pixbuf.c"
2417 line="753">Color space.</doc>
2418 <type name="Colorspace" c:type="GdkColorspace"/>
2419 </return-value>
2420 <parameters>
2421 <instance-parameter name="pixbuf" transfer-ownership="none">
2422 <doc xml:space="preserve"
2423 filename="gdk-pixbuf/gdk-pixbuf.c"
2424 line="749">A pixbuf.</doc>
2425 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2426 </instance-parameter>
2427 </parameters>
2428 </method>
2429 <method name="get_has_alpha"
2430 c:identifier="gdk_pixbuf_get_has_alpha"
2431 glib:get-property="has-alpha">
2432 <doc xml:space="preserve"
2433 filename="gdk-pixbuf/gdk-pixbuf.c"
2434 line="779">Queries whether a pixbuf has an alpha channel (opacity information).</doc>
2435 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="176"/>
2436 <return-value transfer-ownership="none">
2437 <doc xml:space="preserve"
2438 filename="gdk-pixbuf/gdk-pixbuf.c"
2439 line="785">`TRUE` if it has an alpha channel, `FALSE` otherwise.</doc>
2440 <type name="gboolean" c:type="gboolean"/>
2441 </return-value>
2442 <parameters>
2443 <instance-parameter name="pixbuf" transfer-ownership="none">
2444 <doc xml:space="preserve"
2445 filename="gdk-pixbuf/gdk-pixbuf.c"
2446 line="781">A pixbuf.</doc>
2447 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2448 </instance-parameter>
2449 </parameters>
2450 </method>
2451 <method name="get_height"
2452 c:identifier="gdk_pixbuf_get_height"
2453 glib:get-property="height">
2454 <doc xml:space="preserve"
2455 filename="gdk-pixbuf/gdk-pixbuf.c"
2456 line="975">Queries the height of a pixbuf.</doc>
2457 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="184"/>
2458 <return-value transfer-ownership="none">
2459 <doc xml:space="preserve"
2460 filename="gdk-pixbuf/gdk-pixbuf.c"
2461 line="981">Height in pixels.</doc>
2462 <type name="gint" c:type="int"/>
2463 </return-value>
2464 <parameters>
2465 <instance-parameter name="pixbuf" transfer-ownership="none">
2466 <doc xml:space="preserve"
2467 filename="gdk-pixbuf/gdk-pixbuf.c"
2468 line="977">A pixbuf.</doc>
2469 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2470 </instance-parameter>
2471 </parameters>
2472 </method>
2473 <method name="get_n_channels"
2474 c:identifier="gdk_pixbuf_get_n_channels"
2475 glib:get-property="n-channels">
2476 <doc xml:space="preserve"
2477 filename="gdk-pixbuf/gdk-pixbuf.c"
2478 line="763">Queries the number of channels of a pixbuf.</doc>
2479 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="174"/>
2480 <return-value transfer-ownership="none">
2481 <doc xml:space="preserve"
2482 filename="gdk-pixbuf/gdk-pixbuf.c"
2483 line="769">Number of channels.</doc>
2484 <type name="gint" c:type="int"/>
2485 </return-value>
2486 <parameters>
2487 <instance-parameter name="pixbuf" transfer-ownership="none">
2488 <doc xml:space="preserve"
2489 filename="gdk-pixbuf/gdk-pixbuf.c"
2490 line="765">A pixbuf.</doc>
2491 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2492 </instance-parameter>
2493 </parameters>
2494 </method>
2495 <method name="get_option" c:identifier="gdk_pixbuf_get_option">
2496 <doc xml:space="preserve"
2497 filename="gdk-pixbuf/gdk-pixbuf.c"
2498 line="1111">Looks up @key in the list of options that may have been attached to the
2499@pixbuf when it was loaded, or that may have been attached by another
2500function using gdk_pixbuf_set_option().
2501
2502For instance, the ANI loader provides "Title" and "Artist" options.
2503The ICO, XBM, and XPM loaders provide "x_hot" and "y_hot" hot-spot
2504options for cursor definitions. The PNG loader provides the tEXt ancillary
2505chunk key/value pairs as options. Since 2.12, the TIFF and JPEG loaders
2506return an "orientation" option string that corresponds to the embedded
2507TIFF/Exif orientation tag (if present). Since 2.32, the TIFF loader sets
2508the "multipage" option string to "yes" when a multi-page TIFF is loaded.
2509Since 2.32 the JPEG and PNG loaders set "x-dpi" and "y-dpi" if the file
2510contains image density information in dots per inch.
2511Since 2.36.6, the JPEG loader sets the "comment" option with the comment
2512EXIF tag.</doc>
2513 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="505"/>
2514 <return-value transfer-ownership="none" nullable="1">
2515 <doc xml:space="preserve"
2516 filename="gdk-pixbuf/gdk-pixbuf.c"
2517 line="1132">the value associated with `key`</doc>
2518 <type name="utf8" c:type="const gchar*"/>
2519 </return-value>
2520 <parameters>
2521 <instance-parameter name="pixbuf" transfer-ownership="none">
2522 <doc xml:space="preserve"
2523 filename="gdk-pixbuf/gdk-pixbuf.c"
2524 line="1113">a `GdkPixbuf`</doc>
2525 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2526 </instance-parameter>
2527 <parameter name="key" transfer-ownership="none">
2528 <doc xml:space="preserve"
2529 filename="gdk-pixbuf/gdk-pixbuf.c"
2530 line="1114">a nul-terminated string.</doc>
2531 <type name="utf8" c:type="const gchar*"/>
2532 </parameter>
2533 </parameters>
2534 </method>
2535 <method name="get_options"
2536 c:identifier="gdk_pixbuf_get_options"
2537 version="2.32">
2538 <doc xml:space="preserve"
2539 filename="gdk-pixbuf/gdk-pixbuf.c"
2540 line="1156">Returns a `GHashTable` with a list of all the options that may have been
2541attached to the `pixbuf` when it was loaded, or that may have been
2542attached by another function using [method@GdkPixbuf.Pixbuf.set_option].</doc>
2543 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="511"/>
2544 <return-value transfer-ownership="container">
2545 <doc xml:space="preserve"
2546 filename="gdk-pixbuf/gdk-pixbuf.c"
2547 line="1164">a #GHashTable
2548 of key/values pairs</doc>
2549 <type name="GLib.HashTable" c:type="GHashTable*">
2550 <type name="utf8"/>
2551 <type name="utf8"/>
2552 </type>
2553 </return-value>
2554 <parameters>
2555 <instance-parameter name="pixbuf" transfer-ownership="none">
2556 <doc xml:space="preserve"
2557 filename="gdk-pixbuf/gdk-pixbuf.c"
2558 line="1158">a `GdkPixbuf`</doc>
2559 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2560 </instance-parameter>
2561 </parameters>
2562 </method>
2563 <method name="get_pixels"
2564 c:identifier="gdk_pixbuf_get_pixels"
2565 shadowed-by="get_pixels_with_length"
2566 glib:get-property="pixels">
2567 <doc xml:space="preserve"
2568 filename="gdk-pixbuf/gdk-pixbuf.c"
2569 line="811">Queries a pointer to the pixel data of a pixbuf.
2570
2571This function will cause an implicit copy of the pixbuf data if the
2572pixbuf was created from read-only data.
2573
2574Please see the section on [image data](class.Pixbuf.html#image-data) for information
2575about how the pixel data is stored in memory.</doc>
2576 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="180"/>
2577 <return-value transfer-ownership="none">
2578 <doc xml:space="preserve"
2579 filename="gdk-pixbuf/gdk-pixbuf.c"
2580 line="823">A pointer to the pixbuf's pixel data.</doc>
2581 <array zero-terminated="0" c:type="guchar*">
2582 <type name="guint8" c:type="guchar"/>
2583 </array>
2584 </return-value>
2585 <parameters>
2586 <instance-parameter name="pixbuf" transfer-ownership="none">
2587 <doc xml:space="preserve"
2588 filename="gdk-pixbuf/gdk-pixbuf.c"
2589 line="813">A pixbuf.</doc>
2590 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2591 </instance-parameter>
2592 </parameters>
2593 </method>
2594 <method name="get_pixels_with_length"
2595 c:identifier="gdk_pixbuf_get_pixels_with_length"
2596 shadows="get_pixels"
2597 version="2.26">
2598 <doc xml:space="preserve"
2599 filename="gdk-pixbuf/gdk-pixbuf.c"
2600 line="857">Queries a pointer to the pixel data of a pixbuf.
2601
2602This function will cause an implicit copy of the pixbuf data if the
2603pixbuf was created from read-only data.
2604
2605Please see the section on [image data](class.Pixbuf.html#image-data) for information
2606about how the pixel data is stored in memory.</doc>
2607 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="191"/>
2608 <return-value transfer-ownership="none">
2609 <doc xml:space="preserve"
2610 filename="gdk-pixbuf/gdk-pixbuf.c"
2611 line="870">A pointer to the pixbuf's
2612pixel data.</doc>
2613 <array length="0" zero-terminated="0" c:type="guchar*">
2614 <type name="guint8" c:type="guchar"/>
2615 </array>
2616 </return-value>
2617 <parameters>
2618 <instance-parameter name="pixbuf" transfer-ownership="none">
2619 <doc xml:space="preserve"
2620 filename="gdk-pixbuf/gdk-pixbuf.c"
2621 line="859">A pixbuf.</doc>
2622 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2623 </instance-parameter>
2624 <parameter name="length"
2625 direction="out"
2626 caller-allocates="0"
2627 transfer-ownership="full">
2628 <doc xml:space="preserve"
2629 filename="gdk-pixbuf/gdk-pixbuf.c"
2630 line="860">The length of the binary data.</doc>
2631 <type name="guint" c:type="guint*"/>
2632 </parameter>
2633 </parameters>
2634 </method>
2635 <method name="get_rowstride"
2636 c:identifier="gdk_pixbuf_get_rowstride"
2637 glib:get-property="rowstride">
2638 <doc xml:space="preserve"
2639 filename="gdk-pixbuf/gdk-pixbuf.c"
2640 line="991">Queries the rowstride of a pixbuf, which is the number of bytes between
2641the start of a row and the start of the next row.</doc>
2642 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="186"/>
2643 <return-value transfer-ownership="none">
2644 <doc xml:space="preserve"
2645 filename="gdk-pixbuf/gdk-pixbuf.c"
2646 line="998">Distance between row starts.</doc>
2647 <type name="gint" c:type="int"/>
2648 </return-value>
2649 <parameters>
2650 <instance-parameter name="pixbuf" transfer-ownership="none">
2651 <doc xml:space="preserve"
2652 filename="gdk-pixbuf/gdk-pixbuf.c"
2653 line="993">A pixbuf.</doc>
2654 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2655 </instance-parameter>
2656 </parameters>
2657 </method>
2658 <method name="get_width"
2659 c:identifier="gdk_pixbuf_get_width"
2660 glib:get-property="width">
2661 <doc xml:space="preserve"
2662 filename="gdk-pixbuf/gdk-pixbuf.c"
2663 line="959">Queries the width of a pixbuf.</doc>
2664 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="182"/>
2665 <return-value transfer-ownership="none">
2666 <doc xml:space="preserve"
2667 filename="gdk-pixbuf/gdk-pixbuf.c"
2668 line="965">Width in pixels.</doc>
2669 <type name="gint" c:type="int"/>
2670 </return-value>
2671 <parameters>
2672 <instance-parameter name="pixbuf" transfer-ownership="none">
2673 <doc xml:space="preserve"
2674 filename="gdk-pixbuf/gdk-pixbuf.c"
2675 line="961">A pixbuf.</doc>
2676 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2677 </instance-parameter>
2678 </parameters>
2679 </method>
2680 <method name="new_subpixbuf" c:identifier="gdk_pixbuf_new_subpixbuf">
2681 <doc xml:space="preserve"
2682 filename="gdk-pixbuf/gdk-pixbuf.c"
2683 line="685">Creates a new pixbuf which represents a sub-region of `src_pixbuf`.
2684
2685The new pixbuf shares its pixels with the original pixbuf, so
2686writing to one affects both. The new pixbuf holds a reference to
2687`src_pixbuf`, so `src_pixbuf` will not be finalized until the new
2688pixbuf is finalized.
2689
2690Note that if `src_pixbuf` is read-only, this function will force it
2691to be mutable.</doc>
2692 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="220"/>
2693 <return-value transfer-ownership="full">
2694 <doc xml:space="preserve"
2695 filename="gdk-pixbuf/gdk-pixbuf.c"
2696 line="703">a new pixbuf</doc>
2697 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2698 </return-value>
2699 <parameters>
2700 <instance-parameter name="src_pixbuf" transfer-ownership="none">
2701 <doc xml:space="preserve"
2702 filename="gdk-pixbuf/gdk-pixbuf.c"
2703 line="687">a `GdkPixbuf`</doc>
2704 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2705 </instance-parameter>
2706 <parameter name="src_x" transfer-ownership="none">
2707 <doc xml:space="preserve"
2708 filename="gdk-pixbuf/gdk-pixbuf.c"
2709 line="688">X coord in @src_pixbuf</doc>
2710 <type name="gint" c:type="int"/>
2711 </parameter>
2712 <parameter name="src_y" transfer-ownership="none">
2713 <doc xml:space="preserve"
2714 filename="gdk-pixbuf/gdk-pixbuf.c"
2715 line="689">Y coord in @src_pixbuf</doc>
2716 <type name="gint" c:type="int"/>
2717 </parameter>
2718 <parameter name="width" transfer-ownership="none">
2719 <doc xml:space="preserve"
2720 filename="gdk-pixbuf/gdk-pixbuf.c"
2721 line="690">width of region in @src_pixbuf</doc>
2722 <type name="gint" c:type="int"/>
2723 </parameter>
2724 <parameter name="height" transfer-ownership="none">
2725 <doc xml:space="preserve"
2726 filename="gdk-pixbuf/gdk-pixbuf.c"
2727 line="691">height of region in @src_pixbuf</doc>
2728 <type name="gint" c:type="int"/>
2729 </parameter>
2730 </parameters>
2731 </method>
2732 <method name="read_pixel_bytes"
2733 c:identifier="gdk_pixbuf_read_pixel_bytes"
2734 version="2.32">
2735 <doc xml:space="preserve"
2736 filename="gdk-pixbuf/gdk-pixbuf.c"
2737 line="924">Provides a #GBytes buffer containing the raw pixel data; the data
2738must not be modified.
2739
2740This function allows skipping the implicit copy that must be made
2741if gdk_pixbuf_get_pixels() is called on a read-only pixbuf.</doc>
2742 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="197"/>
2743 <return-value transfer-ownership="full">
2744 <doc xml:space="preserve"
2745 filename="gdk-pixbuf/gdk-pixbuf.c"
2746 line="934">A new reference to a read-only copy of
2747 the pixel data. Note that for mutable pixbufs, this function will
2748 incur a one-time copy of the pixel data for conversion into the
2749 returned #GBytes.</doc>
2750 <type name="GLib.Bytes" c:type="GBytes*"/>
2751 </return-value>
2752 <parameters>
2753 <instance-parameter name="pixbuf" transfer-ownership="none">
2754 <doc xml:space="preserve"
2755 filename="gdk-pixbuf/gdk-pixbuf.c"
2756 line="926">A pixbuf</doc>
2757 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2758 </instance-parameter>
2759 </parameters>
2760 </method>
2761 <method name="read_pixels"
2762 c:identifier="gdk_pixbuf_read_pixels"
2763 version="2.32">
2764 <doc xml:space="preserve"
2765 filename="gdk-pixbuf/gdk-pixbuf.c"
2766 line="890">Provides a read-only pointer to the raw pixel data.
2767
2768This function allows skipping the implicit copy that must be made
2769if gdk_pixbuf_get_pixels() is called on a read-only pixbuf.</doc>
2770 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="195"/>
2771 <return-value transfer-ownership="none">
2772 <doc xml:space="preserve"
2773 filename="gdk-pixbuf/gdk-pixbuf.c"
2774 line="899">a read-only pointer to the raw pixel data</doc>
2775 <type name="guint8" c:type="const guint8*"/>
2776 </return-value>
2777 <parameters>
2778 <instance-parameter name="pixbuf" transfer-ownership="none">
2779 <doc xml:space="preserve"
2780 filename="gdk-pixbuf/gdk-pixbuf.c"
2781 line="892">A pixbuf</doc>
2782 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2783 </instance-parameter>
2784 </parameters>
2785 </method>
2786 <method name="ref"
2787 c:identifier="gdk_pixbuf_ref"
2788 introspectable="0"
2789 deprecated="1"
2790 deprecated-version="2.0">
2791 <doc xml:space="preserve"
2792 filename="gdk-pixbuf/gdk-pixbuf.c"
2793 line="414">Adds a reference to a pixbuf.</doc>
2794 <doc-deprecated xml:space="preserve">Use g_object_ref().</doc-deprecated>
2795 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="165"/>
2796 <return-value>
2797 <doc xml:space="preserve"
2798 filename="gdk-pixbuf/gdk-pixbuf.c"
2799 line="420">The same as the @pixbuf argument.</doc>
2800 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2801 </return-value>
2802 <parameters>
2803 <instance-parameter name="pixbuf" transfer-ownership="none">
2804 <doc xml:space="preserve"
2805 filename="gdk-pixbuf/gdk-pixbuf.c"
2806 line="416">A pixbuf.</doc>
2807 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2808 </instance-parameter>
2809 </parameters>
2810 </method>
2811 <method name="remove_option"
2812 c:identifier="gdk_pixbuf_remove_option"
2813 version="2.36">
2814 <doc xml:space="preserve"
2815 filename="gdk-pixbuf/gdk-pixbuf.c"
2816 line="1191">Removes the key/value pair option attached to a `GdkPixbuf`.</doc>
2817 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="508"/>
2818 <return-value transfer-ownership="none">
2819 <doc xml:space="preserve"
2820 filename="gdk-pixbuf/gdk-pixbuf.c"
2821 line="1198">`TRUE` if an option was removed, `FALSE` if not.</doc>
2822 <type name="gboolean" c:type="gboolean"/>
2823 </return-value>
2824 <parameters>
2825 <instance-parameter name="pixbuf" transfer-ownership="none">
2826 <doc xml:space="preserve"
2827 filename="gdk-pixbuf/gdk-pixbuf.c"
2828 line="1193">a `GdkPixbuf`</doc>
2829 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2830 </instance-parameter>
2831 <parameter name="key" transfer-ownership="none">
2832 <doc xml:space="preserve"
2833 filename="gdk-pixbuf/gdk-pixbuf.c"
2834 line="1194">a nul-terminated string representing the key to remove.</doc>
2835 <type name="utf8" c:type="const gchar*"/>
2836 </parameter>
2837 </parameters>
2838 </method>
2839 <method name="rotate_simple"
2840 c:identifier="gdk_pixbuf_rotate_simple"
2841 version="2.6">
2842 <doc xml:space="preserve"
2843 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2844 line="340">Rotates a pixbuf by a multiple of 90 degrees, and returns the
2845result in a new pixbuf.
2846
2847If `angle` is 0, this function will return a copy of `src`.</doc>
2848 <source-position filename="gdk-pixbuf/gdk-pixbuf-transform.h"
2849 line="159"/>
2850 <return-value transfer-ownership="full" nullable="1">
2851 <doc xml:space="preserve"
2852 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2853 line="350">the new pixbuf</doc>
2854 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2855 </return-value>
2856 <parameters>
2857 <instance-parameter name="src" transfer-ownership="none">
2858 <doc xml:space="preserve"
2859 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2860 line="342">a #GdkPixbuf</doc>
2861 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2862 </instance-parameter>
2863 <parameter name="angle" transfer-ownership="none">
2864 <doc xml:space="preserve"
2865 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
2866 line="343">the angle to rotate by</doc>
2867 <type name="PixbufRotation" c:type="GdkPixbufRotation"/>
2868 </parameter>
2869 </parameters>
2870 </method>
2871 <method name="saturate_and_pixelate"
2872 c:identifier="gdk_pixbuf_saturate_and_pixelate">
2873 <doc xml:space="preserve"
2874 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2875 line="172">Modifies saturation and optionally pixelates `src`, placing the result in
2876`dest`.
2877
2878The `src` and `dest` pixbufs must have the same image format, size, and
2879rowstride.
2880
2881The `src` and `dest` arguments may be the same pixbuf with no ill effects.
2882
2883If `saturation` is 1.0 then saturation is not changed. If it's less than 1.0,
2884saturation is reduced (the image turns toward grayscale); if greater than
28851.0, saturation is increased (the image gets more vivid colors).
2886
2887If `pixelate` is `TRUE`, then pixels are faded in a checkerboard pattern to
2888create a pixelated image.</doc>
2889 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="490"/>
2890 <return-value transfer-ownership="none">
2891 <type name="none" c:type="void"/>
2892 </return-value>
2893 <parameters>
2894 <instance-parameter name="src" transfer-ownership="none">
2895 <doc xml:space="preserve"
2896 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2897 line="174">source image</doc>
2898 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
2899 </instance-parameter>
2900 <parameter name="dest" transfer-ownership="none">
2901 <doc xml:space="preserve"
2902 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2903 line="175">place to write modified version of @src</doc>
2904 <type name="Pixbuf" c:type="GdkPixbuf*"/>
2905 </parameter>
2906 <parameter name="saturation" transfer-ownership="none">
2907 <doc xml:space="preserve"
2908 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2909 line="176">saturation factor</doc>
2910 <type name="gfloat" c:type="gfloat"/>
2911 </parameter>
2912 <parameter name="pixelate" transfer-ownership="none">
2913 <doc xml:space="preserve"
2914 filename="gdk-pixbuf/gdk-pixbuf-util.c"
2915 line="177">whether to pixelate</doc>
2916 <type name="gboolean" c:type="gboolean"/>
2917 </parameter>
2918 </parameters>
2919 </method>
2920 <method name="save" c:identifier="gdk_pixbuf_save" introspectable="0">
2921 <doc xml:space="preserve"
2922 filename="gdk-pixbuf/gdk-pixbuf-io.c"
2923 line="2510">Saves pixbuf to a file in format @type. By default, "jpeg", "png", "ico"
2924and "bmp" are possible file formats to save in, but more formats may be
2925installed. The list of all writable formats can be determined in the
2926following way:
2927
2928```c
2929void add_if_writable (GdkPixbufFormat *data, GSList **list)
2930{
2931 if (gdk_pixbuf_format_is_writable (data))
2932 *list = g_slist_prepend (*list, data);
2933}
2934
2935GSList *formats = gdk_pixbuf_get_formats ();
2936GSList *writable_formats = NULL;
2937g_slist_foreach (formats, add_if_writable, &writable_formats);
2938g_slist_free (formats);
2939```
2940
2941If `error` is set, `FALSE` will be returned. Possible errors include
2942those in the `GDK_PIXBUF_ERROR` domain and those in the `G_FILE_ERROR`
2943domain.
2944
2945The variable argument list should be `NULL`-terminated; if not empty,
2946it should contain pairs of strings that modify the save
2947parameters. For example:
2948
2949```c
2950gdk_pixbuf_save (pixbuf, handle, "jpeg", &error, "quality", "100", NULL);
2951```
2952
2953Currently only few parameters exist.
2954
2955JPEG images can be saved with a "quality" parameter; its value should be
2956in the range `[0, 100]`. JPEG and PNG density can be set by setting the
2957"x-dpi" and "y-dpi" parameters to the appropriate values in dots per inch.
2958
2959Text chunks can be attached to PNG images by specifying parameters of
2960the form "tEXt::key", where key is an ASCII string of length 1-79.
2961The values are UTF-8 encoded strings. The PNG compression level can
2962be specified using the "compression" parameter; it's value is in an
2963integer in the range of `[0, 9]`.
2964
2965ICC color profiles can also be embedded into PNG, JPEG and TIFF images.
2966The "icc-profile" value should be the complete ICC profile encoded
2967into base64.
2968
2969```c
2970char *contents;
2971gsize length;
2972
2973// icm_path is set elsewhere
2974g_file_get_contents (icm_path, &contents, &length, NULL);
2975
2976char *contents_encode = g_base64_encode ((const guchar *) contents, length);
2977
2978gdk_pixbuf_save (pixbuf, handle, "png", &error, "icc-profile", contents_encode, NULL);
2979```
2980
2981TIFF images recognize:
2982
2983 1. a "bits-per-sample" option (integer) which can be either 1 for saving
2984 bi-level CCITTFAX4 images, or 8 for saving 8-bits per sample
2985 2. a "compression" option (integer) which can be 1 for no compression,
2986 2 for Huffman, 5 for LZW, 7 for JPEG and 8 for DEFLATE (see the libtiff
2987 documentation and tiff.h for all supported codec values)
2988 3. an "icc-profile" option (zero-terminated string) containing a base64
2989 encoded ICC color profile.
2990
2991ICO images can be saved in depth 16, 24, or 32, by using the "depth"
2992parameter. When the ICO saver is given "x_hot" and "y_hot" parameters,
2993it produces a CUR instead of an ICO.</doc>
2994 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="314"/>
2995 <return-value transfer-ownership="none">
2996 <doc xml:space="preserve"
2997 filename="gdk-pixbuf/gdk-pixbuf-io.c"
2998 line="2590">`TRUE` on success, and `FALSE` otherwise</doc>
2999 <type name="gboolean" c:type="gboolean"/>
3000 </return-value>
3001 <parameters>
3002 <instance-parameter name="pixbuf" transfer-ownership="none">
3003 <doc xml:space="preserve"
3004 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3005 line="2512">a `GdkPixbuf`.</doc>
3006 <type name="Pixbuf" c:type="GdkPixbuf*"/>
3007 </instance-parameter>
3008 <parameter name="filename" transfer-ownership="none">
3009 <doc xml:space="preserve"
3010 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3011 line="2513">name of file to save.</doc>
3012 <type name="filename" c:type="const char*"/>
3013 </parameter>
3014 <parameter name="type" transfer-ownership="none">
3015 <doc xml:space="preserve"
3016 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3017 line="2514">name of file format.</doc>
3018 <type name="utf8" c:type="const char*"/>
3019 </parameter>
3020 <parameter name="error"
3021 transfer-ownership="none"
3022 nullable="1"
3023 allow-none="1">
3024 <doc xml:space="preserve"
3025 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3026 line="2515">return location for error</doc>
3027 <type name="GLib.Error" c:type="GError**"/>
3028 </parameter>
3029 <parameter name="..." transfer-ownership="none">
3030 <doc xml:space="preserve"
3031 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3032 line="2516">list of key-value save options, followed by `NULL`</doc>
3033 <varargs/>
3034 </parameter>
3035 </parameters>
3036 </method>
3037 <method name="save_to_buffer"
3038 c:identifier="gdk_pixbuf_save_to_buffer"
3039 version="2.4"
3040 introspectable="0">
3041 <doc xml:space="preserve"
3042 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3043 line="2847">Saves pixbuf to a new buffer in format `type`, which is currently "jpeg",
3044"png", "tiff", "ico" or "bmp".
3045
3046This is a convenience function that uses `gdk_pixbuf_save_to_callback()`
3047to do the real work.
3048
3049Note that the buffer is not `NUL`-terminated and may contain embedded `NUL`
3050characters.
3051
3052If @error is set, `FALSE` will be returned and @buffer will be set to
3053`NULL`. Possible errors include those in the `GDK_PIXBUF_ERROR`
3054domain.
3055
3056See `gdk_pixbuf_save()` for more details.</doc>
3057 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="387"/>
3058 <return-value transfer-ownership="none">
3059 <doc xml:space="preserve"
3060 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3061 line="2872">whether an error was set</doc>
3062 <type name="gboolean" c:type="gboolean"/>
3063 </return-value>
3064 <parameters>
3065 <instance-parameter name="pixbuf" transfer-ownership="none">
3066 <doc xml:space="preserve"
3067 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3068 line="2849">a `GdkPixbuf`.</doc>
3069 <type name="Pixbuf" c:type="GdkPixbuf*"/>
3070 </instance-parameter>
3071 <parameter name="buffer"
3072 direction="out"
3073 caller-allocates="0"
3074 transfer-ownership="full">
3075 <doc xml:space="preserve"
3076 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3077 line="2850">location to receive a pointer
3078 to the new buffer.</doc>
3079 <array length="1" zero-terminated="0" c:type="gchar**">
3080 <type name="guint8"/>
3081 </array>
3082 </parameter>
3083 <parameter name="buffer_size"
3084 direction="out"
3085 caller-allocates="0"
3086 transfer-ownership="full">
3087 <doc xml:space="preserve"
3088 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3089 line="2852">location to receive the size of the new buffer.</doc>
3090 <type name="gsize" c:type="gsize*"/>
3091 </parameter>
3092 <parameter name="type" transfer-ownership="none">
3093 <doc xml:space="preserve"
3094 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3095 line="2853">name of file format.</doc>
3096 <type name="utf8" c:type="const char*"/>
3097 </parameter>
3098 <parameter name="error" transfer-ownership="none">
3099 <doc xml:space="preserve"
3100 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3101 line="2854">return location for error, or `NULL`</doc>
3102 <type name="GLib.Error" c:type="GError**"/>
3103 </parameter>
3104 <parameter name="..." transfer-ownership="none">
3105 <doc xml:space="preserve"
3106 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3107 line="2855">list of key-value save options</doc>
3108 <varargs/>
3109 </parameter>
3110 </parameters>
3111 </method>
3112 <method name="save_to_bufferv"
3113 c:identifier="gdk_pixbuf_save_to_bufferv"
3114 version="2.4"
3115 throws="1">
3116 <doc xml:space="preserve"
3117 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3118 line="2940">Vector version of `gdk_pixbuf_save_to_buffer()`.
3119
3120Saves pixbuf to a new buffer in format @type, which is currently "jpeg",
3121"tiff", "png", "ico" or "bmp".
3122
3123See [method@GdkPixbuf.Pixbuf.save_to_buffer] for more details.</doc>
3124 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="395"/>
3125 <return-value transfer-ownership="none">
3126 <doc xml:space="preserve"
3127 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3128 line="2958">whether an error was set</doc>
3129 <type name="gboolean" c:type="gboolean"/>
3130 </return-value>
3131 <parameters>
3132 <instance-parameter name="pixbuf" transfer-ownership="none">
3133 <doc xml:space="preserve"
3134 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3135 line="2942">a `GdkPixbuf`.</doc>
3136 <type name="Pixbuf" c:type="GdkPixbuf*"/>
3137 </instance-parameter>
3138 <parameter name="buffer"
3139 direction="out"
3140 caller-allocates="0"
3141 transfer-ownership="full">
3142 <doc xml:space="preserve"
3143 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3144 line="2943">
3145 location to receive a pointer to the new buffer.</doc>
3146 <array length="1" zero-terminated="0" c:type="gchar**">
3147 <type name="guint8"/>
3148 </array>
3149 </parameter>
3150 <parameter name="buffer_size"
3151 direction="out"
3152 caller-allocates="0"
3153 transfer-ownership="full">
3154 <doc xml:space="preserve"
3155 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3156 line="2945">location to receive the size of the new buffer.</doc>
3157 <type name="gsize" c:type="gsize*"/>
3158 </parameter>
3159 <parameter name="type" transfer-ownership="none">
3160 <doc xml:space="preserve"
3161 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3162 line="2946">name of file format.</doc>
3163 <type name="utf8" c:type="const char*"/>
3164 </parameter>
3165 <parameter name="option_keys"
3166 transfer-ownership="none"
3167 nullable="1"
3168 allow-none="1">
3169 <doc xml:space="preserve"
3170 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3171 line="2947">name of options to set</doc>
3172 <array c:type="char**">
3173 <type name="utf8"/>
3174 </array>
3175 </parameter>
3176 <parameter name="option_values"
3177 transfer-ownership="none"
3178 nullable="1"
3179 allow-none="1">
3180 <doc xml:space="preserve"
3181 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3182 line="2948">values for named options</doc>
3183 <array c:type="char**">
3184 <type name="utf8"/>
3185 </array>
3186 </parameter>
3187 </parameters>
3188 </method>
3189 <method name="save_to_callback"
3190 c:identifier="gdk_pixbuf_save_to_callback"
3191 version="2.4"
3192 introspectable="0">
3193 <doc xml:space="preserve"
3194 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3195 line="2734">Saves pixbuf in format `type` by feeding the produced data to a
3196callback.
3197
3198This function can be used when you want to store the image to something
3199other than a file, such as an in-memory buffer or a socket.
3200
3201If @error is set, `FALSE` will be returned. Possible errors
3202include those in the `GDK_PIXBUF_ERROR` domain and whatever the save
3203function generates.
3204
3205See [method@GdkPixbuf.Pixbuf.save] for more details.</doc>
3206 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="368"/>
3207 <return-value transfer-ownership="none">
3208 <doc xml:space="preserve"
3209 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3210 line="2756">whether an error was set</doc>
3211 <type name="gboolean" c:type="gboolean"/>
3212 </return-value>
3213 <parameters>
3214 <instance-parameter name="pixbuf" transfer-ownership="none">
3215 <doc xml:space="preserve"
3216 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3217 line="2736">a `GdkPixbuf`.</doc>
3218 <type name="Pixbuf" c:type="GdkPixbuf*"/>
3219 </instance-parameter>
3220 <parameter name="save_func"
3221 transfer-ownership="none"
3222 scope="call"
3223 closure="1">
3224 <doc xml:space="preserve"
3225 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3226 line="2737">a function that is called to save each block of data that
3227 the save routine generates.</doc>
3228 <type name="PixbufSaveFunc" c:type="GdkPixbufSaveFunc"/>
3229 </parameter>
3230 <parameter name="user_data"
3231 transfer-ownership="none"
3232 nullable="1"
3233 allow-none="1">
3234 <doc xml:space="preserve"
3235 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3236 line="2739">user data to pass to the save function.</doc>
3237 <type name="gpointer" c:type="gpointer"/>
3238 </parameter>
3239 <parameter name="type" transfer-ownership="none">
3240 <doc xml:space="preserve"
3241 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3242 line="2740">name of file format.</doc>
3243 <type name="utf8" c:type="const char*"/>
3244 </parameter>
3245 <parameter name="error"
3246 transfer-ownership="none"
3247 nullable="1"
3248 allow-none="1">
3249 <doc xml:space="preserve"
3250 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3251 line="2741">return location for error, or `NULL`</doc>
3252 <type name="GLib.Error" c:type="GError**"/>
3253 </parameter>
3254 <parameter name="..." transfer-ownership="none">
3255 <doc xml:space="preserve"
3256 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3257 line="2742">list of key-value save options</doc>
3258 <varargs/>
3259 </parameter>
3260 </parameters>
3261 </method>
3262 <method name="save_to_callbackv"
3263 c:identifier="gdk_pixbuf_save_to_callbackv"
3264 version="2.4"
3265 throws="1">
3266 <doc xml:space="preserve"
3267 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3268 line="2791">Vector version of `gdk_pixbuf_save_to_callback()`.
3269
3270Saves pixbuf to a callback in format @type, which is currently "jpeg",
3271"png", "tiff", "ico" or "bmp".
3272
3273If @error is set, `FALSE` will be returned.
3274
3275See [method@GdkPixbuf.Pixbuf.save_to_callback] for more details.</doc>
3276 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="376"/>
3277 <return-value transfer-ownership="none">
3278 <doc xml:space="preserve"
3279 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3280 line="2811">whether an error was set</doc>
3281 <type name="gboolean" c:type="gboolean"/>
3282 </return-value>
3283 <parameters>
3284 <instance-parameter name="pixbuf" transfer-ownership="none">
3285 <doc xml:space="preserve"
3286 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3287 line="2793">a `GdkPixbuf`</doc>
3288 <type name="Pixbuf" c:type="GdkPixbuf*"/>
3289 </instance-parameter>
3290 <parameter name="save_func"
3291 transfer-ownership="none"
3292 scope="call"
3293 closure="1">
3294 <doc xml:space="preserve"
3295 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3296 line="2794">a function that is called to
3297 save each block of data that the save routine generates</doc>
3298 <type name="PixbufSaveFunc" c:type="GdkPixbufSaveFunc"/>
3299 </parameter>
3300 <parameter name="user_data"
3301 transfer-ownership="none"
3302 nullable="1"
3303 allow-none="1">
3304 <doc xml:space="preserve"
3305 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3306 line="2796">user data to pass to the save function</doc>
3307 <type name="gpointer" c:type="gpointer"/>
3308 </parameter>
3309 <parameter name="type" transfer-ownership="none">
3310 <doc xml:space="preserve"
3311 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3312 line="2797">name of file format</doc>
3313 <type name="utf8" c:type="const char*"/>
3314 </parameter>
3315 <parameter name="option_keys"
3316 transfer-ownership="none"
3317 nullable="1"
3318 allow-none="1">
3319 <doc xml:space="preserve"
3320 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3321 line="2798">name of options to set</doc>
3322 <array c:type="char**">
3323 <type name="utf8"/>
3324 </array>
3325 </parameter>
3326 <parameter name="option_values"
3327 transfer-ownership="none"
3328 nullable="1"
3329 allow-none="1">
3330 <doc xml:space="preserve"
3331 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3332 line="2799">values for named options</doc>
3333 <array c:type="char**">
3334 <type name="utf8"/>
3335 </array>
3336 </parameter>
3337 </parameters>
3338 </method>
3339 <method name="save_to_stream"
3340 c:identifier="gdk_pixbuf_save_to_stream"
3341 version="2.14"
3342 introspectable="0">
3343 <doc xml:space="preserve"
3344 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3345 line="3084">Saves `pixbuf` to an output stream.
3346
3347Supported file formats are currently "jpeg", "tiff", "png", "ico" or
3348"bmp". See `gdk_pixbuf_save_to_buffer()` for more details.
3349
3350The `cancellable` can be used to abort the operation from another
3351thread. If the operation was cancelled, the error `G_IO_ERROR_CANCELLED`
3352will be returned. Other possible errors are in the `GDK_PIXBUF_ERROR`
3353and `G_IO_ERROR` domains.
3354
3355The stream is not closed at the end of this call.</doc>
3356 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="436"/>
3357 <return-value transfer-ownership="none">
3358 <doc xml:space="preserve"
3359 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3360 line="3105">`TRUE` if the pixbuf was saved successfully, `FALSE` if an
3361 error was set.</doc>
3362 <type name="gboolean" c:type="gboolean"/>
3363 </return-value>
3364 <parameters>
3365 <instance-parameter name="pixbuf" transfer-ownership="none">
3366 <doc xml:space="preserve"
3367 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3368 line="3086">a `GdkPixbuf`</doc>
3369 <type name="Pixbuf" c:type="GdkPixbuf*"/>
3370 </instance-parameter>
3371 <parameter name="stream" transfer-ownership="none">
3372 <doc xml:space="preserve"
3373 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3374 line="3087">a `GOutputStream` to save the pixbuf to</doc>
3375 <type name="Gio.OutputStream" c:type="GOutputStream*"/>
3376 </parameter>
3377 <parameter name="type" transfer-ownership="none">
3378 <doc xml:space="preserve"
3379 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3380 line="3088">name of file format</doc>
3381 <type name="utf8" c:type="const char*"/>
3382 </parameter>
3383 <parameter name="cancellable"
3384 transfer-ownership="none"
3385 nullable="1"
3386 allow-none="1">
3387 <doc xml:space="preserve"
3388 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3389 line="3089">optional `GCancellable` object, `NULL` to ignore</doc>
3390 <type name="Gio.Cancellable" c:type="GCancellable*"/>
3391 </parameter>
3392 <parameter name="error"
3393 transfer-ownership="none"
3394 nullable="1"
3395 allow-none="1">
3396 <doc xml:space="preserve"
3397 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3398 line="3090">return location for error, or `NULL`</doc>
3399 <type name="GLib.Error" c:type="GError**"/>
3400 </parameter>
3401 <parameter name="..." transfer-ownership="none">
3402 <doc xml:space="preserve"
3403 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3404 line="3091">list of key-value save options</doc>
3405 <varargs/>
3406 </parameter>
3407 </parameters>
3408 </method>
3409 <method name="save_to_stream_async"
3410 c:identifier="gdk_pixbuf_save_to_stream_async"
3411 version="2.24"
3412 introspectable="0"
3413 glib:finish-func="gdk_pixbuf_save_to_stream_finish">
3414 <doc xml:space="preserve"
3415 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3416 line="3238">Saves `pixbuf` to an output stream asynchronously.
3417
3418For more details see gdk_pixbuf_save_to_stream(), which is the synchronous
3419version of this function.
3420
3421When the operation is finished, `callback` will be called in the main thread.
3422
3423You can then call gdk_pixbuf_save_to_stream_finish() to get the result of
3424the operation.</doc>
3425 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="444"/>
3426 <return-value transfer-ownership="none">
3427 <type name="none" c:type="void"/>
3428 </return-value>
3429 <parameters>
3430 <instance-parameter name="pixbuf" transfer-ownership="none">
3431 <doc xml:space="preserve"
3432 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3433 line="3240">a `GdkPixbuf`</doc>
3434 <type name="Pixbuf" c:type="GdkPixbuf*"/>
3435 </instance-parameter>
3436 <parameter name="stream" transfer-ownership="none">
3437 <doc xml:space="preserve"
3438 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3439 line="3241">a `GOutputStream` to which to save the pixbuf</doc>
3440 <type name="Gio.OutputStream" c:type="GOutputStream*"/>
3441 </parameter>
3442 <parameter name="type" transfer-ownership="none">
3443 <doc xml:space="preserve"
3444 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3445 line="3242">name of file format</doc>
3446 <type name="utf8" c:type="const gchar*"/>
3447 </parameter>
3448 <parameter name="cancellable"
3449 transfer-ownership="none"
3450 nullable="1"
3451 allow-none="1">
3452 <doc xml:space="preserve"
3453 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3454 line="3243">optional `GCancellable` object, `NULL` to ignore</doc>
3455 <type name="Gio.Cancellable" c:type="GCancellable*"/>
3456 </parameter>
3457 <parameter name="callback"
3458 transfer-ownership="none"
3459 nullable="1"
3460 allow-none="1"
3461 scope="async"
3462 closure="4">
3463 <doc xml:space="preserve"
3464 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3465 line="3244">a `GAsyncReadyCallback` to call when the pixbuf is saved</doc>
3466 <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
3467 </parameter>
3468 <parameter name="user_data"
3469 transfer-ownership="none"
3470 nullable="1"
3471 allow-none="1">
3472 <doc xml:space="preserve"
3473 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3474 line="3245">the data to pass to the callback function</doc>
3475 <type name="gpointer" c:type="gpointer"/>
3476 </parameter>
3477 <parameter name="..." transfer-ownership="none">
3478 <doc xml:space="preserve"
3479 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3480 line="3246">list of key-value save options</doc>
3481 <varargs/>
3482 </parameter>
3483 </parameters>
3484 </method>
3485 <method name="save_to_streamv"
3486 c:identifier="gdk_pixbuf_save_to_streamv"
3487 version="2.36"
3488 throws="1">
3489 <doc xml:space="preserve"
3490 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3491 line="3042">Saves `pixbuf` to an output stream.
3492
3493Supported file formats are currently "jpeg", "tiff", "png", "ico" or
3494"bmp".
3495
3496See [method@GdkPixbuf.Pixbuf.save_to_stream] for more details.</doc>
3497 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="467"/>
3498 <return-value transfer-ownership="none">
3499 <doc xml:space="preserve"
3500 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3501 line="3059">`TRUE` if the pixbuf was saved successfully, `FALSE` if an
3502 error was set.</doc>
3503 <type name="gboolean" c:type="gboolean"/>
3504 </return-value>
3505 <parameters>
3506 <instance-parameter name="pixbuf" transfer-ownership="none">
3507 <doc xml:space="preserve"
3508 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3509 line="3044">a `GdkPixbuf`</doc>
3510 <type name="Pixbuf" c:type="GdkPixbuf*"/>
3511 </instance-parameter>
3512 <parameter name="stream" transfer-ownership="none">
3513 <doc xml:space="preserve"
3514 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3515 line="3045">a `GOutputStream` to save the pixbuf to</doc>
3516 <type name="Gio.OutputStream" c:type="GOutputStream*"/>
3517 </parameter>
3518 <parameter name="type" transfer-ownership="none">
3519 <doc xml:space="preserve"
3520 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3521 line="3046">name of file format</doc>
3522 <type name="utf8" c:type="const char*"/>
3523 </parameter>
3524 <parameter name="option_keys"
3525 transfer-ownership="none"
3526 nullable="1"
3527 allow-none="1">
3528 <doc xml:space="preserve"
3529 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3530 line="3047">name of options to set</doc>
3531 <array c:type="char**">
3532 <type name="utf8"/>
3533 </array>
3534 </parameter>
3535 <parameter name="option_values"
3536 transfer-ownership="none"
3537 nullable="1"
3538 allow-none="1">
3539 <doc xml:space="preserve"
3540 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3541 line="3048">values for named options</doc>
3542 <array c:type="char**">
3543 <type name="utf8"/>
3544 </array>
3545 </parameter>
3546 <parameter name="cancellable"
3547 transfer-ownership="none"
3548 nullable="1"
3549 allow-none="1">
3550 <doc xml:space="preserve"
3551 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3552 line="3049">optional `GCancellable` object, `NULL` to ignore</doc>
3553 <type name="Gio.Cancellable" c:type="GCancellable*"/>
3554 </parameter>
3555 </parameters>
3556 </method>
3557 <method name="save_to_streamv_async"
3558 c:identifier="gdk_pixbuf_save_to_streamv_async"
3559 version="2.36"
3560 glib:finish-func="gdk_pixbuf_save_to_stream_finish">
3561 <doc xml:space="preserve"
3562 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3563 line="3180">Saves `pixbuf` to an output stream asynchronously.
3564
3565For more details see gdk_pixbuf_save_to_streamv(), which is the synchronous
3566version of this function.
3567
3568When the operation is finished, `callback` will be called in the main thread.
3569
3570You can then call gdk_pixbuf_save_to_stream_finish() to get the result of
3571the operation.</doc>
3572 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="457"/>
3573 <return-value transfer-ownership="none">
3574 <type name="none" c:type="void"/>
3575 </return-value>
3576 <parameters>
3577 <instance-parameter name="pixbuf" transfer-ownership="none">
3578 <doc xml:space="preserve"
3579 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3580 line="3182">a `GdkPixbuf`</doc>
3581 <type name="Pixbuf" c:type="GdkPixbuf*"/>
3582 </instance-parameter>
3583 <parameter name="stream" transfer-ownership="none">
3584 <doc xml:space="preserve"
3585 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3586 line="3183">a `GOutputStream` to which to save the pixbuf</doc>
3587 <type name="Gio.OutputStream" c:type="GOutputStream*"/>
3588 </parameter>
3589 <parameter name="type" transfer-ownership="none">
3590 <doc xml:space="preserve"
3591 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3592 line="3184">name of file format</doc>
3593 <type name="utf8" c:type="const gchar*"/>
3594 </parameter>
3595 <parameter name="option_keys"
3596 transfer-ownership="none"
3597 nullable="1"
3598 allow-none="1">
3599 <doc xml:space="preserve"
3600 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3601 line="3185">name of options to set</doc>
3602 <array c:type="gchar**">
3603 <type name="utf8"/>
3604 </array>
3605 </parameter>
3606 <parameter name="option_values"
3607 transfer-ownership="none"
3608 nullable="1"
3609 allow-none="1">
3610 <doc xml:space="preserve"
3611 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3612 line="3186">values for named options</doc>
3613 <array c:type="gchar**">
3614 <type name="utf8"/>
3615 </array>
3616 </parameter>
3617 <parameter name="cancellable"
3618 transfer-ownership="none"
3619 nullable="1"
3620 allow-none="1">
3621 <doc xml:space="preserve"
3622 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3623 line="3187">optional `GCancellable` object, `NULL` to ignore</doc>
3624 <type name="Gio.Cancellable" c:type="GCancellable*"/>
3625 </parameter>
3626 <parameter name="callback"
3627 transfer-ownership="none"
3628 nullable="1"
3629 allow-none="1"
3630 scope="async"
3631 closure="6">
3632 <doc xml:space="preserve"
3633 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3634 line="3188">a `GAsyncReadyCallback` to call when the pixbuf is saved</doc>
3635 <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
3636 </parameter>
3637 <parameter name="user_data"
3638 transfer-ownership="none"
3639 nullable="1"
3640 allow-none="1">
3641 <doc xml:space="preserve"
3642 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3643 line="3189">the data to pass to the callback function</doc>
3644 <type name="gpointer" c:type="gpointer"/>
3645 </parameter>
3646 </parameters>
3647 </method>
3648 <method name="savev" c:identifier="gdk_pixbuf_savev" throws="1">
3649 <doc xml:space="preserve"
3650 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3651 line="2622">Vector version of `gdk_pixbuf_save()`.
3652
3653Saves pixbuf to a file in `type`, which is currently "jpeg", "png", "tiff", "ico" or "bmp".
3654
3655If @error is set, `FALSE` will be returned.
3656
3657See [method@GdkPixbuf.Pixbuf.save] for more details.</doc>
3658 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="321"/>
3659 <return-value transfer-ownership="none">
3660 <doc xml:space="preserve"
3661 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3662 line="2639">whether an error was set</doc>
3663 <type name="gboolean" c:type="gboolean"/>
3664 </return-value>
3665 <parameters>
3666 <instance-parameter name="pixbuf" transfer-ownership="none">
3667 <doc xml:space="preserve"
3668 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3669 line="2624">a `GdkPixbuf`.</doc>
3670 <type name="Pixbuf" c:type="GdkPixbuf*"/>
3671 </instance-parameter>
3672 <parameter name="filename" transfer-ownership="none">
3673 <doc xml:space="preserve"
3674 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3675 line="2625">name of file to save.</doc>
3676 <type name="filename" c:type="const char*"/>
3677 </parameter>
3678 <parameter name="type" transfer-ownership="none">
3679 <doc xml:space="preserve"
3680 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3681 line="2626">name of file format.</doc>
3682 <type name="utf8" c:type="const char*"/>
3683 </parameter>
3684 <parameter name="option_keys"
3685 transfer-ownership="none"
3686 nullable="1"
3687 allow-none="1">
3688 <doc xml:space="preserve"
3689 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3690 line="2627">name of options to set</doc>
3691 <array c:type="char**">
3692 <type name="utf8"/>
3693 </array>
3694 </parameter>
3695 <parameter name="option_values"
3696 transfer-ownership="none"
3697 nullable="1"
3698 allow-none="1">
3699 <doc xml:space="preserve"
3700 filename="gdk-pixbuf/gdk-pixbuf-io.c"
3701 line="2628">values for named options</doc>
3702 <array c:type="char**">
3703 <type name="utf8"/>
3704 </array>
3705 </parameter>
3706 </parameters>
3707 </method>
3708 <method name="scale" c:identifier="gdk_pixbuf_scale">
3709 <doc xml:space="preserve"
3710 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3711 line="28">Creates a transformation of the source image @src by scaling by
3712@scale_x and @scale_y then translating by @offset_x and @offset_y,
3713then renders the rectangle (@dest_x, @dest_y, @dest_width,
3714@dest_height) of the resulting image onto the destination image
3715replacing the previous contents.
3716
3717Try to use gdk_pixbuf_scale_simple() first; this function is
3718the industrial-strength power tool you can fall back to, if
3719gdk_pixbuf_scale_simple() isn't powerful enough.
3720
3721If the source rectangle overlaps the destination rectangle on the
3722same pixbuf, it will be overwritten during the scaling which
3723results in rendering artifacts.</doc>
3724 <source-position filename="gdk-pixbuf/gdk-pixbuf-transform.h"
3725 line="99"/>
3726 <return-value transfer-ownership="none">
3727 <type name="none" c:type="void"/>
3728 </return-value>
3729 <parameters>
3730 <instance-parameter name="src" transfer-ownership="none">
3731 <doc xml:space="preserve"
3732 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3733 line="30">a #GdkPixbuf</doc>
3734 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
3735 </instance-parameter>
3736 <parameter name="dest" transfer-ownership="none">
3737 <doc xml:space="preserve"
3738 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3739 line="31">the #GdkPixbuf into which to render the results</doc>
3740 <type name="Pixbuf" c:type="GdkPixbuf*"/>
3741 </parameter>
3742 <parameter name="dest_x" transfer-ownership="none">
3743 <doc xml:space="preserve"
3744 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3745 line="32">the left coordinate for region to render</doc>
3746 <type name="gint" c:type="int"/>
3747 </parameter>
3748 <parameter name="dest_y" transfer-ownership="none">
3749 <doc xml:space="preserve"
3750 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3751 line="33">the top coordinate for region to render</doc>
3752 <type name="gint" c:type="int"/>
3753 </parameter>
3754 <parameter name="dest_width" transfer-ownership="none">
3755 <doc xml:space="preserve"
3756 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3757 line="34">the width of the region to render</doc>
3758 <type name="gint" c:type="int"/>
3759 </parameter>
3760 <parameter name="dest_height" transfer-ownership="none">
3761 <doc xml:space="preserve"
3762 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3763 line="35">the height of the region to render</doc>
3764 <type name="gint" c:type="int"/>
3765 </parameter>
3766 <parameter name="offset_x" transfer-ownership="none">
3767 <doc xml:space="preserve"
3768 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3769 line="36">the offset in the X direction (currently rounded to an integer)</doc>
3770 <type name="gdouble" c:type="double"/>
3771 </parameter>
3772 <parameter name="offset_y" transfer-ownership="none">
3773 <doc xml:space="preserve"
3774 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3775 line="37">the offset in the Y direction (currently rounded to an integer)</doc>
3776 <type name="gdouble" c:type="double"/>
3777 </parameter>
3778 <parameter name="scale_x" transfer-ownership="none">
3779 <doc xml:space="preserve"
3780 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3781 line="38">the scale factor in the X direction</doc>
3782 <type name="gdouble" c:type="double"/>
3783 </parameter>
3784 <parameter name="scale_y" transfer-ownership="none">
3785 <doc xml:space="preserve"
3786 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3787 line="39">the scale factor in the Y direction</doc>
3788 <type name="gdouble" c:type="double"/>
3789 </parameter>
3790 <parameter name="interp_type" transfer-ownership="none">
3791 <doc xml:space="preserve"
3792 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3793 line="40">the interpolation type for the transformation.</doc>
3794 <type name="InterpType" c:type="GdkInterpType"/>
3795 </parameter>
3796 </parameters>
3797 </method>
3798 <method name="scale_simple" c:identifier="gdk_pixbuf_scale_simple">
3799 <doc xml:space="preserve"
3800 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3801 line="236">Create a new pixbuf containing a copy of `src` scaled to
3802`dest_width` x `dest_height`.
3803
3804This function leaves `src` unaffected.
3805
3806The `interp_type` should be `GDK_INTERP_NEAREST` if you want maximum
3807speed (but when scaling down `GDK_INTERP_NEAREST` is usually unusably
3808ugly). The default `interp_type` should be `GDK_INTERP_BILINEAR` which
3809offers reasonable quality and speed.
3810
3811You can scale a sub-portion of `src` by creating a sub-pixbuf
3812pointing into `src`; see [method@GdkPixbuf.Pixbuf.new_subpixbuf].
3813
3814If `dest_width` and `dest_height` are equal to the width and height of
3815`src`, this function will return an unscaled copy of `src`.
3816
3817For more complicated scaling/alpha blending see [method@GdkPixbuf.Pixbuf.scale]
3818and [method@GdkPixbuf.Pixbuf.composite].</doc>
3819 <source-position filename="gdk-pixbuf/gdk-pixbuf-transform.h"
3820 line="143"/>
3821 <return-value transfer-ownership="full" nullable="1">
3822 <doc xml:space="preserve"
3823 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3824 line="262">the new pixbuf</doc>
3825 <type name="Pixbuf" c:type="GdkPixbuf*"/>
3826 </return-value>
3827 <parameters>
3828 <instance-parameter name="src" transfer-ownership="none">
3829 <doc xml:space="preserve"
3830 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3831 line="238">a #GdkPixbuf</doc>
3832 <type name="Pixbuf" c:type="const GdkPixbuf*"/>
3833 </instance-parameter>
3834 <parameter name="dest_width" transfer-ownership="none">
3835 <doc xml:space="preserve"
3836 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3837 line="239">the width of destination image</doc>
3838 <type name="gint" c:type="int"/>
3839 </parameter>
3840 <parameter name="dest_height" transfer-ownership="none">
3841 <doc xml:space="preserve"
3842 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3843 line="240">the height of destination image</doc>
3844 <type name="gint" c:type="int"/>
3845 </parameter>
3846 <parameter name="interp_type" transfer-ownership="none">
3847 <doc xml:space="preserve"
3848 filename="gdk-pixbuf/gdk-pixbuf-scale.c"
3849 line="241">the interpolation type for the transformation.</doc>
3850 <type name="InterpType" c:type="GdkInterpType"/>
3851 </parameter>
3852 </parameters>
3853 </method>
3854 <method name="set_option"
3855 c:identifier="gdk_pixbuf_set_option"
3856 version="2.2">
3857 <doc xml:space="preserve"
3858 filename="gdk-pixbuf/gdk-pixbuf.c"
3859 line="1257">Attaches a key/value pair as an option to a `GdkPixbuf`.
3860
3861If `key` already exists in the list of options attached to the `pixbuf`,
3862the new value is ignored and `FALSE` is returned.</doc>
3863 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="501"/>
3864 <return-value transfer-ownership="none">
3865 <doc xml:space="preserve"
3866 filename="gdk-pixbuf/gdk-pixbuf.c"
3867 line="1268">`TRUE` on success</doc>
3868 <type name="gboolean" c:type="gboolean"/>
3869 </return-value>
3870 <parameters>
3871 <instance-parameter name="pixbuf" transfer-ownership="none">
3872 <doc xml:space="preserve"
3873 filename="gdk-pixbuf/gdk-pixbuf.c"
3874 line="1259">a `GdkPixbuf`</doc>
3875 <type name="Pixbuf" c:type="GdkPixbuf*"/>
3876 </instance-parameter>
3877 <parameter name="key" transfer-ownership="none">
3878 <doc xml:space="preserve"
3879 filename="gdk-pixbuf/gdk-pixbuf.c"
3880 line="1260">a nul-terminated string.</doc>
3881 <type name="utf8" c:type="const gchar*"/>
3882 </parameter>
3883 <parameter name="value" transfer-ownership="none">
3884 <doc xml:space="preserve"
3885 filename="gdk-pixbuf/gdk-pixbuf.c"
3886 line="1261">a nul-terminated string.</doc>
3887 <type name="utf8" c:type="const gchar*"/>
3888 </parameter>
3889 </parameters>
3890 </method>
3891 <method name="unref"
3892 c:identifier="gdk_pixbuf_unref"
3893 introspectable="0"
3894 deprecated="1"
3895 deprecated-version="2.0">
3896 <doc xml:space="preserve"
3897 filename="gdk-pixbuf/gdk-pixbuf.c"
3898 line="430">Removes a reference from a pixbuf.</doc>
3899 <doc-deprecated xml:space="preserve">Use g_object_unref().</doc-deprecated>
3900 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="167"/>
3901 <return-value transfer-ownership="none">
3902 <type name="none" c:type="void"/>
3903 </return-value>
3904 <parameters>
3905 <instance-parameter name="pixbuf" transfer-ownership="none">
3906 <doc xml:space="preserve"
3907 filename="gdk-pixbuf/gdk-pixbuf.c"
3908 line="432">A pixbuf.</doc>
3909 <type name="Pixbuf" c:type="GdkPixbuf*"/>
3910 </instance-parameter>
3911 </parameters>
3912 </method>
3913 <property name="bits-per-sample"
3914 writable="1"
3915 construct-only="1"
3916 transfer-ownership="none"
3917 getter="get_bits_per_sample"
3918 default-value="8">
3919 <doc xml:space="preserve"
3920 filename="gdk-pixbuf/gdk-pixbuf.c"
3921 line="281">The number of bits per sample.
3922
3923Currently only 8 bit per sample are supported.</doc>
3924 <type name="gint" c:type="gint"/>
3925 </property>
3926 <property name="colorspace"
3927 writable="1"
3928 construct-only="1"
3929 transfer-ownership="none"
3930 getter="get_colorspace"
3931 default-value="GDK_COLORSPACE_RGB">
3932 <doc xml:space="preserve"
3933 filename="gdk-pixbuf/gdk-pixbuf.c"
3934 line="254">The color space of the pixbuf.
3935
3936Currently, only `GDK_COLORSPACE_RGB` is supported.</doc>
3937 <type name="Colorspace"/>
3938 </property>
3939 <property name="has-alpha"
3940 writable="1"
3941 construct-only="1"
3942 transfer-ownership="none"
3943 getter="get_has_alpha"
3944 default-value="FALSE">
3945 <doc xml:space="preserve"
3946 filename="gdk-pixbuf/gdk-pixbuf.c"
3947 line="269">Whether the pixbuf has an alpha channel.</doc>
3948 <type name="gboolean" c:type="gboolean"/>
3949 </property>
3950 <property name="height"
3951 writable="1"
3952 construct-only="1"
3953 transfer-ownership="none"
3954 getter="get_height"
3955 default-value="1">
3956 <doc xml:space="preserve"
3957 filename="gdk-pixbuf/gdk-pixbuf.c"
3958 line="311">The number of rows of the pixbuf.</doc>
3959 <type name="gint" c:type="gint"/>
3960 </property>
3961 <property name="n-channels"
3962 writable="1"
3963 construct-only="1"
3964 transfer-ownership="none"
3965 getter="get_n_channels"
3966 default-value="3">
3967 <doc xml:space="preserve"
3968 filename="gdk-pixbuf/gdk-pixbuf.c"
3969 line="238">The number of samples per pixel.
3970
3971Currently, only 3 or 4 samples per pixel are supported.</doc>
3972 <type name="gint" c:type="gint"/>
3973 </property>
3974 <property name="pixel-bytes"
3975 writable="1"
3976 construct-only="1"
3977 transfer-ownership="none">
3978 <type name="GLib.Bytes"/>
3979 </property>
3980 <property name="pixels"
3981 writable="1"
3982 construct-only="1"
3983 transfer-ownership="none"
3984 getter="get_pixels">
3985 <doc xml:space="preserve"
3986 filename="gdk-pixbuf/gdk-pixbuf.c"
3987 line="343">A pointer to the pixel data of the pixbuf.</doc>
3988 <type name="gpointer" c:type="gpointer"/>
3989 </property>
3990 <property name="rowstride"
3991 writable="1"
3992 construct-only="1"
3993 transfer-ownership="none"
3994 getter="get_rowstride"
3995 default-value="1">
3996 <doc xml:space="preserve"
3997 filename="gdk-pixbuf/gdk-pixbuf.c"
3998 line="325">The number of bytes between the start of a row and
3999the start of the next row.
4000
4001This number must (obviously) be at least as large as the
4002width of the pixbuf.</doc>
4003 <type name="gint" c:type="gint"/>
4004 </property>
4005 <property name="width"
4006 writable="1"
4007 construct-only="1"
4008 transfer-ownership="none"
4009 getter="get_width"
4010 default-value="1">
4011 <doc xml:space="preserve"
4012 filename="gdk-pixbuf/gdk-pixbuf.c"
4013 line="297">The number of columns of the pixbuf.</doc>
4014 <type name="gint" c:type="gint"/>
4015 </property>
4016 </class>
4017 <enumeration name="PixbufAlphaMode"
4018 deprecated="1"
4019 deprecated-version="2.42"
4020 glib:type-name="GdkPixbufAlphaMode"
4021 glib:get-type="gdk_pixbuf_alpha_mode_get_type"
4022 c:type="GdkPixbufAlphaMode">
4023 <doc xml:space="preserve"
4024 filename="gdk-pixbuf/gdk-pixbuf-core.h"
4025 line="39">Control the alpha channel for drawables.
4026
4027These values can be passed to gdk_pixbuf_xlib_render_to_drawable_alpha()
4028in gdk-pixbuf-xlib to control how the alpha channel of an image should
4029be handled.
4030
4031This function can create a bilevel clipping mask (black and white) and use
4032it while painting the image.
4033
4034In the future, when the X Window System gets an alpha channel extension,
4035it will be possible to do full alpha compositing onto arbitrary drawables.
4036For now both cases fall back to a bilevel clipping mask.</doc>
4037 <doc-deprecated xml:space="preserve">There is no user of GdkPixbufAlphaMode in GdkPixbuf,
4038 and the Xlib utility functions have been split out to their own
4039 library, gdk-pixbuf-xlib</doc-deprecated>
4040 <member name="bilevel"
4041 value="0"
4042 c:identifier="GDK_PIXBUF_ALPHA_BILEVEL"
4043 glib:nick="bilevel"
4044 glib:name="GDK_PIXBUF_ALPHA_BILEVEL">
4045 <doc xml:space="preserve"
4046 filename="gdk-pixbuf/gdk-pixbuf-core.h"
4047 line="41">A bilevel clipping mask (black and white)
4048 will be created and used to draw the image. Pixels below 0.5 opacity
4049 will be considered fully transparent, and all others will be
4050 considered fully opaque.</doc>
4051 </member>
4052 <member name="full"
4053 value="1"
4054 c:identifier="GDK_PIXBUF_ALPHA_FULL"
4055 glib:nick="full"
4056 glib:name="GDK_PIXBUF_ALPHA_FULL">
4057 <doc xml:space="preserve"
4058 filename="gdk-pixbuf/gdk-pixbuf-core.h"
4059 line="45">For now falls back to #GDK_PIXBUF_ALPHA_BILEVEL.
4060 In the future it will do full alpha compositing.</doc>
4061 </member>
4062 </enumeration>
4063 <class name="PixbufAnimation"
4064 c:symbol-prefix="pixbuf_animation"
4065 c:type="GdkPixbufAnimation"
4066 parent="GObject.Object"
4067 glib:type-name="GdkPixbufAnimation"
4068 glib:get-type="gdk_pixbuf_animation_get_type"
4069 glib:type-struct="PixbufAnimationClass">
4070 <doc xml:space="preserve"
4071 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4072 line="34">An opaque object representing an animation.
4073
4074The GdkPixBuf library provides a simple mechanism to load and
4075represent animations. An animation is conceptually a series of
4076frames to be displayed over time.
4077
4078The animation may not be represented as a series of frames
4079internally; for example, it may be stored as a sprite and
4080instructions for moving the sprite around a background.
4081
4082To display an animation you don't need to understand its
4083representation, however; you just ask `GdkPixbuf` what should
4084be displayed at a given point in time.</doc>
4085 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4086 line="160"/>
4087 <constructor name="new_from_file"
4088 c:identifier="gdk_pixbuf_animation_new_from_file"
4089 throws="1">
4090 <doc xml:space="preserve"
4091 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4092 line="146">Creates a new animation by loading it from a file.
4093
4094The file format is detected automatically.
4095
4096If the file's format does not support multi-frame images, then an animation
4097with a single frame will be created.
4098
4099Possible errors are in the `GDK_PIXBUF_ERROR` and `G_FILE_ERROR` domains.</doc>
4100 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4101 line="63"/>
4102 <return-value transfer-ownership="full" nullable="1">
4103 <doc xml:space="preserve"
4104 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4105 line="161">A newly-created animation</doc>
4106 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4107 </return-value>
4108 <parameters>
4109 <parameter name="filename" transfer-ownership="none">
4110 <doc xml:space="preserve"
4111 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4112 line="148">Name of file to load, in the GLib file
4113 name encoding</doc>
4114 <type name="filename" c:type="const char*"/>
4115 </parameter>
4116 </parameters>
4117 </constructor>
4118 <constructor name="new_from_resource"
4119 c:identifier="gdk_pixbuf_animation_new_from_resource"
4120 version="2.28"
4121 throws="1">
4122 <doc xml:space="preserve"
4123 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4124 line="503">Creates a new pixbuf animation by loading an image from an resource.
4125
4126The file format is detected automatically. If `NULL` is returned, then
4127@error will be set.</doc>
4128 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4129 line="78"/>
4130 <return-value transfer-ownership="full" nullable="1">
4131 <doc xml:space="preserve"
4132 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4133 line="513">A newly-created animation</doc>
4134 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4135 </return-value>
4136 <parameters>
4137 <parameter name="resource_path" transfer-ownership="none">
4138 <doc xml:space="preserve"
4139 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4140 line="505">the path of the resource file</doc>
4141 <type name="utf8" c:type="const char*"/>
4142 </parameter>
4143 </parameters>
4144 </constructor>
4145 <constructor name="new_from_stream"
4146 c:identifier="gdk_pixbuf_animation_new_from_stream"
4147 version="2.28"
4148 throws="1">
4149 <doc xml:space="preserve"
4150 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4151 line="345">Creates a new animation by loading it from an input stream.
4152
4153The file format is detected automatically.
4154
4155If `NULL` is returned, then @error will be set.
4156
4157The @cancellable can be used to abort the operation from another thread.
4158If the operation was cancelled, the error `G_IO_ERROR_CANCELLED` will be
4159returned. Other possible errors are in the `GDK_PIXBUF_ERROR` and
4160`G_IO_ERROR` domains.
4161
4162The stream is not closed.</doc>
4163 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4164 line="66"/>
4165 <return-value transfer-ownership="full" nullable="1">
4166 <doc xml:space="preserve"
4167 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4168 line="364">A newly-created animation</doc>
4169 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4170 </return-value>
4171 <parameters>
4172 <parameter name="stream" transfer-ownership="none">
4173 <doc xml:space="preserve"
4174 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4175 line="347">a `GInputStream` to load the pixbuf from</doc>
4176 <type name="Gio.InputStream" c:type="GInputStream*"/>
4177 </parameter>
4178 <parameter name="cancellable"
4179 transfer-ownership="none"
4180 nullable="1"
4181 allow-none="1">
4182 <doc xml:space="preserve"
4183 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4184 line="348">optional `GCancellable` object</doc>
4185 <type name="Gio.Cancellable" c:type="GCancellable*"/>
4186 </parameter>
4187 </parameters>
4188 </constructor>
4189 <constructor name="new_from_stream_finish"
4190 c:identifier="gdk_pixbuf_animation_new_from_stream_finish"
4191 version="2.28"
4192 throws="1">
4193 <doc xml:space="preserve"
4194 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4195 line="478">Finishes an asynchronous pixbuf animation creation operation started with
4196[func@GdkPixbuf.PixbufAnimation.new_from_stream_async].</doc>
4197 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4198 line="75"/>
4199 <return-value transfer-ownership="full" nullable="1">
4200 <doc xml:space="preserve"
4201 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4202 line="486">the newly created animation</doc>
4203 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4204 </return-value>
4205 <parameters>
4206 <parameter name="async_result" transfer-ownership="none">
4207 <doc xml:space="preserve"
4208 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4209 line="480">a #GAsyncResult</doc>
4210 <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
4211 </parameter>
4212 </parameters>
4213 </constructor>
4214 <function name="new_from_stream_async"
4215 c:identifier="gdk_pixbuf_animation_new_from_stream_async"
4216 version="2.28"
4217 glib:finish-func="new_from_stream_finish">
4218 <doc xml:space="preserve"
4219 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4220 line="442">Creates a new animation by asynchronously loading an image from an input stream.
4221
4222For more details see gdk_pixbuf_new_from_stream(), which is the synchronous
4223version of this function.
4224
4225When the operation is finished, `callback` will be called in the main thread.
4226You can then call gdk_pixbuf_animation_new_from_stream_finish() to get the
4227result of the operation.</doc>
4228 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4229 line="70"/>
4230 <return-value transfer-ownership="none">
4231 <type name="none" c:type="void"/>
4232 </return-value>
4233 <parameters>
4234 <parameter name="stream" transfer-ownership="none">
4235 <doc xml:space="preserve"
4236 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4237 line="444">a #GInputStream from which to load the animation</doc>
4238 <type name="Gio.InputStream" c:type="GInputStream*"/>
4239 </parameter>
4240 <parameter name="cancellable"
4241 transfer-ownership="none"
4242 nullable="1"
4243 allow-none="1">
4244 <doc xml:space="preserve"
4245 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4246 line="445">optional #GCancellable object</doc>
4247 <type name="Gio.Cancellable" c:type="GCancellable*"/>
4248 </parameter>
4249 <parameter name="callback"
4250 transfer-ownership="none"
4251 nullable="1"
4252 allow-none="1"
4253 scope="async"
4254 closure="3">
4255 <doc xml:space="preserve"
4256 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4257 line="446">a `GAsyncReadyCallback` to call when the pixbuf is loaded</doc>
4258 <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
4259 </parameter>
4260 <parameter name="user_data"
4261 transfer-ownership="none"
4262 nullable="1"
4263 allow-none="1">
4264 <doc xml:space="preserve"
4265 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4266 line="447">the data to pass to the callback function</doc>
4267 <type name="gpointer" c:type="gpointer"/>
4268 </parameter>
4269 </parameters>
4270 </function>
4271 <virtual-method name="get_iter" invoker="get_iter">
4272 <doc xml:space="preserve"
4273 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4274 line="663">Get an iterator for displaying an animation.
4275
4276The iterator provides the frames that should be displayed at a
4277given time.
4278
4279@start_time would normally come from g_get_current_time(), and marks
4280the beginning of animation playback. After creating an iterator, you
4281should immediately display the pixbuf returned by
4282gdk_pixbuf_animation_iter_get_pixbuf(). Then, you should install
4283a timeout (with g_timeout_add()) or by some other mechanism ensure
4284that you'll update the image after
4285gdk_pixbuf_animation_iter_get_delay_time() milliseconds. Each time
4286the image is updated, you should reinstall the timeout with the new,
4287possibly-changed delay time.
4288
4289As a shortcut, if @start_time is `NULL`, the result of
4290g_get_current_time() will be used automatically.
4291
4292To update the image (i.e. possibly change the result of
4293gdk_pixbuf_animation_iter_get_pixbuf() to a new frame of the animation),
4294call gdk_pixbuf_animation_iter_advance().
4295
4296If you're using #GdkPixbufLoader, in addition to updating the image
4297after the delay time, you should also update it whenever you
4298receive the area_updated signal and
4299gdk_pixbuf_animation_iter_on_currently_loading_frame() returns
4300`TRUE`. In this case, the frame currently being fed into the loader
4301has received new data, so needs to be refreshed. The delay time for
4302a frame may also be modified after an area_updated signal, for
4303example if the delay time for a frame is encoded in the data after
4304the frame itself. So your timeout should be reinstalled after any
4305area_updated signal.
4306
4307A delay time of -1 is possible, indicating "infinite".</doc>
4308 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4309 line="158"/>
4310 <return-value transfer-ownership="full">
4311 <doc xml:space="preserve"
4312 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4313 line="703">an iterator to move over the animation</doc>
4314 <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4315 </return-value>
4316 <parameters>
4317 <instance-parameter name="animation" transfer-ownership="none">
4318 <doc xml:space="preserve"
4319 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4320 line="665">a #GdkPixbufAnimation</doc>
4321 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4322 </instance-parameter>
4323 <parameter name="start_time"
4324 transfer-ownership="none"
4325 nullable="1"
4326 allow-none="1">
4327 <doc xml:space="preserve"
4328 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4329 line="666">time when the animation starts playing</doc>
4330 <type name="GLib.TimeVal" c:type="const GTimeVal*"/>
4331 </parameter>
4332 </parameters>
4333 </virtual-method>
4334 <virtual-method name="get_size">
4335 <doc xml:space="preserve"
4336 filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4337 line="125">fills @width and @height with the frame size of the animation.</doc>
4338 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4339 line="154"/>
4340 <return-value transfer-ownership="none">
4341 <type name="none" c:type="void"/>
4342 </return-value>
4343 <parameters>
4344 <instance-parameter name="animation" transfer-ownership="none">
4345 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4346 </instance-parameter>
4347 <parameter name="width" transfer-ownership="none">
4348 <type name="gint" c:type="int*"/>
4349 </parameter>
4350 <parameter name="height" transfer-ownership="none">
4351 <type name="gint" c:type="int*"/>
4352 </parameter>
4353 </parameters>
4354 </virtual-method>
4355 <virtual-method name="get_static_image" invoker="get_static_image">
4356 <doc xml:space="preserve"
4357 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4358 line="592">Retrieves a static image for the animation.
4359
4360If an animation is really just a plain image (has only one frame),
4361this function returns that image.
4362
4363If the animation is an animation, this function returns a reasonable
4364image to use as a static unanimated image, which might be the first
4365frame, or something more sophisticated depending on the file format.
4366
4367If an animation hasn't loaded any frames yet, this function will
4368return `NULL`.</doc>
4369 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4370 line="152"/>
4371 <return-value transfer-ownership="none">
4372 <doc xml:space="preserve"
4373 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4374 line="608">unanimated image representing the animation</doc>
4375 <type name="Pixbuf" c:type="GdkPixbuf*"/>
4376 </return-value>
4377 <parameters>
4378 <instance-parameter name="animation" transfer-ownership="none">
4379 <doc xml:space="preserve"
4380 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4381 line="594">a #GdkPixbufAnimation</doc>
4382 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4383 </instance-parameter>
4384 </parameters>
4385 </virtual-method>
4386 <virtual-method name="is_static_image" invoker="is_static_image">
4387 <doc xml:space="preserve"
4388 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4389 line="571">Checks whether the animation is a static image.
4390
4391If you load a file with gdk_pixbuf_animation_new_from_file() and it
4392turns out to be a plain, unanimated image, then this function will
4393return `TRUE`. Use gdk_pixbuf_animation_get_static_image() to retrieve
4394the image.</doc>
4395 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4396 line="150"/>
4397 <return-value transfer-ownership="none">
4398 <doc xml:space="preserve"
4399 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4400 line="582">`TRUE` if the "animation" was really just an image</doc>
4401 <type name="gboolean" c:type="gboolean"/>
4402 </return-value>
4403 <parameters>
4404 <instance-parameter name="animation" transfer-ownership="none">
4405 <doc xml:space="preserve"
4406 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4407 line="573">a #GdkPixbufAnimation</doc>
4408 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4409 </instance-parameter>
4410 </parameters>
4411 </virtual-method>
4412 <method name="get_height" c:identifier="gdk_pixbuf_animation_get_height">
4413 <doc xml:space="preserve"
4414 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4415 line="640">Queries the height of the bounding box of a pixbuf animation.</doc>
4416 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4417 line="89"/>
4418 <return-value transfer-ownership="none">
4419 <doc xml:space="preserve"
4420 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4421 line="646">Height of the bounding box of the animation.</doc>
4422 <type name="gint" c:type="int"/>
4423 </return-value>
4424 <parameters>
4425 <instance-parameter name="animation" transfer-ownership="none">
4426 <doc xml:space="preserve"
4427 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4428 line="642">An animation.</doc>
4429 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4430 </instance-parameter>
4431 </parameters>
4432 </method>
4433 <method name="get_iter" c:identifier="gdk_pixbuf_animation_get_iter">
4434 <doc xml:space="preserve"
4435 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4436 line="663">Get an iterator for displaying an animation.
4437
4438The iterator provides the frames that should be displayed at a
4439given time.
4440
4441@start_time would normally come from g_get_current_time(), and marks
4442the beginning of animation playback. After creating an iterator, you
4443should immediately display the pixbuf returned by
4444gdk_pixbuf_animation_iter_get_pixbuf(). Then, you should install
4445a timeout (with g_timeout_add()) or by some other mechanism ensure
4446that you'll update the image after
4447gdk_pixbuf_animation_iter_get_delay_time() milliseconds. Each time
4448the image is updated, you should reinstall the timeout with the new,
4449possibly-changed delay time.
4450
4451As a shortcut, if @start_time is `NULL`, the result of
4452g_get_current_time() will be used automatically.
4453
4454To update the image (i.e. possibly change the result of
4455gdk_pixbuf_animation_iter_get_pixbuf() to a new frame of the animation),
4456call gdk_pixbuf_animation_iter_advance().
4457
4458If you're using #GdkPixbufLoader, in addition to updating the image
4459after the delay time, you should also update it whenever you
4460receive the area_updated signal and
4461gdk_pixbuf_animation_iter_on_currently_loading_frame() returns
4462`TRUE`. In this case, the frame currently being fed into the loader
4463has received new data, so needs to be refreshed. The delay time for
4464a frame may also be modified after an area_updated signal, for
4465example if the delay time for a frame is encoded in the data after
4466the frame itself. So your timeout should be reinstalled after any
4467area_updated signal.
4468
4469A delay time of -1 is possible, indicating "infinite".</doc>
4470 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4471 line="97"/>
4472 <return-value transfer-ownership="full">
4473 <doc xml:space="preserve"
4474 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4475 line="703">an iterator to move over the animation</doc>
4476 <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4477 </return-value>
4478 <parameters>
4479 <instance-parameter name="animation" transfer-ownership="none">
4480 <doc xml:space="preserve"
4481 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4482 line="665">a #GdkPixbufAnimation</doc>
4483 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4484 </instance-parameter>
4485 <parameter name="start_time"
4486 transfer-ownership="none"
4487 nullable="1"
4488 allow-none="1">
4489 <doc xml:space="preserve"
4490 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4491 line="666">time when the animation starts playing</doc>
4492 <type name="GLib.TimeVal" c:type="const GTimeVal*"/>
4493 </parameter>
4494 </parameters>
4495 </method>
4496 <method name="get_static_image"
4497 c:identifier="gdk_pixbuf_animation_get_static_image">
4498 <doc xml:space="preserve"
4499 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4500 line="592">Retrieves a static image for the animation.
4501
4502If an animation is really just a plain image (has only one frame),
4503this function returns that image.
4504
4505If the animation is an animation, this function returns a reasonable
4506image to use as a static unanimated image, which might be the first
4507frame, or something more sophisticated depending on the file format.
4508
4509If an animation hasn't loaded any frames yet, this function will
4510return `NULL`.</doc>
4511 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4512 line="93"/>
4513 <return-value transfer-ownership="none">
4514 <doc xml:space="preserve"
4515 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4516 line="608">unanimated image representing the animation</doc>
4517 <type name="Pixbuf" c:type="GdkPixbuf*"/>
4518 </return-value>
4519 <parameters>
4520 <instance-parameter name="animation" transfer-ownership="none">
4521 <doc xml:space="preserve"
4522 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4523 line="594">a #GdkPixbufAnimation</doc>
4524 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4525 </instance-parameter>
4526 </parameters>
4527 </method>
4528 <method name="get_width" c:identifier="gdk_pixbuf_animation_get_width">
4529 <doc xml:space="preserve"
4530 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4531 line="618">Queries the width of the bounding box of a pixbuf animation.</doc>
4532 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4533 line="87"/>
4534 <return-value transfer-ownership="none">
4535 <doc xml:space="preserve"
4536 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4537 line="624">Width of the bounding box of the animation.</doc>
4538 <type name="gint" c:type="int"/>
4539 </return-value>
4540 <parameters>
4541 <instance-parameter name="animation" transfer-ownership="none">
4542 <doc xml:space="preserve"
4543 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4544 line="620">An animation.</doc>
4545 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4546 </instance-parameter>
4547 </parameters>
4548 </method>
4549 <method name="is_static_image"
4550 c:identifier="gdk_pixbuf_animation_is_static_image">
4551 <doc xml:space="preserve"
4552 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4553 line="571">Checks whether the animation is a static image.
4554
4555If you load a file with gdk_pixbuf_animation_new_from_file() and it
4556turns out to be a plain, unanimated image, then this function will
4557return `TRUE`. Use gdk_pixbuf_animation_get_static_image() to retrieve
4558the image.</doc>
4559 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4560 line="91"/>
4561 <return-value transfer-ownership="none">
4562 <doc xml:space="preserve"
4563 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4564 line="582">`TRUE` if the "animation" was really just an image</doc>
4565 <type name="gboolean" c:type="gboolean"/>
4566 </return-value>
4567 <parameters>
4568 <instance-parameter name="animation" transfer-ownership="none">
4569 <doc xml:space="preserve"
4570 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4571 line="573">a #GdkPixbufAnimation</doc>
4572 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4573 </instance-parameter>
4574 </parameters>
4575 </method>
4576 <method name="ref"
4577 c:identifier="gdk_pixbuf_animation_ref"
4578 introspectable="0"
4579 deprecated="1"
4580 deprecated-version="2.0">
4581 <doc xml:space="preserve"
4582 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4583 line="541">Adds a reference to an animation.</doc>
4584 <doc-deprecated xml:space="preserve">Use g_object_ref().</doc-deprecated>
4585 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4586 line="82"/>
4587 <return-value>
4588 <doc xml:space="preserve"
4589 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4590 line="547">The same as the @animation argument.</doc>
4591 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4592 </return-value>
4593 <parameters>
4594 <instance-parameter name="animation" transfer-ownership="none">
4595 <doc xml:space="preserve"
4596 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4597 line="543">An animation.</doc>
4598 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4599 </instance-parameter>
4600 </parameters>
4601 </method>
4602 <method name="unref"
4603 c:identifier="gdk_pixbuf_animation_unref"
4604 introspectable="0"
4605 deprecated="1"
4606 deprecated-version="2.0">
4607 <doc xml:space="preserve"
4608 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4609 line="557">Removes a reference from an animation.</doc>
4610 <doc-deprecated xml:space="preserve">Use g_object_unref().</doc-deprecated>
4611 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4612 line="84"/>
4613 <return-value transfer-ownership="none">
4614 <type name="none" c:type="void"/>
4615 </return-value>
4616 <parameters>
4617 <instance-parameter name="animation" transfer-ownership="none">
4618 <doc xml:space="preserve"
4619 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4620 line="559">An animation.</doc>
4621 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4622 </instance-parameter>
4623 </parameters>
4624 </method>
4625 <field name="parent_instance">
4626 <type name="GObject.Object" c:type="GObject"/>
4627 </field>
4628 </class>
4629 <record name="PixbufAnimationClass"
4630 c:type="GdkPixbufAnimationClass"
4631 glib:is-gtype-struct-for="PixbufAnimation">
4632 <doc xml:space="preserve"
4633 filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4634 line="120">Modules supporting animations must derive a type from
4635#GdkPixbufAnimation, providing suitable implementations of the
4636virtual functions.</doc>
4637 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4638 line="160"/>
4639 <field name="parent_class">
4640 <doc xml:space="preserve"
4641 filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4642 line="122">the parent class</doc>
4643 <type name="GObject.ObjectClass" c:type="GObjectClass"/>
4644 </field>
4645 <field name="is_static_image">
4646 <doc xml:space="preserve"
4647 filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4648 line="123">returns whether the given animation is just a static image.</doc>
4649 <callback name="is_static_image">
4650 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4651 line="150"/>
4652 <return-value transfer-ownership="none">
4653 <doc xml:space="preserve"
4654 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4655 line="582">`TRUE` if the "animation" was really just an image</doc>
4656 <type name="gboolean" c:type="gboolean"/>
4657 </return-value>
4658 <parameters>
4659 <parameter name="animation" transfer-ownership="none">
4660 <doc xml:space="preserve"
4661 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4662 line="573">a #GdkPixbufAnimation</doc>
4663 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4664 </parameter>
4665 </parameters>
4666 </callback>
4667 </field>
4668 <field name="get_static_image">
4669 <doc xml:space="preserve"
4670 filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4671 line="124">returns a static image representing the given animation.</doc>
4672 <callback name="get_static_image">
4673 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4674 line="152"/>
4675 <return-value transfer-ownership="none">
4676 <doc xml:space="preserve"
4677 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4678 line="608">unanimated image representing the animation</doc>
4679 <type name="Pixbuf" c:type="GdkPixbuf*"/>
4680 </return-value>
4681 <parameters>
4682 <parameter name="animation" transfer-ownership="none">
4683 <doc xml:space="preserve"
4684 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4685 line="594">a #GdkPixbufAnimation</doc>
4686 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4687 </parameter>
4688 </parameters>
4689 </callback>
4690 </field>
4691 <field name="get_size">
4692 <doc xml:space="preserve"
4693 filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4694 line="125">fills @width and @height with the frame size of the animation.</doc>
4695 <callback name="get_size">
4696 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4697 line="154"/>
4698 <return-value transfer-ownership="none">
4699 <type name="none" c:type="void"/>
4700 </return-value>
4701 <parameters>
4702 <parameter name="animation" transfer-ownership="none">
4703 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4704 </parameter>
4705 <parameter name="width" transfer-ownership="none">
4706 <type name="gint" c:type="int*"/>
4707 </parameter>
4708 <parameter name="height" transfer-ownership="none">
4709 <type name="gint" c:type="int*"/>
4710 </parameter>
4711 </parameters>
4712 </callback>
4713 </field>
4714 <field name="get_iter">
4715 <doc xml:space="preserve"
4716 filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4717 line="126">returns an iterator for the given animation.</doc>
4718 <callback name="get_iter">
4719 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4720 line="158"/>
4721 <return-value transfer-ownership="full">
4722 <doc xml:space="preserve"
4723 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4724 line="703">an iterator to move over the animation</doc>
4725 <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4726 </return-value>
4727 <parameters>
4728 <parameter name="animation" transfer-ownership="none">
4729 <doc xml:space="preserve"
4730 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4731 line="665">a #GdkPixbufAnimation</doc>
4732 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
4733 </parameter>
4734 <parameter name="start_time"
4735 transfer-ownership="none"
4736 nullable="1"
4737 allow-none="1">
4738 <doc xml:space="preserve"
4739 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4740 line="666">time when the animation starts playing</doc>
4741 <type name="GLib.TimeVal" c:type="const GTimeVal*"/>
4742 </parameter>
4743 </parameters>
4744 </callback>
4745 </field>
4746 </record>
4747 <class name="PixbufAnimationIter"
4748 c:symbol-prefix="pixbuf_animation_iter"
4749 c:type="GdkPixbufAnimationIter"
4750 parent="GObject.Object"
4751 glib:type-name="GdkPixbufAnimationIter"
4752 glib:get-type="gdk_pixbuf_animation_iter_get_type"
4753 glib:type-struct="PixbufAnimationIterClass">
4754 <doc xml:space="preserve"
4755 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4756 line="52">An opaque object representing an iterator which points to a
4757certain position in an animation.</doc>
4758 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4759 line="205"/>
4760 <virtual-method name="advance" invoker="advance">
4761 <doc xml:space="preserve"
4762 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4763 line="812">Possibly advances an animation to a new frame.
4764
4765Chooses the frame based on the start time passed to
4766gdk_pixbuf_animation_get_iter().
4767
4768@current_time would normally come from g_get_current_time(), and
4769must be greater than or equal to the time passed to
4770gdk_pixbuf_animation_get_iter(), and must increase or remain
4771unchanged each time gdk_pixbuf_animation_iter_get_pixbuf() is
4772called. That is, you can't go backward in time; animations only
4773play forward.
4774
4775As a shortcut, pass `NULL` for the current time and g_get_current_time()
4776will be invoked on your behalf. So you only need to explicitly pass
4777@current_time if you're doing something odd like playing the animation
4778at double speed.
4779
4780If this function returns `FALSE`, there's no need to update the animation
4781display, assuming the display had been rendered prior to advancing;
4782if `TRUE`, you need to call gdk_pixbuf_animation_iter_get_pixbuf()
4783and update the display with the new pixbuf.</doc>
4784 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4785 line="203"/>
4786 <return-value transfer-ownership="none">
4787 <doc xml:space="preserve"
4788 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4789 line="839">`TRUE` if the image may need updating</doc>
4790 <type name="gboolean" c:type="gboolean"/>
4791 </return-value>
4792 <parameters>
4793 <instance-parameter name="iter" transfer-ownership="none">
4794 <doc xml:space="preserve"
4795 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4796 line="814">a #GdkPixbufAnimationIter</doc>
4797 <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4798 </instance-parameter>
4799 <parameter name="current_time"
4800 transfer-ownership="none"
4801 nullable="1"
4802 allow-none="1">
4803 <doc xml:space="preserve"
4804 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4805 line="815">current time</doc>
4806 <type name="GLib.TimeVal" c:type="const GTimeVal*"/>
4807 </parameter>
4808 </parameters>
4809 </virtual-method>
4810 <virtual-method name="get_delay_time" invoker="get_delay_time">
4811 <doc xml:space="preserve"
4812 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4813 line="734">Gets the number of milliseconds the current pixbuf should be displayed,
4814or -1 if the current pixbuf should be displayed forever.
4815
4816The `g_timeout_add()` function conveniently takes a timeout in milliseconds,
4817so you can use a timeout to schedule the next update.
4818
4819Note that some formats, like GIF, might clamp the timeout values in the
4820image file to avoid updates that are just too quick. The minimum timeout
4821for GIF images is currently 20 milliseconds.</doc>
4822 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4823 line="197"/>
4824 <return-value transfer-ownership="none">
4825 <doc xml:space="preserve"
4826 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4827 line="748">delay time in milliseconds (thousandths of a second)</doc>
4828 <type name="gint" c:type="int"/>
4829 </return-value>
4830 <parameters>
4831 <instance-parameter name="iter" transfer-ownership="none">
4832 <doc xml:space="preserve"
4833 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4834 line="736">an animation iterator</doc>
4835 <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4836 </instance-parameter>
4837 </parameters>
4838 </virtual-method>
4839 <virtual-method name="get_pixbuf" invoker="get_pixbuf">
4840 <doc xml:space="preserve"
4841 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4842 line="759">Gets the current pixbuf which should be displayed.
4843
4844The pixbuf might not be the same size as the animation itself
4845(gdk_pixbuf_animation_get_width(), gdk_pixbuf_animation_get_height()).
4846
4847This pixbuf should be displayed for gdk_pixbuf_animation_iter_get_delay_time()
4848milliseconds.
4849
4850The caller of this function does not own a reference to the returned
4851pixbuf; the returned pixbuf will become invalid when the iterator
4852advances to the next frame, which may happen anytime you call
4853gdk_pixbuf_animation_iter_advance().
4854
4855Copy the pixbuf to keep it (don't just add a reference), as it may get
4856recycled as you advance the iterator.</doc>
4857 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4858 line="199"/>
4859 <return-value transfer-ownership="none">
4860 <doc xml:space="preserve"
4861 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4862 line="779">the pixbuf to be displayed</doc>
4863 <type name="Pixbuf" c:type="GdkPixbuf*"/>
4864 </return-value>
4865 <parameters>
4866 <instance-parameter name="iter" transfer-ownership="none">
4867 <doc xml:space="preserve"
4868 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4869 line="761">an animation iterator</doc>
4870 <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4871 </instance-parameter>
4872 </parameters>
4873 </virtual-method>
4874 <virtual-method name="on_currently_loading_frame"
4875 invoker="on_currently_loading_frame">
4876 <doc xml:space="preserve"
4877 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4878 line="790">Used to determine how to respond to the area_updated signal on
4879#GdkPixbufLoader when loading an animation.
4880
4881The `::area_updated` signal is emitted for an area of the frame currently
4882streaming in to the loader. So if you're on the currently loading frame,
4883you will need to redraw the screen for the updated area.</doc>
4884 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4885 line="201"/>
4886 <return-value transfer-ownership="none">
4887 <doc xml:space="preserve"
4888 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4889 line="801">`TRUE` if the frame we're on is partially loaded, or the last frame</doc>
4890 <type name="gboolean" c:type="gboolean"/>
4891 </return-value>
4892 <parameters>
4893 <instance-parameter name="iter" transfer-ownership="none">
4894 <doc xml:space="preserve"
4895 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4896 line="792">a #GdkPixbufAnimationIter</doc>
4897 <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4898 </instance-parameter>
4899 </parameters>
4900 </virtual-method>
4901 <method name="advance" c:identifier="gdk_pixbuf_animation_iter_advance">
4902 <doc xml:space="preserve"
4903 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4904 line="812">Possibly advances an animation to a new frame.
4905
4906Chooses the frame based on the start time passed to
4907gdk_pixbuf_animation_get_iter().
4908
4909@current_time would normally come from g_get_current_time(), and
4910must be greater than or equal to the time passed to
4911gdk_pixbuf_animation_get_iter(), and must increase or remain
4912unchanged each time gdk_pixbuf_animation_iter_get_pixbuf() is
4913called. That is, you can't go backward in time; animations only
4914play forward.
4915
4916As a shortcut, pass `NULL` for the current time and g_get_current_time()
4917will be invoked on your behalf. So you only need to explicitly pass
4918@current_time if you're doing something odd like playing the animation
4919at double speed.
4920
4921If this function returns `FALSE`, there's no need to update the animation
4922display, assuming the display had been rendered prior to advancing;
4923if `TRUE`, you need to call gdk_pixbuf_animation_iter_get_pixbuf()
4924and update the display with the new pixbuf.</doc>
4925 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4926 line="111"/>
4927 <return-value transfer-ownership="none">
4928 <doc xml:space="preserve"
4929 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4930 line="839">`TRUE` if the image may need updating</doc>
4931 <type name="gboolean" c:type="gboolean"/>
4932 </return-value>
4933 <parameters>
4934 <instance-parameter name="iter" transfer-ownership="none">
4935 <doc xml:space="preserve"
4936 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4937 line="814">a #GdkPixbufAnimationIter</doc>
4938 <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4939 </instance-parameter>
4940 <parameter name="current_time"
4941 transfer-ownership="none"
4942 nullable="1"
4943 allow-none="1">
4944 <doc xml:space="preserve"
4945 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4946 line="815">current time</doc>
4947 <type name="GLib.TimeVal" c:type="const GTimeVal*"/>
4948 </parameter>
4949 </parameters>
4950 </method>
4951 <method name="get_delay_time"
4952 c:identifier="gdk_pixbuf_animation_iter_get_delay_time">
4953 <doc xml:space="preserve"
4954 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4955 line="734">Gets the number of milliseconds the current pixbuf should be displayed,
4956or -1 if the current pixbuf should be displayed forever.
4957
4958The `g_timeout_add()` function conveniently takes a timeout in milliseconds,
4959so you can use a timeout to schedule the next update.
4960
4961Note that some formats, like GIF, might clamp the timeout values in the
4962image file to avoid updates that are just too quick. The minimum timeout
4963for GIF images is currently 20 milliseconds.</doc>
4964 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
4965 line="104"/>
4966 <return-value transfer-ownership="none">
4967 <doc xml:space="preserve"
4968 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4969 line="748">delay time in milliseconds (thousandths of a second)</doc>
4970 <type name="gint" c:type="int"/>
4971 </return-value>
4972 <parameters>
4973 <instance-parameter name="iter" transfer-ownership="none">
4974 <doc xml:space="preserve"
4975 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4976 line="736">an animation iterator</doc>
4977 <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
4978 </instance-parameter>
4979 </parameters>
4980 </method>
4981 <method name="get_pixbuf"
4982 c:identifier="gdk_pixbuf_animation_iter_get_pixbuf">
4983 <doc xml:space="preserve"
4984 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
4985 line="759">Gets the current pixbuf which should be displayed.
4986
4987The pixbuf might not be the same size as the animation itself
4988(gdk_pixbuf_animation_get_width(), gdk_pixbuf_animation_get_height()).
4989
4990This pixbuf should be displayed for gdk_pixbuf_animation_iter_get_delay_time()
4991milliseconds.
4992
4993The caller of this function does not own a reference to the returned
4994pixbuf; the returned pixbuf will become invalid when the iterator
4995advances to the next frame, which may happen anytime you call
4996gdk_pixbuf_animation_iter_advance().
4997
4998Copy the pixbuf to keep it (don't just add a reference), as it may get
4999recycled as you advance the iterator.</doc>
5000 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5001 line="106"/>
5002 <return-value transfer-ownership="none">
5003 <doc xml:space="preserve"
5004 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5005 line="779">the pixbuf to be displayed</doc>
5006 <type name="Pixbuf" c:type="GdkPixbuf*"/>
5007 </return-value>
5008 <parameters>
5009 <instance-parameter name="iter" transfer-ownership="none">
5010 <doc xml:space="preserve"
5011 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5012 line="761">an animation iterator</doc>
5013 <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
5014 </instance-parameter>
5015 </parameters>
5016 </method>
5017 <method name="on_currently_loading_frame"
5018 c:identifier="gdk_pixbuf_animation_iter_on_currently_loading_frame">
5019 <doc xml:space="preserve"
5020 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5021 line="790">Used to determine how to respond to the area_updated signal on
5022#GdkPixbufLoader when loading an animation.
5023
5024The `::area_updated` signal is emitted for an area of the frame currently
5025streaming in to the loader. So if you're on the currently loading frame,
5026you will need to redraw the screen for the updated area.</doc>
5027 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5028 line="108"/>
5029 <return-value transfer-ownership="none">
5030 <doc xml:space="preserve"
5031 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5032 line="801">`TRUE` if the frame we're on is partially loaded, or the last frame</doc>
5033 <type name="gboolean" c:type="gboolean"/>
5034 </return-value>
5035 <parameters>
5036 <instance-parameter name="iter" transfer-ownership="none">
5037 <doc xml:space="preserve"
5038 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5039 line="792">a #GdkPixbufAnimationIter</doc>
5040 <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
5041 </instance-parameter>
5042 </parameters>
5043 </method>
5044 <field name="parent_instance">
5045 <type name="GObject.Object" c:type="GObject"/>
5046 </field>
5047 </class>
5048 <record name="PixbufAnimationIterClass"
5049 c:type="GdkPixbufAnimationIterClass"
5050 glib:is-gtype-struct-for="PixbufAnimationIter">
5051 <doc xml:space="preserve"
5052 filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5053 line="165">Modules supporting animations must derive a type from
5054#GdkPixbufAnimationIter, providing suitable implementations of the
5055virtual functions.</doc>
5056 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5057 line="205"/>
5058 <field name="parent_class">
5059 <doc xml:space="preserve"
5060 filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5061 line="167">the parent class</doc>
5062 <type name="GObject.ObjectClass" c:type="GObjectClass"/>
5063 </field>
5064 <field name="get_delay_time">
5065 <doc xml:space="preserve"
5066 filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5067 line="168">returns the time in milliseconds that the current frame
5068 should be shown.</doc>
5069 <callback name="get_delay_time">
5070 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5071 line="197"/>
5072 <return-value transfer-ownership="none">
5073 <doc xml:space="preserve"
5074 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5075 line="748">delay time in milliseconds (thousandths of a second)</doc>
5076 <type name="gint" c:type="int"/>
5077 </return-value>
5078 <parameters>
5079 <parameter name="iter" transfer-ownership="none">
5080 <doc xml:space="preserve"
5081 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5082 line="736">an animation iterator</doc>
5083 <type name="PixbufAnimationIter"
5084 c:type="GdkPixbufAnimationIter*"/>
5085 </parameter>
5086 </parameters>
5087 </callback>
5088 </field>
5089 <field name="get_pixbuf">
5090 <doc xml:space="preserve"
5091 filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5092 line="170">returns the current frame.</doc>
5093 <callback name="get_pixbuf">
5094 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5095 line="199"/>
5096 <return-value transfer-ownership="none">
5097 <doc xml:space="preserve"
5098 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5099 line="779">the pixbuf to be displayed</doc>
5100 <type name="Pixbuf" c:type="GdkPixbuf*"/>
5101 </return-value>
5102 <parameters>
5103 <parameter name="iter" transfer-ownership="none">
5104 <doc xml:space="preserve"
5105 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5106 line="761">an animation iterator</doc>
5107 <type name="PixbufAnimationIter"
5108 c:type="GdkPixbufAnimationIter*"/>
5109 </parameter>
5110 </parameters>
5111 </callback>
5112 </field>
5113 <field name="on_currently_loading_frame">
5114 <doc xml:space="preserve"
5115 filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5116 line="171">returns whether the current frame of @iter is
5117 being loaded.</doc>
5118 <callback name="on_currently_loading_frame">
5119 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5120 line="201"/>
5121 <return-value transfer-ownership="none">
5122 <doc xml:space="preserve"
5123 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5124 line="801">`TRUE` if the frame we're on is partially loaded, or the last frame</doc>
5125 <type name="gboolean" c:type="gboolean"/>
5126 </return-value>
5127 <parameters>
5128 <parameter name="iter" transfer-ownership="none">
5129 <doc xml:space="preserve"
5130 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5131 line="792">a #GdkPixbufAnimationIter</doc>
5132 <type name="PixbufAnimationIter"
5133 c:type="GdkPixbufAnimationIter*"/>
5134 </parameter>
5135 </parameters>
5136 </callback>
5137 </field>
5138 <field name="advance">
5139 <doc xml:space="preserve"
5140 filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5141 line="173">advances the iterator to @current_time, possibly changing the
5142 current frame.</doc>
5143 <callback name="advance">
5144 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
5145 line="203"/>
5146 <return-value transfer-ownership="none">
5147 <doc xml:space="preserve"
5148 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5149 line="839">`TRUE` if the image may need updating</doc>
5150 <type name="gboolean" c:type="gboolean"/>
5151 </return-value>
5152 <parameters>
5153 <parameter name="iter" transfer-ownership="none">
5154 <doc xml:space="preserve"
5155 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5156 line="814">a #GdkPixbufAnimationIter</doc>
5157 <type name="PixbufAnimationIter"
5158 c:type="GdkPixbufAnimationIter*"/>
5159 </parameter>
5160 <parameter name="current_time"
5161 transfer-ownership="none"
5162 nullable="1"
5163 allow-none="1">
5164 <doc xml:space="preserve"
5165 filename="gdk-pixbuf/gdk-pixbuf-animation.c"
5166 line="815">current time</doc>
5167 <type name="GLib.TimeVal" c:type="const GTimeVal*"/>
5168 </parameter>
5169 </parameters>
5170 </callback>
5171 </field>
5172 </record>
5173 <callback name="PixbufDestroyNotify" c:type="GdkPixbufDestroyNotify">
5174 <doc xml:space="preserve"
5175 filename="gdk-pixbuf/gdk-pixbuf-core.h"
5176 line="96">A function of this type is responsible for freeing the pixel array
5177of a pixbuf.
5178
5179The gdk_pixbuf_new_from_data() function lets you pass in a pre-allocated
5180pixel array so that a pixbuf can be created from it; in this case you
5181will need to pass in a function of type `GdkPixbufDestroyNotify` so that
5182the pixel data can be freed when the pixbuf is finalized.</doc>
5183 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="110"/>
5184 <return-value transfer-ownership="none">
5185 <type name="none" c:type="void"/>
5186 </return-value>
5187 <parameters>
5188 <parameter name="pixels" transfer-ownership="none">
5189 <doc xml:space="preserve"
5190 filename="gdk-pixbuf/gdk-pixbuf-core.h"
5191 line="98">The pixel array of the pixbuf
5192 that is being finalized.</doc>
5193 <array zero-terminated="0" c:type="guchar*">
5194 <type name="guint8"/>
5195 </array>
5196 </parameter>
5197 <parameter name="data"
5198 transfer-ownership="none"
5199 nullable="1"
5200 allow-none="1"
5201 closure="1">
5202 <doc xml:space="preserve"
5203 filename="gdk-pixbuf/gdk-pixbuf-core.h"
5204 line="100">User closure data.</doc>
5205 <type name="gpointer" c:type="gpointer"/>
5206 </parameter>
5207 </parameters>
5208 </callback>
5209 <enumeration name="PixbufError"
5210 glib:type-name="GdkPixbufError"
5211 glib:get-type="gdk_pixbuf_error_get_type"
5212 c:type="GdkPixbufError"
5213 glib:error-domain="gdk-pixbuf-error-quark">
5214 <doc xml:space="preserve"
5215 filename="gdk-pixbuf/gdk-pixbuf-core.h"
5216 line="123">An error code in the `GDK_PIXBUF_ERROR` domain.
5217
5218Many gdk-pixbuf operations can cause errors in this domain, or in
5219the `G_FILE_ERROR` domain.</doc>
5220 <member name="corrupt_image"
5221 value="0"
5222 c:identifier="GDK_PIXBUF_ERROR_CORRUPT_IMAGE"
5223 glib:nick="corrupt-image"
5224 glib:name="GDK_PIXBUF_ERROR_CORRUPT_IMAGE">
5225 <doc xml:space="preserve"
5226 filename="gdk-pixbuf/gdk-pixbuf-core.h"
5227 line="125">An image file was broken somehow.</doc>
5228 </member>
5229 <member name="insufficient_memory"
5230 value="1"
5231 c:identifier="GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY"
5232 glib:nick="insufficient-memory"
5233 glib:name="GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY">
5234 <doc xml:space="preserve"
5235 filename="gdk-pixbuf/gdk-pixbuf-core.h"
5236 line="126">Not enough memory.</doc>
5237 </member>
5238 <member name="bad_option"
5239 value="2"
5240 c:identifier="GDK_PIXBUF_ERROR_BAD_OPTION"
5241 glib:nick="bad-option"
5242 glib:name="GDK_PIXBUF_ERROR_BAD_OPTION">
5243 <doc xml:space="preserve"
5244 filename="gdk-pixbuf/gdk-pixbuf-core.h"
5245 line="127">A bad option was passed to a pixbuf save module.</doc>
5246 </member>
5247 <member name="unknown_type"
5248 value="3"
5249 c:identifier="GDK_PIXBUF_ERROR_UNKNOWN_TYPE"
5250 glib:nick="unknown-type"
5251 glib:name="GDK_PIXBUF_ERROR_UNKNOWN_TYPE">
5252 <doc xml:space="preserve"
5253 filename="gdk-pixbuf/gdk-pixbuf-core.h"
5254 line="128">Unknown image type.</doc>
5255 </member>
5256 <member name="unsupported_operation"
5257 value="4"
5258 c:identifier="GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION"
5259 glib:nick="unsupported-operation"
5260 glib:name="GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION">
5261 <doc xml:space="preserve"
5262 filename="gdk-pixbuf/gdk-pixbuf-core.h"
5263 line="129">Don't know how to perform the
5264 given operation on the type of image at hand.</doc>
5265 </member>
5266 <member name="failed"
5267 value="5"
5268 c:identifier="GDK_PIXBUF_ERROR_FAILED"
5269 glib:nick="failed"
5270 glib:name="GDK_PIXBUF_ERROR_FAILED">
5271 <doc xml:space="preserve"
5272 filename="gdk-pixbuf/gdk-pixbuf-core.h"
5273 line="131">Generic failure code, something went wrong.</doc>
5274 </member>
5275 <member name="incomplete_animation"
5276 value="6"
5277 c:identifier="GDK_PIXBUF_ERROR_INCOMPLETE_ANIMATION"
5278 glib:nick="incomplete-animation"
5279 glib:name="GDK_PIXBUF_ERROR_INCOMPLETE_ANIMATION">
5280 <doc xml:space="preserve"
5281 filename="gdk-pixbuf/gdk-pixbuf-core.h"
5282 line="132">Only part of the animation was loaded.</doc>
5283 </member>
5284 <function name="quark" c:identifier="gdk_pixbuf_error_quark">
5285 <return-value transfer-ownership="none">
5286 <type name="GLib.Quark" c:type="GQuark"/>
5287 </return-value>
5288 </function>
5289 </enumeration>
5290 <record name="PixbufFormat"
5291 c:type="GdkPixbufFormat"
5292 version="2.2"
5293 glib:type-name="GdkPixbufFormat"
5294 glib:get-type="gdk_pixbuf_format_get_type"
5295 c:symbol-prefix="pixbuf_format">
5296 <doc xml:space="preserve"
5297 filename="gdk-pixbuf/gdk-pixbuf-io.h"
5298 line="443">A `GdkPixbufFormat` contains information about the image format accepted
5299by a module.
5300
5301Only modules should access the fields directly, applications should
5302use the `gdk_pixbuf_format_*` family of functions.</doc>
5303 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="475"/>
5304 <field name="name" writable="1">
5305 <doc xml:space="preserve"
5306 filename="gdk-pixbuf/gdk-pixbuf-io.h"
5307 line="445">the name of the image format</doc>
5308 <type name="utf8" c:type="gchar*"/>
5309 </field>
5310 <field name="signature" writable="1">
5311 <doc xml:space="preserve"
5312 filename="gdk-pixbuf/gdk-pixbuf-io.h"
5313 line="446">the signature of the module</doc>
5314 <type name="PixbufModulePattern" c:type="GdkPixbufModulePattern*"/>
5315 </field>
5316 <field name="domain" writable="1">
5317 <doc xml:space="preserve"
5318 filename="gdk-pixbuf/gdk-pixbuf-io.h"
5319 line="447">the message domain for the `description`</doc>
5320 <type name="utf8" c:type="gchar*"/>
5321 </field>
5322 <field name="description" writable="1">
5323 <doc xml:space="preserve"
5324 filename="gdk-pixbuf/gdk-pixbuf-io.h"
5325 line="448">a description of the image format</doc>
5326 <type name="utf8" c:type="gchar*"/>
5327 </field>
5328 <field name="mime_types" writable="1">
5329 <doc xml:space="preserve"
5330 filename="gdk-pixbuf/gdk-pixbuf-io.h"
5331 line="449">the MIME types for the image format</doc>
5332 <array c:type="gchar**">
5333 <type name="utf8" c:type="gchar*"/>
5334 </array>
5335 </field>
5336 <field name="extensions" writable="1">
5337 <doc xml:space="preserve"
5338 filename="gdk-pixbuf/gdk-pixbuf-io.h"
5339 line="450">typical filename extensions for the
5340 image format</doc>
5341 <array c:type="gchar**">
5342 <type name="utf8" c:type="gchar*"/>
5343 </array>
5344 </field>
5345 <field name="flags" writable="1">
5346 <doc xml:space="preserve"
5347 filename="gdk-pixbuf/gdk-pixbuf-io.h"
5348 line="452">a combination of `GdkPixbufFormatFlags`</doc>
5349 <type name="guint32" c:type="guint32"/>
5350 </field>
5351 <field name="disabled" writable="1">
5352 <doc xml:space="preserve"
5353 filename="gdk-pixbuf/gdk-pixbuf-io.h"
5354 line="453">a boolean determining whether the loader is disabled`</doc>
5355 <type name="gboolean" c:type="gboolean"/>
5356 </field>
5357 <field name="license" writable="1">
5358 <doc xml:space="preserve"
5359 filename="gdk-pixbuf/gdk-pixbuf-io.h"
5360 line="454">a string containing license information, typically set to
5361 shorthands like "GPL", "LGPL", etc.</doc>
5362 <type name="utf8" c:type="gchar*"/>
5363 </field>
5364 <method name="copy" c:identifier="gdk_pixbuf_format_copy" version="2.22">
5365 <doc xml:space="preserve"
5366 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5367 line="3546">Creates a copy of `format`.</doc>
5368 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="92"/>
5369 <return-value transfer-ownership="full" nullable="1">
5370 <doc xml:space="preserve"
5371 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5372 line="3552">the newly allocated copy of a `GdkPixbufFormat`. Use
5373 gdk_pixbuf_format_free() to free the resources when done</doc>
5374 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5375 </return-value>
5376 <parameters>
5377 <instance-parameter name="format" transfer-ownership="none">
5378 <doc xml:space="preserve"
5379 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5380 line="3548">a pixbuf format</doc>
5381 <type name="PixbufFormat" c:type="const GdkPixbufFormat*"/>
5382 </instance-parameter>
5383 </parameters>
5384 </method>
5385 <method name="free" c:identifier="gdk_pixbuf_format_free" version="2.22">
5386 <doc xml:space="preserve"
5387 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5388 line="3566">Frees the resources allocated when copying a `GdkPixbufFormat`
5389using gdk_pixbuf_format_copy()</doc>
5390 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="94"/>
5391 <return-value transfer-ownership="none">
5392 <type name="none" c:type="void"/>
5393 </return-value>
5394 <parameters>
5395 <instance-parameter name="format" transfer-ownership="none">
5396 <doc xml:space="preserve"
5397 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5398 line="3568">a pixbuf format</doc>
5399 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5400 </instance-parameter>
5401 </parameters>
5402 </method>
5403 <method name="get_description"
5404 c:identifier="gdk_pixbuf_format_get_description"
5405 version="2.2">
5406 <doc xml:space="preserve"
5407 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5408 line="3343">Returns a description of the format.</doc>
5409 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="56"/>
5410 <return-value transfer-ownership="full" nullable="1">
5411 <doc xml:space="preserve"
5412 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5413 line="3349">a description of the format.</doc>
5414 <type name="utf8" c:type="gchar*"/>
5415 </return-value>
5416 <parameters>
5417 <instance-parameter name="format" transfer-ownership="none">
5418 <doc xml:space="preserve"
5419 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5420 line="3345">a `GdkPixbufFormat`</doc>
5421 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5422 </instance-parameter>
5423 </parameters>
5424 </method>
5425 <method name="get_extensions"
5426 c:identifier="gdk_pixbuf_format_get_extensions"
5427 version="2.2">
5428 <doc xml:space="preserve"
5429 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5430 line="3387">Returns the filename extensions typically used for files in the
5431given format.</doc>
5432 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="60"/>
5433 <return-value transfer-ownership="full" nullable="1">
5434 <doc xml:space="preserve"
5435 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5436 line="3394">an array of
5437 filename extensions</doc>
5438 <array c:type="gchar**">
5439 <type name="utf8"/>
5440 </array>
5441 </return-value>
5442 <parameters>
5443 <instance-parameter name="format" transfer-ownership="none">
5444 <doc xml:space="preserve"
5445 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5446 line="3389">a `GdkPixbufFormat`</doc>
5447 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5448 </instance-parameter>
5449 </parameters>
5450 </method>
5451 <method name="get_license"
5452 c:identifier="gdk_pixbuf_format_get_license"
5453 version="2.6">
5454 <doc xml:space="preserve"
5455 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5456 line="3491">Returns information about the license of the image loader for the format.
5457
5458The returned string should be a shorthand for a well known license, e.g.
5459"LGPL", "GPL", "QPL", "GPL/QPL", or "other" to indicate some other license.</doc>
5460 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="74"/>
5461 <return-value transfer-ownership="full" nullable="1">
5462 <doc xml:space="preserve"
5463 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5464 line="3500">a string describing the license of the pixbuf format</doc>
5465 <type name="utf8" c:type="gchar*"/>
5466 </return-value>
5467 <parameters>
5468 <instance-parameter name="format" transfer-ownership="none">
5469 <doc xml:space="preserve"
5470 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5471 line="3493">a pixbuf format</doc>
5472 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5473 </instance-parameter>
5474 </parameters>
5475 </method>
5476 <method name="get_mime_types"
5477 c:identifier="gdk_pixbuf_format_get_mime_types"
5478 version="2.2">
5479 <doc xml:space="preserve"
5480 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5481 line="3369">Returns the mime types supported by the format.</doc>
5482 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="58"/>
5483 <return-value transfer-ownership="full" nullable="1">
5484 <doc xml:space="preserve"
5485 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5486 line="3375">an array of mime types</doc>
5487 <array c:type="gchar**">
5488 <type name="utf8"/>
5489 </array>
5490 </return-value>
5491 <parameters>
5492 <instance-parameter name="format" transfer-ownership="none">
5493 <doc xml:space="preserve"
5494 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5495 line="3371">a `GdkPixbufFormat`</doc>
5496 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5497 </instance-parameter>
5498 </parameters>
5499 </method>
5500 <method name="get_name"
5501 c:identifier="gdk_pixbuf_format_get_name"
5502 version="2.2">
5503 <doc xml:space="preserve"
5504 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5505 line="3325">Returns the name of the format.</doc>
5506 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="54"/>
5507 <return-value transfer-ownership="full" nullable="1">
5508 <doc xml:space="preserve"
5509 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5510 line="3331">the name of the format.</doc>
5511 <type name="utf8" c:type="gchar*"/>
5512 </return-value>
5513 <parameters>
5514 <instance-parameter name="format" transfer-ownership="none">
5515 <doc xml:space="preserve"
5516 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5517 line="3327">a `GdkPixbufFormat`</doc>
5518 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5519 </instance-parameter>
5520 </parameters>
5521 </method>
5522 <method name="is_disabled"
5523 c:identifier="gdk_pixbuf_format_is_disabled"
5524 version="2.6">
5525 <doc xml:space="preserve"
5526 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5527 line="3447">Returns whether this image format is disabled.
5528
5529See gdk_pixbuf_format_set_disabled().</doc>
5530 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="69"/>
5531 <return-value transfer-ownership="none">
5532 <doc xml:space="preserve"
5533 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5534 line="3455">whether this image format is disabled.</doc>
5535 <type name="gboolean" c:type="gboolean"/>
5536 </return-value>
5537 <parameters>
5538 <instance-parameter name="format" transfer-ownership="none">
5539 <doc xml:space="preserve"
5540 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5541 line="3449">a `GdkPixbufFormat`</doc>
5542 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5543 </instance-parameter>
5544 </parameters>
5545 </method>
5546 <method name="is_save_option_supported"
5547 c:identifier="gdk_pixbuf_format_is_save_option_supported"
5548 version="2.36">
5549 <doc xml:space="preserve"
5550 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5551 line="3582">Returns `TRUE` if the save option specified by @option_key is supported when
5552saving a pixbuf using the module implementing @format.
5553
5554See gdk_pixbuf_save() for more information about option keys.</doc>
5555 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="62"/>
5556 <return-value transfer-ownership="none">
5557 <doc xml:space="preserve"
5558 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5559 line="3592">`TRUE` if the specified option is supported</doc>
5560 <type name="gboolean" c:type="gboolean"/>
5561 </return-value>
5562 <parameters>
5563 <instance-parameter name="format" transfer-ownership="none">
5564 <doc xml:space="preserve"
5565 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5566 line="3584">a pixbuf format</doc>
5567 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5568 </instance-parameter>
5569 <parameter name="option_key" transfer-ownership="none">
5570 <doc xml:space="preserve"
5571 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5572 line="3585">the name of an option</doc>
5573 <type name="utf8" c:type="const gchar*"/>
5574 </parameter>
5575 </parameters>
5576 </method>
5577 <method name="is_scalable"
5578 c:identifier="gdk_pixbuf_format_is_scalable"
5579 version="2.6">
5580 <doc xml:space="preserve"
5581 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5582 line="3425">Returns whether this image format is scalable.
5583
5584If a file is in a scalable format, it is preferable to load it at
5585the desired size, rather than loading it at the default size and
5586scaling the resulting pixbuf to the desired size.</doc>
5587 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="67"/>
5588 <return-value transfer-ownership="none">
5589 <doc xml:space="preserve"
5590 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5591 line="3435">whether this image format is scalable.</doc>
5592 <type name="gboolean" c:type="gboolean"/>
5593 </return-value>
5594 <parameters>
5595 <instance-parameter name="format" transfer-ownership="none">
5596 <doc xml:space="preserve"
5597 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5598 line="3427">a `GdkPixbufFormat`</doc>
5599 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5600 </instance-parameter>
5601 </parameters>
5602 </method>
5603 <method name="is_writable"
5604 c:identifier="gdk_pixbuf_format_is_writable"
5605 version="2.2">
5606 <doc xml:space="preserve"
5607 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5608 line="3407">Returns whether pixbufs can be saved in the given format.</doc>
5609 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="65"/>
5610 <return-value transfer-ownership="none">
5611 <doc xml:space="preserve"
5612 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5613 line="3413">whether pixbufs can be saved in the given format.</doc>
5614 <type name="gboolean" c:type="gboolean"/>
5615 </return-value>
5616 <parameters>
5617 <instance-parameter name="format" transfer-ownership="none">
5618 <doc xml:space="preserve"
5619 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5620 line="3409">a `GdkPixbufFormat`</doc>
5621 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5622 </instance-parameter>
5623 </parameters>
5624 </method>
5625 <method name="set_disabled"
5626 c:identifier="gdk_pixbuf_format_set_disabled"
5627 version="2.6">
5628 <doc xml:space="preserve"
5629 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5630 line="3467">Disables or enables an image format.
5631
5632If a format is disabled, GdkPixbuf won't use the image loader for
5633this format to load images.
5634
5635Applications can use this to avoid using image loaders with an
5636inappropriate license, see gdk_pixbuf_format_get_license().</doc>
5637 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="71"/>
5638 <return-value transfer-ownership="none">
5639 <type name="none" c:type="void"/>
5640 </return-value>
5641 <parameters>
5642 <instance-parameter name="format" transfer-ownership="none">
5643 <doc xml:space="preserve"
5644 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5645 line="3469">a `GdkPixbufFormat`</doc>
5646 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5647 </instance-parameter>
5648 <parameter name="disabled" transfer-ownership="none">
5649 <doc xml:space="preserve"
5650 filename="gdk-pixbuf/gdk-pixbuf-io.c"
5651 line="3470">`TRUE` to disable the format @format</doc>
5652 <type name="gboolean" c:type="gboolean"/>
5653 </parameter>
5654 </parameters>
5655 </method>
5656 </record>
5657 <bitfield name="PixbufFormatFlags"
5658 version="2.2"
5659 c:type="GdkPixbufFormatFlags">
5660 <doc xml:space="preserve"
5661 filename="gdk-pixbuf/gdk-pixbuf-io.h"
5662 line="424">Flags which allow a module to specify further details about the supported
5663operations.</doc>
5664 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="441"/>
5665 <member name="writable"
5666 value="1"
5667 c:identifier="GDK_PIXBUF_FORMAT_WRITABLE">
5668 <doc xml:space="preserve"
5669 filename="gdk-pixbuf/gdk-pixbuf-io.h"
5670 line="426">the module can write out images in the format.</doc>
5671 </member>
5672 <member name="scalable"
5673 value="2"
5674 c:identifier="GDK_PIXBUF_FORMAT_SCALABLE">
5675 <doc xml:space="preserve"
5676 filename="gdk-pixbuf/gdk-pixbuf-io.h"
5677 line="427">the image format is scalable</doc>
5678 </member>
5679 <member name="threadsafe"
5680 value="4"
5681 c:identifier="GDK_PIXBUF_FORMAT_THREADSAFE">
5682 <doc xml:space="preserve"
5683 filename="gdk-pixbuf/gdk-pixbuf-io.h"
5684 line="428">the module is threadsafe. gdk-pixbuf
5685 ignores modules that are not marked as threadsafe. (Since 2.28).</doc>
5686 </member>
5687 </bitfield>
5688 <class name="PixbufLoader"
5689 c:symbol-prefix="pixbuf_loader"
5690 c:type="GdkPixbufLoader"
5691 parent="GObject.Object"
5692 glib:type-name="GdkPixbufLoader"
5693 glib:get-type="gdk_pixbuf_loader_get_type"
5694 glib:type-struct="PixbufLoaderClass">
5695 <doc xml:space="preserve"
5696 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5697 line="34">Incremental image loader.
5698
5699`GdkPixbufLoader` provides a way for applications to drive the
5700process of loading an image, by letting them send the image data
5701directly to the loader instead of having the loader read the data
5702from a file. Applications can use this functionality instead of
5703`gdk_pixbuf_new_from_file()` or `gdk_pixbuf_animation_new_from_file()`
5704when they need to parse image data in small chunks. For example,
5705it should be used when reading an image from a (potentially) slow
5706network connection, or when loading an extremely large file.
5707
5708To use `GdkPixbufLoader` to load an image, create a new instance,
5709and call [method@GdkPixbuf.PixbufLoader.write] to send the data
5710to it. When done, [method@GdkPixbuf.PixbufLoader.close] should be
5711called to end the stream and finalize everything.
5712
5713The loader will emit three important signals throughout the process:
5714
5715 - [signal@GdkPixbuf.PixbufLoader::size-prepared] will be emitted as
5716 soon as the image has enough information to determine the size of
5717 the image to be used. If you want to scale the image while loading
5718 it, you can call [method@GdkPixbuf.PixbufLoader.set_size] in
5719 response to this signal.
5720 - [signal@GdkPixbuf.PixbufLoader::area-prepared] will be emitted as
5721 soon as the pixbuf of the desired has been allocated. You can obtain
5722 the `GdkPixbuf` instance by calling [method@GdkPixbuf.PixbufLoader.get_pixbuf].
5723 If you want to use it, simply acquire a reference to it. You can
5724 also call `gdk_pixbuf_loader_get_pixbuf()` later to get the same
5725 pixbuf.
5726 - [signal@GdkPixbuf.PixbufLoader::area-updated] will be emitted every
5727 time a region is updated. This way you can update a partially
5728 completed image. Note that you do not know anything about the
5729 completeness of an image from the updated area. For example, in an
5730 interlaced image you will need to make several passes before the
5731 image is done loading.
5732
5733## Loading an animation
5734
5735Loading an animation is almost as easy as loading an image. Once the
5736first [signal@GdkPixbuf.PixbufLoader::area-prepared] signal has been
5737emitted, you can call [method@GdkPixbuf.PixbufLoader.get_animation] to
5738get the [class@GdkPixbuf.PixbufAnimation] instance, and then call
5739and [method@GdkPixbuf.PixbufAnimation.get_iter] to get a
5740[class@GdkPixbuf.PixbufAnimationIter] to retrieve the pixbuf for the
5741desired time stamp.</doc>
5742 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="74"/>
5743 <constructor name="new" c:identifier="gdk_pixbuf_loader_new">
5744 <doc xml:space="preserve"
5745 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5746 line="606">Creates a new pixbuf loader object.</doc>
5747 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="79"/>
5748 <return-value transfer-ownership="full">
5749 <doc xml:space="preserve"
5750 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5751 line="611">A newly-created pixbuf loader.</doc>
5752 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5753 </return-value>
5754 </constructor>
5755 <constructor name="new_with_mime_type"
5756 c:identifier="gdk_pixbuf_loader_new_with_mime_type"
5757 version="2.4"
5758 throws="1">
5759 <doc xml:space="preserve"
5760 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5761 line="664">Creates a new pixbuf loader object that always attempts to parse
5762image data as if it were an image of MIME type @mime_type, instead of
5763identifying the type automatically.
5764
5765This function is useful if you want an error if the image isn't the
5766expected MIME type; for loading image formats that can't be reliably
5767identified by looking at the data; or if the user manually forces a
5768specific MIME type.
5769
5770The list of supported mime types depends on what image loaders
5771are installed, but typically "image/png", "image/jpeg", "image/gif",
5772"image/tiff" and "image/x-xpixmap" are among the supported mime types.
5773To obtain the full list of supported mime types, call
5774gdk_pixbuf_format_get_mime_types() on each of the #GdkPixbufFormat
5775structs returned by gdk_pixbuf_get_formats().</doc>
5776 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="84"/>
5777 <return-value transfer-ownership="full">
5778 <doc xml:space="preserve"
5779 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5780 line="685">A newly-created pixbuf loader.</doc>
5781 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5782 </return-value>
5783 <parameters>
5784 <parameter name="mime_type" transfer-ownership="none">
5785 <doc xml:space="preserve"
5786 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5787 line="666">the mime type to be loaded</doc>
5788 <type name="utf8" c:type="const char*"/>
5789 </parameter>
5790 </parameters>
5791 </constructor>
5792 <constructor name="new_with_type"
5793 c:identifier="gdk_pixbuf_loader_new_with_type"
5794 throws="1">
5795 <doc xml:space="preserve"
5796 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5797 line="619">Creates a new pixbuf loader object that always attempts to parse
5798image data as if it were an image of type @image_type, instead of
5799identifying the type automatically.
5800
5801This function is useful if you want an error if the image isn't the
5802expected type; for loading image formats that can't be reliably
5803identified by looking at the data; or if the user manually forces
5804a specific type.
5805
5806The list of supported image formats depends on what image loaders
5807are installed, but typically "png", "jpeg", "gif", "tiff" and
5808"xpm" are among the supported formats. To obtain the full list of
5809supported image formats, call gdk_pixbuf_format_get_name() on each
5810of the #GdkPixbufFormat structs returned by gdk_pixbuf_get_formats().</doc>
5811 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="81"/>
5812 <return-value transfer-ownership="full">
5813 <doc xml:space="preserve"
5814 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5815 line="639">A newly-created pixbuf loader.</doc>
5816 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5817 </return-value>
5818 <parameters>
5819 <parameter name="image_type" transfer-ownership="none">
5820 <doc xml:space="preserve"
5821 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5822 line="621">name of the image format to be loaded with the image</doc>
5823 <type name="utf8" c:type="const char*"/>
5824 </parameter>
5825 </parameters>
5826 </constructor>
5827 <virtual-method name="area_prepared">
5828 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="64"/>
5829 <return-value transfer-ownership="none">
5830 <type name="none" c:type="void"/>
5831 </return-value>
5832 <parameters>
5833 <instance-parameter name="loader" transfer-ownership="none">
5834 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5835 </instance-parameter>
5836 </parameters>
5837 </virtual-method>
5838 <virtual-method name="area_updated">
5839 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="67"/>
5840 <return-value transfer-ownership="none">
5841 <type name="none" c:type="void"/>
5842 </return-value>
5843 <parameters>
5844 <instance-parameter name="loader" transfer-ownership="none">
5845 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5846 </instance-parameter>
5847 <parameter name="x" transfer-ownership="none">
5848 <type name="gint" c:type="int"/>
5849 </parameter>
5850 <parameter name="y" transfer-ownership="none">
5851 <type name="gint" c:type="int"/>
5852 </parameter>
5853 <parameter name="width" transfer-ownership="none">
5854 <type name="gint" c:type="int"/>
5855 </parameter>
5856 <parameter name="height" transfer-ownership="none">
5857 <type name="gint" c:type="int"/>
5858 </parameter>
5859 </parameters>
5860 </virtual-method>
5861 <virtual-method name="closed">
5862 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="73"/>
5863 <return-value transfer-ownership="none">
5864 <type name="none" c:type="void"/>
5865 </return-value>
5866 <parameters>
5867 <instance-parameter name="loader" transfer-ownership="none">
5868 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5869 </instance-parameter>
5870 </parameters>
5871 </virtual-method>
5872 <virtual-method name="size_prepared">
5873 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="60"/>
5874 <return-value transfer-ownership="none">
5875 <type name="none" c:type="void"/>
5876 </return-value>
5877 <parameters>
5878 <instance-parameter name="loader" transfer-ownership="none">
5879 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5880 </instance-parameter>
5881 <parameter name="width" transfer-ownership="none">
5882 <type name="gint" c:type="int"/>
5883 </parameter>
5884 <parameter name="height" transfer-ownership="none">
5885 <type name="gint" c:type="int"/>
5886 </parameter>
5887 </parameters>
5888 </virtual-method>
5889 <method name="close" c:identifier="gdk_pixbuf_loader_close" throws="1">
5890 <doc xml:space="preserve"
5891 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5892 line="815">Informs a pixbuf loader that no further writes with
5893gdk_pixbuf_loader_write() will occur, so that it can free its
5894internal loading structures.
5895
5896This function also tries to parse any data that hasn't yet been parsed;
5897if the remaining data is partial or corrupt, an error will be returned.
5898
5899If `FALSE` is returned, `error` will be set to an error from the
5900`GDK_PIXBUF_ERROR` or `G_FILE_ERROR` domains.
5901
5902If you're just cancelling a load rather than expecting it to be finished,
5903passing `NULL` for `error` to ignore it is reasonable.
5904
5905Remember that this function does not release a reference on the loader, so
5906you will need to explicitly release any reference you hold.</doc>
5907 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="104"/>
5908 <return-value transfer-ownership="none">
5909 <doc xml:space="preserve"
5910 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5911 line="836">`TRUE` if all image data written so far was successfully
5912 passed out via the update_area signal</doc>
5913 <type name="gboolean" c:type="gboolean"/>
5914 </return-value>
5915 <parameters>
5916 <instance-parameter name="loader" transfer-ownership="none">
5917 <doc xml:space="preserve"
5918 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5919 line="817">A pixbuf loader.</doc>
5920 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5921 </instance-parameter>
5922 </parameters>
5923 </method>
5924 <method name="get_animation"
5925 c:identifier="gdk_pixbuf_loader_get_animation">
5926 <doc xml:space="preserve"
5927 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5928 line="787">Queries the #GdkPixbufAnimation that a pixbuf loader is currently creating.
5929
5930In general it only makes sense to call this function after the
5931[signal@GdkPixbuf.PixbufLoader::area-prepared] signal has been emitted by
5932the loader.
5933
5934If the loader doesn't have enough bytes yet, and hasn't emitted the `area-prepared`
5935signal, this function will return `NULL`.</doc>
5936 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="102"/>
5937 <return-value transfer-ownership="none" nullable="1">
5938 <doc xml:space="preserve"
5939 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5940 line="800">The animation that the loader is
5941 currently loading</doc>
5942 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
5943 </return-value>
5944 <parameters>
5945 <instance-parameter name="loader" transfer-ownership="none">
5946 <doc xml:space="preserve"
5947 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5948 line="789">A pixbuf loader</doc>
5949 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5950 </instance-parameter>
5951 </parameters>
5952 </method>
5953 <method name="get_format"
5954 c:identifier="gdk_pixbuf_loader_get_format"
5955 version="2.2">
5956 <doc xml:space="preserve"
5957 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5958 line="903">Obtains the available information about the format of the
5959currently loading image file.</doc>
5960 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="107"/>
5961 <return-value transfer-ownership="none" nullable="1">
5962 <doc xml:space="preserve"
5963 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5964 line="910">A #GdkPixbufFormat</doc>
5965 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
5966 </return-value>
5967 <parameters>
5968 <instance-parameter name="loader" transfer-ownership="none">
5969 <doc xml:space="preserve"
5970 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5971 line="905">A pixbuf loader.</doc>
5972 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
5973 </instance-parameter>
5974 </parameters>
5975 </method>
5976 <method name="get_pixbuf" c:identifier="gdk_pixbuf_loader_get_pixbuf">
5977 <doc xml:space="preserve"
5978 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5979 line="747">Queries the #GdkPixbuf that a pixbuf loader is currently creating.
5980
5981In general it only makes sense to call this function after the
5982[signal@GdkPixbuf.PixbufLoader::area-prepared] signal has been
5983emitted by the loader; this means that enough data has been read
5984to know the size of the image that will be allocated.
5985
5986If the loader has not received enough data via gdk_pixbuf_loader_write(),
5987then this function returns `NULL`.
5988
5989The returned pixbuf will be the same in all future calls to the loader,
5990so if you want to keep using it, you should acquire a reference to it.
5991
5992Additionally, if the loader is an animation, it will return the "static
5993image" of the animation (see gdk_pixbuf_animation_get_static_image()).</doc>
5994 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="100"/>
5995 <return-value transfer-ownership="none" nullable="1">
5996 <doc xml:space="preserve"
5997 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
5998 line="767">The pixbuf that the loader is
5999 creating</doc>
6000 <type name="Pixbuf" c:type="GdkPixbuf*"/>
6001 </return-value>
6002 <parameters>
6003 <instance-parameter name="loader" transfer-ownership="none">
6004 <doc xml:space="preserve"
6005 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6006 line="749">A pixbuf loader.</doc>
6007 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6008 </instance-parameter>
6009 </parameters>
6010 </method>
6011 <method name="set_size"
6012 c:identifier="gdk_pixbuf_loader_set_size"
6013 version="2.2">
6014 <doc xml:space="preserve"
6015 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6016 line="260">Causes the image to be scaled while it is loaded.
6017
6018The desired image size can be determined relative to the original
6019size of the image by calling gdk_pixbuf_loader_set_size() from a
6020signal handler for the ::size-prepared signal.
6021
6022Attempts to set the desired image size are ignored after the
6023emission of the ::size-prepared signal.</doc>
6024 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="87"/>
6025 <return-value transfer-ownership="none">
6026 <type name="none" c:type="void"/>
6027 </return-value>
6028 <parameters>
6029 <instance-parameter name="loader" transfer-ownership="none">
6030 <doc xml:space="preserve"
6031 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6032 line="262">A pixbuf loader.</doc>
6033 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6034 </instance-parameter>
6035 <parameter name="width" transfer-ownership="none">
6036 <doc xml:space="preserve"
6037 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6038 line="263">The desired width of the image being loaded.</doc>
6039 <type name="gint" c:type="int"/>
6040 </parameter>
6041 <parameter name="height" transfer-ownership="none">
6042 <doc xml:space="preserve"
6043 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6044 line="264">The desired height of the image being loaded.</doc>
6045 <type name="gint" c:type="int"/>
6046 </parameter>
6047 </parameters>
6048 </method>
6049 <method name="write" c:identifier="gdk_pixbuf_loader_write" throws="1">
6050 <doc xml:space="preserve"
6051 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6052 line="516">Parses the next `count` bytes in the given image buffer.</doc>
6053 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="91"/>
6054 <return-value transfer-ownership="none">
6055 <doc xml:space="preserve"
6056 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6057 line="525">`TRUE` if the write was successful, or
6058 `FALSE` if the loader cannot parse the buffer</doc>
6059 <type name="gboolean" c:type="gboolean"/>
6060 </return-value>
6061 <parameters>
6062 <instance-parameter name="loader" transfer-ownership="none">
6063 <doc xml:space="preserve"
6064 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6065 line="518">A pixbuf loader.</doc>
6066 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6067 </instance-parameter>
6068 <parameter name="buf" transfer-ownership="none">
6069 <doc xml:space="preserve"
6070 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6071 line="519">Pointer to image data.</doc>
6072 <array length="1" zero-terminated="0" c:type="const guchar*">
6073 <type name="guint8" c:type="guchar"/>
6074 </array>
6075 </parameter>
6076 <parameter name="count" transfer-ownership="none">
6077 <doc xml:space="preserve"
6078 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6079 line="520">Length of the @buf buffer in bytes.</doc>
6080 <type name="gsize" c:type="gsize"/>
6081 </parameter>
6082 </parameters>
6083 </method>
6084 <method name="write_bytes"
6085 c:identifier="gdk_pixbuf_loader_write_bytes"
6086 version="2.30"
6087 throws="1">
6088 <doc xml:space="preserve"
6089 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6090 line="577">Parses the next contents of the given image buffer.</doc>
6091 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="96"/>
6092 <return-value transfer-ownership="none">
6093 <doc xml:space="preserve"
6094 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6095 line="585">`TRUE` if the write was successful, or `FALSE` if
6096 the loader cannot parse the buffer</doc>
6097 <type name="gboolean" c:type="gboolean"/>
6098 </return-value>
6099 <parameters>
6100 <instance-parameter name="loader" transfer-ownership="none">
6101 <doc xml:space="preserve"
6102 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6103 line="579">A pixbuf loader.</doc>
6104 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6105 </instance-parameter>
6106 <parameter name="buffer" transfer-ownership="none">
6107 <doc xml:space="preserve"
6108 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6109 line="580">The image data as a `GBytes` buffer.</doc>
6110 <type name="GLib.Bytes" c:type="GBytes*"/>
6111 </parameter>
6112 </parameters>
6113 </method>
6114 <field name="parent_instance" readable="0" private="1">
6115 <type name="GObject.Object" c:type="GObject"/>
6116 </field>
6117 <field name="priv" readable="0" private="1">
6118 <type name="gpointer" c:type="gpointer"/>
6119 </field>
6120 <glib:signal name="area-prepared" when="last">
6121 <doc xml:space="preserve"
6122 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6123 line="154">This signal is emitted when the pixbuf loader has allocated the
6124pixbuf in the desired size.
6125
6126After this signal is emitted, applications can call
6127gdk_pixbuf_loader_get_pixbuf() to fetch the partially-loaded
6128pixbuf.</doc>
6129 <return-value transfer-ownership="none">
6130 <type name="none" c:type="void"/>
6131 </return-value>
6132 </glib:signal>
6133 <glib:signal name="area-updated" when="last">
6134 <doc xml:space="preserve"
6135 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6136 line="174">This signal is emitted when a significant area of the image being
6137loaded has been updated.
6138
6139Normally it means that a complete scanline has been read in, but
6140it could be a different area as well.
6141
6142Applications can use this signal to know when to repaint
6143areas of an image that is being loaded.</doc>
6144 <return-value transfer-ownership="none">
6145 <type name="none" c:type="void"/>
6146 </return-value>
6147 <parameters>
6148 <parameter name="x" transfer-ownership="none">
6149 <doc xml:space="preserve"
6150 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6151 line="177">X offset of upper-left corner of the updated area.</doc>
6152 <type name="gint" c:type="gint"/>
6153 </parameter>
6154 <parameter name="y" transfer-ownership="none">
6155 <doc xml:space="preserve"
6156 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6157 line="178">Y offset of upper-left corner of the updated area.</doc>
6158 <type name="gint" c:type="gint"/>
6159 </parameter>
6160 <parameter name="width" transfer-ownership="none">
6161 <doc xml:space="preserve"
6162 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6163 line="179">Width of updated area.</doc>
6164 <type name="gint" c:type="gint"/>
6165 </parameter>
6166 <parameter name="height" transfer-ownership="none">
6167 <doc xml:space="preserve"
6168 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6169 line="180">Height of updated area.</doc>
6170 <type name="gint" c:type="gint"/>
6171 </parameter>
6172 </parameters>
6173 </glib:signal>
6174 <glib:signal name="closed" when="last">
6175 <doc xml:space="preserve"
6176 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6177 line="204">This signal is emitted when gdk_pixbuf_loader_close() is called.
6178
6179It can be used by different parts of an application to receive
6180notification when an image loader is closed by the code that
6181drives it.</doc>
6182 <return-value transfer-ownership="none">
6183 <type name="none" c:type="void"/>
6184 </return-value>
6185 </glib:signal>
6186 <glib:signal name="size-prepared" when="last">
6187 <doc xml:space="preserve"
6188 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6189 line="129">This signal is emitted when the pixbuf loader has been fed the
6190initial amount of data that is required to figure out the size
6191of the image that it will create.
6192
6193Applications can call gdk_pixbuf_loader_set_size() in response
6194to this signal to set the desired size to which the image
6195should be scaled.</doc>
6196 <return-value transfer-ownership="none">
6197 <type name="none" c:type="void"/>
6198 </return-value>
6199 <parameters>
6200 <parameter name="width" transfer-ownership="none">
6201 <doc xml:space="preserve"
6202 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6203 line="132">the original width of the image</doc>
6204 <type name="gint" c:type="gint"/>
6205 </parameter>
6206 <parameter name="height" transfer-ownership="none">
6207 <doc xml:space="preserve"
6208 filename="gdk-pixbuf/gdk-pixbuf-loader.c"
6209 line="133">the original height of the image</doc>
6210 <type name="gint" c:type="gint"/>
6211 </parameter>
6212 </parameters>
6213 </glib:signal>
6214 </class>
6215 <record name="PixbufLoaderClass"
6216 c:type="GdkPixbufLoaderClass"
6217 glib:is-gtype-struct-for="PixbufLoader">
6218 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h" line="74"/>
6219 <field name="parent_class">
6220 <type name="GObject.ObjectClass" c:type="GObjectClass"/>
6221 </field>
6222 <field name="size_prepared">
6223 <callback name="size_prepared">
6224 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h"
6225 line="60"/>
6226 <return-value transfer-ownership="none">
6227 <type name="none" c:type="void"/>
6228 </return-value>
6229 <parameters>
6230 <parameter name="loader" transfer-ownership="none">
6231 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6232 </parameter>
6233 <parameter name="width" transfer-ownership="none">
6234 <type name="gint" c:type="int"/>
6235 </parameter>
6236 <parameter name="height" transfer-ownership="none">
6237 <type name="gint" c:type="int"/>
6238 </parameter>
6239 </parameters>
6240 </callback>
6241 </field>
6242 <field name="area_prepared">
6243 <callback name="area_prepared">
6244 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h"
6245 line="64"/>
6246 <return-value transfer-ownership="none">
6247 <type name="none" c:type="void"/>
6248 </return-value>
6249 <parameters>
6250 <parameter name="loader" transfer-ownership="none">
6251 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6252 </parameter>
6253 </parameters>
6254 </callback>
6255 </field>
6256 <field name="area_updated">
6257 <callback name="area_updated">
6258 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h"
6259 line="67"/>
6260 <return-value transfer-ownership="none">
6261 <type name="none" c:type="void"/>
6262 </return-value>
6263 <parameters>
6264 <parameter name="loader" transfer-ownership="none">
6265 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6266 </parameter>
6267 <parameter name="x" transfer-ownership="none">
6268 <type name="gint" c:type="int"/>
6269 </parameter>
6270 <parameter name="y" transfer-ownership="none">
6271 <type name="gint" c:type="int"/>
6272 </parameter>
6273 <parameter name="width" transfer-ownership="none">
6274 <type name="gint" c:type="int"/>
6275 </parameter>
6276 <parameter name="height" transfer-ownership="none">
6277 <type name="gint" c:type="int"/>
6278 </parameter>
6279 </parameters>
6280 </callback>
6281 </field>
6282 <field name="closed">
6283 <callback name="closed">
6284 <source-position filename="gdk-pixbuf/gdk-pixbuf-loader.h"
6285 line="73"/>
6286 <return-value transfer-ownership="none">
6287 <type name="none" c:type="void"/>
6288 </return-value>
6289 <parameters>
6290 <parameter name="loader" transfer-ownership="none">
6291 <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
6292 </parameter>
6293 </parameters>
6294 </callback>
6295 </field>
6296 </record>
6297 <record name="PixbufModule" c:type="GdkPixbufModule">
6298 <doc xml:space="preserve"
6299 filename="gdk-pixbuf/gdk-pixbuf-io.c"
6300 line="52">A `GdkPixbufModule` contains the necessary functions to load and save
6301images in a certain file format.
6302
6303If `GdkPixbuf` has been compiled with `GModule` support, it can be extended
6304by modules which can load (and perhaps also save) new image and animation
6305formats.
6306
6307## Implementing modules
6308
6309The `GdkPixbuf` interfaces needed for implementing modules are contained in
6310`gdk-pixbuf-io.h` (and `gdk-pixbuf-animation.h` if the module supports
6311animations). They are not covered by the same stability guarantees as the
6312regular GdkPixbuf API. To underline this fact, they are protected by the
6313`GDK_PIXBUF_ENABLE_BACKEND` pre-processor symbol.
6314
6315Each loadable module must contain a `GdkPixbufModuleFillVtableFunc` function
6316named `fill_vtable`, which will get called when the module
6317is loaded and must set the function pointers of the `GdkPixbufModule`.
6318
6319In order to make format-checking work before actually loading the modules
6320(which may require calling `dlopen` to load image libraries), modules export
6321their signatures (and other information) via the `fill_info` function. An
6322external utility, `gdk-pixbuf-query-loaders`, uses this to create a text
6323file containing a list of all available loaders and their signatures.
6324This file is then read at runtime by `GdkPixbuf` to obtain the list of
6325available loaders and their signatures.
6326
6327Modules may only implement a subset of the functionality available via
6328`GdkPixbufModule`. If a particular functionality is not implemented, the
6329`fill_vtable` function will simply not set the corresponding
6330function pointers of the `GdkPixbufModule` structure. If a module supports
6331incremental loading (i.e. provides `begin_load`, `stop_load` and
6332`load_increment`), it doesn't have to implement `load`, since `GdkPixbuf`
6333can supply a generic `load` implementation wrapping the incremental loading.
6334
6335## Installing modules
6336
6337Installing a module is a two-step process:
6338
6339 - copy the module file(s) to the loader directory (normally
6340 `$libdir/gdk-pixbuf-2.0/$version/loaders`, unless overridden by the
6341 environment variable `GDK_PIXBUF_MODULEDIR`)
6342 - call `gdk-pixbuf-query-loaders` to update the module file (normally
6343 `$libdir/gdk-pixbuf-2.0/$version/loaders.cache`, unless overridden
6344 by the environment variable `GDK_PIXBUF_MODULE_FILE`)</doc>
6345 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="400"/>
6346 <field name="module_name" writable="1">
6347 <doc xml:space="preserve"
6348 filename="gdk-pixbuf/gdk-pixbuf-io.c"
6349 line="54">the name of the module, usually the same as the
6350 usual file extension for images of this type, eg. "xpm", "jpeg" or "png".</doc>
6351 <type name="utf8" c:type="char*"/>
6352 </field>
6353 <field name="module_path" writable="1">
6354 <doc xml:space="preserve"
6355 filename="gdk-pixbuf/gdk-pixbuf-io.c"
6356 line="56">the path from which the module is loaded.</doc>
6357 <type name="utf8" c:type="char*"/>
6358 </field>
6359 <field name="module" writable="1">
6360 <doc xml:space="preserve"
6361 filename="gdk-pixbuf/gdk-pixbuf-io.c"
6362 line="57">the loaded `GModule`.</doc>
6363 <type name="GModule.Module" c:type="GModule*"/>
6364 </field>
6365 <field name="info" writable="1">
6366 <doc xml:space="preserve"
6367 filename="gdk-pixbuf/gdk-pixbuf-io.c"
6368 line="58">a `GdkPixbufFormat` holding information about the module.</doc>
6369 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
6370 </field>
6371 <field name="load" writable="1">
6372 <doc xml:space="preserve"
6373 filename="gdk-pixbuf/gdk-pixbuf-io.c"
6374 line="59">loads an image from a file.</doc>
6375 <type name="PixbufModuleLoadFunc" c:type="GdkPixbufModuleLoadFunc"/>
6376 </field>
6377 <field name="load_xpm_data" writable="1">
6378 <doc xml:space="preserve"
6379 filename="gdk-pixbuf/gdk-pixbuf-io.c"
6380 line="60">loads an image from data in memory.</doc>
6381 <type name="PixbufModuleLoadXpmDataFunc"
6382 c:type="GdkPixbufModuleLoadXpmDataFunc"/>
6383 </field>
6384 <field name="begin_load" introspectable="0" writable="1">
6385 <doc xml:space="preserve"
6386 filename="gdk-pixbuf/gdk-pixbuf-io.c"
6387 line="61">begins an incremental load.</doc>
6388 <type name="PixbufModuleBeginLoadFunc"
6389 c:type="GdkPixbufModuleBeginLoadFunc"/>
6390 </field>
6391 <field name="stop_load" writable="1">
6392 <doc xml:space="preserve"
6393 filename="gdk-pixbuf/gdk-pixbuf-io.c"
6394 line="62">stops an incremental load.</doc>
6395 <type name="PixbufModuleStopLoadFunc"
6396 c:type="GdkPixbufModuleStopLoadFunc"/>
6397 </field>
6398 <field name="load_increment" writable="1">
6399 <doc xml:space="preserve"
6400 filename="gdk-pixbuf/gdk-pixbuf-io.c"
6401 line="63">continues an incremental load.</doc>
6402 <type name="PixbufModuleIncrementLoadFunc"
6403 c:type="GdkPixbufModuleIncrementLoadFunc"/>
6404 </field>
6405 <field name="load_animation" writable="1">
6406 <doc xml:space="preserve"
6407 filename="gdk-pixbuf/gdk-pixbuf-io.c"
6408 line="64">loads an animation from a file.</doc>
6409 <type name="PixbufModuleLoadAnimationFunc"
6410 c:type="GdkPixbufModuleLoadAnimationFunc"/>
6411 </field>
6412 <field name="save" writable="1">
6413 <doc xml:space="preserve"
6414 filename="gdk-pixbuf/gdk-pixbuf-io.c"
6415 line="65">saves a `GdkPixbuf` to a file.</doc>
6416 <type name="PixbufModuleSaveFunc" c:type="GdkPixbufModuleSaveFunc"/>
6417 </field>
6418 <field name="save_to_callback" introspectable="0" writable="1">
6419 <doc xml:space="preserve"
6420 filename="gdk-pixbuf/gdk-pixbuf-io.c"
6421 line="66">saves a `GdkPixbuf` by calling the given `GdkPixbufSaveFunc`.</doc>
6422 <type name="PixbufModuleSaveCallbackFunc"
6423 c:type="GdkPixbufModuleSaveCallbackFunc"/>
6424 </field>
6425 <field name="is_save_option_supported" writable="1">
6426 <doc xml:space="preserve"
6427 filename="gdk-pixbuf/gdk-pixbuf-io.c"
6428 line="67">returns whether a save option key is supported by the module</doc>
6429 <type name="PixbufModuleSaveOptionSupportedFunc"
6430 c:type="GdkPixbufModuleSaveOptionSupportedFunc"/>
6431 </field>
6432 <field name="_reserved1" introspectable="0">
6433 <callback name="_reserved1">
6434 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="396"/>
6435 <return-value transfer-ownership="none">
6436 <type name="none" c:type="void"/>
6437 </return-value>
6438 </callback>
6439 </field>
6440 <field name="_reserved2" introspectable="0">
6441 <callback name="_reserved2">
6442 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="397"/>
6443 <return-value transfer-ownership="none">
6444 <type name="none" c:type="void"/>
6445 </return-value>
6446 </callback>
6447 </field>
6448 <field name="_reserved3" introspectable="0">
6449 <callback name="_reserved3">
6450 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="398"/>
6451 <return-value transfer-ownership="none">
6452 <type name="none" c:type="void"/>
6453 </return-value>
6454 </callback>
6455 </field>
6456 <field name="_reserved4" introspectable="0">
6457 <callback name="_reserved4">
6458 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="399"/>
6459 <return-value transfer-ownership="none">
6460 <type name="none" c:type="void"/>
6461 </return-value>
6462 </callback>
6463 </field>
6464 </record>
6465 <callback name="PixbufModuleBeginLoadFunc"
6466 c:type="GdkPixbufModuleBeginLoadFunc"
6467 introspectable="0"
6468 throws="1">
6469 <doc xml:space="preserve"
6470 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6471 line="255">Sets up the image loading state.
6472
6473The image loader is responsible for storing the given function pointers
6474and user data, and call them when needed.
6475
6476The image loader should set up an internal state object, and return it
6477from this function; the state object will then be updated from the
6478[callback@GdkPixbuf.PixbufModuleIncrementLoadFunc] callback, and will be freed
6479by [callback@GdkPixbuf.PixbufModuleStopLoadFunc] callback.</doc>
6480 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="277"/>
6481 <return-value transfer-ownership="full" nullable="1">
6482 <doc xml:space="preserve"
6483 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6484 line="273">the data to be passed to
6485 [callback@GdkPixbuf.PixbufModuleIncrementLoadFunc]
6486 and [callback@GdkPixbuf.PixbufModuleStopLoadFunc], or `NULL` in case of error</doc>
6487 <type name="gpointer" c:type="gpointer"/>
6488 </return-value>
6489 <parameters>
6490 <parameter name="size_func" transfer-ownership="none">
6491 <doc xml:space="preserve"
6492 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6493 line="257">the function to be called when the size is known</doc>
6494 <type name="PixbufModuleSizeFunc" c:type="GdkPixbufModuleSizeFunc"/>
6495 </parameter>
6496 <parameter name="prepared_func" transfer-ownership="none">
6497 <doc xml:space="preserve"
6498 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6499 line="258">the function to be called when the data has been prepared</doc>
6500 <type name="PixbufModulePreparedFunc"
6501 c:type="GdkPixbufModulePreparedFunc"/>
6502 </parameter>
6503 <parameter name="updated_func" transfer-ownership="none" closure="3">
6504 <doc xml:space="preserve"
6505 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6506 line="259">the function to be called when the data has been updated</doc>
6507 <type name="PixbufModuleUpdatedFunc"
6508 c:type="GdkPixbufModuleUpdatedFunc"/>
6509 </parameter>
6510 <parameter name="user_data"
6511 transfer-ownership="none"
6512 nullable="1"
6513 allow-none="1"
6514 closure="3">
6515 <doc xml:space="preserve"
6516 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6517 line="260">the data to be passed to the functions</doc>
6518 <type name="gpointer" c:type="gpointer"/>
6519 </parameter>
6520 </parameters>
6521 </callback>
6522 <callback name="PixbufModuleFillInfoFunc"
6523 c:type="GdkPixbufModuleFillInfoFunc"
6524 version="2.2">
6525 <doc xml:space="preserve"
6526 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6527 line="413">Defines the type of the function used to fill a
6528#GdkPixbufFormat structure with information about a module.</doc>
6529 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="422"/>
6530 <return-value transfer-ownership="none">
6531 <type name="none" c:type="void"/>
6532 </return-value>
6533 <parameters>
6534 <parameter name="info" transfer-ownership="none">
6535 <doc xml:space="preserve"
6536 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6537 line="415">a #GdkPixbufFormat.</doc>
6538 <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
6539 </parameter>
6540 </parameters>
6541 </callback>
6542 <callback name="PixbufModuleFillVtableFunc"
6543 c:type="GdkPixbufModuleFillVtableFunc"
6544 version="2.2">
6545 <doc xml:space="preserve"
6546 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6547 line="402">Defines the type of the function used to set the vtable of a
6548#GdkPixbufModule when it is loaded.</doc>
6549 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="411"/>
6550 <return-value transfer-ownership="none">
6551 <type name="none" c:type="void"/>
6552 </return-value>
6553 <parameters>
6554 <parameter name="module" transfer-ownership="none">
6555 <doc xml:space="preserve"
6556 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6557 line="404">a #GdkPixbufModule.</doc>
6558 <type name="PixbufModule" c:type="GdkPixbufModule*"/>
6559 </parameter>
6560 </parameters>
6561 </callback>
6562 <callback name="PixbufModuleIncrementLoadFunc"
6563 c:type="GdkPixbufModuleIncrementLoadFunc"
6564 throws="1">
6565 <doc xml:space="preserve"
6566 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6567 line="297">Incrementally loads a buffer into the image data.</doc>
6568 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="308"/>
6569 <return-value transfer-ownership="none">
6570 <doc xml:space="preserve"
6571 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6572 line="306">`TRUE` if the incremental load was successful</doc>
6573 <type name="gboolean" c:type="gboolean"/>
6574 </return-value>
6575 <parameters>
6576 <parameter name="context"
6577 transfer-ownership="none"
6578 nullable="1"
6579 allow-none="1">
6580 <doc xml:space="preserve"
6581 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6582 line="299">the state object created by [callback@GdkPixbuf.PixbufModuleBeginLoadFunc]</doc>
6583 <type name="gpointer" c:type="gpointer"/>
6584 </parameter>
6585 <parameter name="buf" transfer-ownership="none">
6586 <doc xml:space="preserve"
6587 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6588 line="300">the data to load</doc>
6589 <array length="2" zero-terminated="0" c:type="const guchar*">
6590 <type name="guint8"/>
6591 </array>
6592 </parameter>
6593 <parameter name="size" transfer-ownership="none">
6594 <doc xml:space="preserve"
6595 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6596 line="301">the length of the data to load</doc>
6597 <type name="guint" c:type="guint"/>
6598 </parameter>
6599 </parameters>
6600 </callback>
6601 <callback name="PixbufModuleLoadAnimationFunc"
6602 c:type="GdkPixbufModuleLoadAnimationFunc"
6603 throws="1">
6604 <doc xml:space="preserve"
6605 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6606 line="241">Loads a file from a standard C file stream into a new `GdkPixbufAnimation`.
6607
6608In case of error, this function should return `NULL` and set the `error` argument.</doc>
6609 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="252"/>
6610 <return-value transfer-ownership="full">
6611 <doc xml:space="preserve"
6612 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6613 line="250">a newly created `GdkPixbufAnimation` for the contents of the file</doc>
6614 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
6615 </return-value>
6616 <parameters>
6617 <parameter name="f"
6618 transfer-ownership="none"
6619 nullable="1"
6620 allow-none="1">
6621 <doc xml:space="preserve"
6622 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6623 line="243">the file stream from which the image should be loaded</doc>
6624 <type name="gpointer" c:type="FILE*"/>
6625 </parameter>
6626 </parameters>
6627 </callback>
6628 <callback name="PixbufModuleLoadFunc"
6629 c:type="GdkPixbufModuleLoadFunc"
6630 throws="1">
6631 <doc xml:space="preserve"
6632 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6633 line="217">Loads a file from a standard C file stream into a new `GdkPixbuf`.
6634
6635In case of error, this function should return `NULL` and set the `error` argument.</doc>
6636 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="228"/>
6637 <return-value transfer-ownership="full">
6638 <doc xml:space="preserve"
6639 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6640 line="226">a newly created `GdkPixbuf` for the contents of the file</doc>
6641 <type name="Pixbuf" c:type="GdkPixbuf*"/>
6642 </return-value>
6643 <parameters>
6644 <parameter name="f"
6645 transfer-ownership="none"
6646 nullable="1"
6647 allow-none="1">
6648 <doc xml:space="preserve"
6649 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6650 line="219">the file stream from which the image should be loaded</doc>
6651 <type name="gpointer" c:type="FILE*"/>
6652 </parameter>
6653 </parameters>
6654 </callback>
6655 <callback name="PixbufModuleLoadXpmDataFunc"
6656 c:type="GdkPixbufModuleLoadXpmDataFunc">
6657 <doc xml:space="preserve"
6658 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6659 line="231">Loads XPM data into a new `GdkPixbuf`.</doc>
6660 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="239"/>
6661 <return-value transfer-ownership="full">
6662 <doc xml:space="preserve"
6663 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6664 line="237">a newly created `GdkPixbuf` for the XPM data</doc>
6665 <type name="Pixbuf" c:type="GdkPixbuf*"/>
6666 </return-value>
6667 <parameters>
6668 <parameter name="data" transfer-ownership="none">
6669 <doc xml:space="preserve"
6670 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6671 line="233">the XPM data</doc>
6672 <array c:type="const char**">
6673 <type name="utf8" c:type="char*"/>
6674 </array>
6675 </parameter>
6676 </parameters>
6677 </callback>
6678 <record name="PixbufModulePattern"
6679 c:type="GdkPixbufModulePattern"
6680 version="2.2">
6681 <doc xml:space="preserve"
6682 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6683 line="170">The signature prefix for a module.
6684
6685The signature of a module is a set of prefixes. Prefixes are encoded as
6686pairs of ordinary strings, where the second string, called the mask, if
6687not `NULL`, must be of the same length as the first one and may contain
6688' ', '!', 'x', 'z', and 'n' to indicate bytes that must be matched,
6689not matched, "don't-care"-bytes, zeros and non-zeros, respectively.
6690
6691Each prefix has an associated integer that describes the relevance of
6692the prefix, with 0 meaning a mismatch and 100 a "perfect match".
6693
6694Starting with gdk-pixbuf 2.8, the first byte of the mask may be '*',
6695indicating an unanchored pattern that matches not only at the beginning,
6696but also in the middle. Versions prior to 2.8 will interpret the '*'
6697like an 'x'.
6698
6699The signature of a module is stored as an array of
6700`GdkPixbufModulePatterns`. The array is terminated by a pattern
6701where the `prefix` is `NULL`.
6702
6703```c
6704GdkPixbufModulePattern *signature[] = {
6705 { "abcdx", " !x z", 100 },
6706 { "bla", NULL, 90 },
6707 { NULL, NULL, 0 }
6708};
6709```
6710
6711In the example above, the signature matches e.g. "auud\0" with
6712relevance 100, and "blau" with relevance 90.</doc>
6713 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="215"/>
6714 <field name="prefix" writable="1">
6715 <doc xml:space="preserve"
6716 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6717 line="172">the prefix for this pattern</doc>
6718 <type name="utf8" c:type="char*"/>
6719 </field>
6720 <field name="mask" writable="1">
6721 <doc xml:space="preserve"
6722 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6723 line="173">mask containing bytes which modify how the prefix is matched against
6724 test data</doc>
6725 <type name="utf8" c:type="char*"/>
6726 </field>
6727 <field name="relevance" writable="1">
6728 <doc xml:space="preserve"
6729 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6730 line="175">relevance of this pattern</doc>
6731 <type name="gint" c:type="int"/>
6732 </field>
6733 </record>
6734 <callback name="PixbufModulePreparedFunc"
6735 c:type="GdkPixbufModulePreparedFunc"
6736 version="2.2">
6737 <doc xml:space="preserve"
6738 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6739 line="126">Defines the type of the function that gets called once the initial
6740setup of @pixbuf is done.
6741
6742#GdkPixbufLoader uses a function of this type to emit the
6743"<link linkend="GdkPixbufLoader-area-prepared">area_prepared</link>"
6744signal.</doc>
6745 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="141"/>
6746 <return-value transfer-ownership="none">
6747 <type name="none" c:type="void"/>
6748 </return-value>
6749 <parameters>
6750 <parameter name="pixbuf" transfer-ownership="none">
6751 <doc xml:space="preserve"
6752 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6753 line="128">the #GdkPixbuf that is currently being loaded.</doc>
6754 <type name="Pixbuf" c:type="GdkPixbuf*"/>
6755 </parameter>
6756 <parameter name="anim" transfer-ownership="none">
6757 <doc xml:space="preserve"
6758 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6759 line="129">if an animation is being loaded, the #GdkPixbufAnimation, else %NULL.</doc>
6760 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
6761 </parameter>
6762 <parameter name="user_data"
6763 transfer-ownership="none"
6764 nullable="1"
6765 allow-none="1"
6766 closure="2">
6767 <doc xml:space="preserve"
6768 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6769 line="130">the loader.</doc>
6770 <type name="gpointer" c:type="gpointer"/>
6771 </parameter>
6772 </parameters>
6773 </callback>
6774 <callback name="PixbufModuleSaveCallbackFunc"
6775 c:type="GdkPixbufModuleSaveCallbackFunc"
6776 introspectable="0"
6777 throws="1">
6778 <doc xml:space="preserve"
6779 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6780 line="336">Saves a `GdkPixbuf` by calling the provided function.
6781
6782The optional `option_keys` and `option_values` arrays contain the keys and
6783values (in the same order) for attributes to be saved alongside the image
6784data.</doc>
6785 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="354"/>
6786 <return-value transfer-ownership="none">
6787 <doc xml:space="preserve"
6788 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6789 line="351">`TRUE` on success; in case of failure, `FALSE` is returned and
6790 the `error` is set</doc>
6791 <type name="gboolean" c:type="gboolean"/>
6792 </return-value>
6793 <parameters>
6794 <parameter name="save_func" transfer-ownership="none" closure="1">
6795 <doc xml:space="preserve"
6796 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6797 line="338">the function to call when saving</doc>
6798 <type name="PixbufSaveFunc" c:type="GdkPixbufSaveFunc"/>
6799 </parameter>
6800 <parameter name="user_data"
6801 transfer-ownership="none"
6802 nullable="1"
6803 allow-none="1"
6804 closure="1">
6805 <doc xml:space="preserve"
6806 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6807 line="339">the data to pass to @save_func</doc>
6808 <type name="gpointer" c:type="gpointer"/>
6809 </parameter>
6810 <parameter name="pixbuf" transfer-ownership="none">
6811 <doc xml:space="preserve"
6812 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6813 line="340">the `GdkPixbuf` to save</doc>
6814 <type name="Pixbuf" c:type="GdkPixbuf*"/>
6815 </parameter>
6816 <parameter name="option_keys"
6817 transfer-ownership="none"
6818 nullable="1"
6819 allow-none="1">
6820 <doc xml:space="preserve"
6821 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6822 line="341">an array of option names</doc>
6823 <array c:type="gchar**">
6824 <type name="utf8" c:type="gchar*"/>
6825 </array>
6826 </parameter>
6827 <parameter name="option_values"
6828 transfer-ownership="none"
6829 nullable="1"
6830 allow-none="1">
6831 <doc xml:space="preserve"
6832 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6833 line="342">an array of option values</doc>
6834 <array c:type="gchar**">
6835 <type name="utf8" c:type="gchar*"/>
6836 </array>
6837 </parameter>
6838 </parameters>
6839 </callback>
6840 <callback name="PixbufModuleSaveFunc"
6841 c:type="GdkPixbufModuleSaveFunc"
6842 throws="1">
6843 <doc xml:space="preserve"
6844 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6845 line="313">Saves a `GdkPixbuf` into a standard C file stream.
6846
6847The optional `param_keys` and `param_values` arrays contain the keys and
6848values (in the same order) for attributes to be saved alongside the image
6849data.</doc>
6850 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="330"/>
6851 <return-value transfer-ownership="none">
6852 <doc xml:space="preserve"
6853 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6854 line="327">`TRUE` on success; in case of failure, `FALSE` is returned and
6855 the `error` is set</doc>
6856 <type name="gboolean" c:type="gboolean"/>
6857 </return-value>
6858 <parameters>
6859 <parameter name="f"
6860 transfer-ownership="none"
6861 nullable="1"
6862 allow-none="1">
6863 <doc xml:space="preserve"
6864 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6865 line="315">the file stream into which the image should be saved</doc>
6866 <type name="gpointer" c:type="FILE*"/>
6867 </parameter>
6868 <parameter name="pixbuf" transfer-ownership="none">
6869 <doc xml:space="preserve"
6870 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6871 line="316">the image to save</doc>
6872 <type name="Pixbuf" c:type="GdkPixbuf*"/>
6873 </parameter>
6874 <parameter name="param_keys"
6875 transfer-ownership="none"
6876 nullable="1"
6877 allow-none="1">
6878 <doc xml:space="preserve"
6879 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6880 line="317">parameter keys to save</doc>
6881 <array c:type="gchar**">
6882 <type name="utf8" c:type="gchar*"/>
6883 </array>
6884 </parameter>
6885 <parameter name="param_values"
6886 transfer-ownership="none"
6887 nullable="1"
6888 allow-none="1">
6889 <doc xml:space="preserve"
6890 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6891 line="318">parameter values to save</doc>
6892 <array c:type="gchar**">
6893 <type name="utf8" c:type="gchar*"/>
6894 </array>
6895 </parameter>
6896 </parameters>
6897 </callback>
6898 <callback name="PixbufModuleSaveOptionSupportedFunc"
6899 c:type="GdkPixbufModuleSaveOptionSupportedFunc">
6900 <doc xml:space="preserve"
6901 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6902 line="361">Checks whether the given `option_key` is supported when saving.</doc>
6903 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="369"/>
6904 <return-value transfer-ownership="none">
6905 <doc xml:space="preserve"
6906 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6907 line="367">`TRUE` if the option is supported</doc>
6908 <type name="gboolean" c:type="gboolean"/>
6909 </return-value>
6910 <parameters>
6911 <parameter name="option_key" transfer-ownership="none">
6912 <doc xml:space="preserve"
6913 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6914 line="363">the option key to check</doc>
6915 <type name="utf8" c:type="const gchar*"/>
6916 </parameter>
6917 </parameters>
6918 </callback>
6919 <callback name="PixbufModuleSizeFunc"
6920 c:type="GdkPixbufModuleSizeFunc"
6921 version="2.2">
6922 <doc xml:space="preserve"
6923 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6924 line="100">Defines the type of the function that gets called once the size
6925of the loaded image is known.
6926
6927The function is expected to set @width and @height to the desired
6928size to which the image should be scaled. If a module has no efficient
6929way to achieve the desired scaling during the loading of the image, it may
6930either ignore the size request, or only approximate it - gdk-pixbuf will
6931then perform the required scaling on the completely loaded image.
6932
6933If the function sets @width or @height to zero, the module should interpret
6934this as a hint that it will be closed soon and shouldn't allocate further
6935resources. This convention is used to implement gdk_pixbuf_get_file_info()
6936efficiently.</doc>
6937 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="122"/>
6938 <return-value transfer-ownership="none">
6939 <type name="none" c:type="void"/>
6940 </return-value>
6941 <parameters>
6942 <parameter name="width" transfer-ownership="none">
6943 <doc xml:space="preserve"
6944 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6945 line="102">pointer to a location containing the current image width</doc>
6946 <type name="gint" c:type="gint*"/>
6947 </parameter>
6948 <parameter name="height" transfer-ownership="none">
6949 <doc xml:space="preserve"
6950 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6951 line="103">pointer to a location containing the current image height</doc>
6952 <type name="gint" c:type="gint*"/>
6953 </parameter>
6954 <parameter name="user_data"
6955 transfer-ownership="none"
6956 nullable="1"
6957 allow-none="1"
6958 closure="2">
6959 <doc xml:space="preserve"
6960 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6961 line="104">the loader.</doc>
6962 <type name="gpointer" c:type="gpointer"/>
6963 </parameter>
6964 </parameters>
6965 </callback>
6966 <callback name="PixbufModuleStopLoadFunc"
6967 c:type="GdkPixbufModuleStopLoadFunc"
6968 throws="1">
6969 <doc xml:space="preserve"
6970 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6971 line="283">Finalizes the image loading state.
6972
6973This function is called on success and error states.</doc>
6974 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="294"/>
6975 <return-value transfer-ownership="none">
6976 <doc xml:space="preserve"
6977 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6978 line="292">`TRUE` if the loading operation was successful</doc>
6979 <type name="gboolean" c:type="gboolean"/>
6980 </return-value>
6981 <parameters>
6982 <parameter name="context"
6983 transfer-ownership="full"
6984 nullable="1"
6985 allow-none="1">
6986 <doc xml:space="preserve"
6987 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6988 line="285">the state object created by [callback@GdkPixbuf.PixbufModuleBeginLoadFunc]</doc>
6989 <type name="gpointer" c:type="gpointer"/>
6990 </parameter>
6991 </parameters>
6992 </callback>
6993 <callback name="PixbufModuleUpdatedFunc"
6994 c:type="GdkPixbufModuleUpdatedFunc"
6995 version="2.2">
6996 <doc xml:space="preserve"
6997 filename="gdk-pixbuf/gdk-pixbuf-io.h"
6998 line="145">Defines the type of the function that gets called every time a region
6999of @pixbuf is updated.
7000
7001#GdkPixbufLoader uses a function of this type to emit the
7002"<link linkend="GdkPixbufLoader-area-updated">area_updated</link>"
7003signal.</doc>
7004 <source-position filename="gdk-pixbuf/gdk-pixbuf-io.h" line="163"/>
7005 <return-value transfer-ownership="none">
7006 <type name="none" c:type="void"/>
7007 </return-value>
7008 <parameters>
7009 <parameter name="pixbuf" transfer-ownership="none">
7010 <doc xml:space="preserve"
7011 filename="gdk-pixbuf/gdk-pixbuf-io.h"
7012 line="147">the #GdkPixbuf that is currently being loaded.</doc>
7013 <type name="Pixbuf" c:type="GdkPixbuf*"/>
7014 </parameter>
7015 <parameter name="x" transfer-ownership="none">
7016 <doc xml:space="preserve"
7017 filename="gdk-pixbuf/gdk-pixbuf-io.h"
7018 line="148">the X origin of the updated area.</doc>
7019 <type name="gint" c:type="int"/>
7020 </parameter>
7021 <parameter name="y" transfer-ownership="none">
7022 <doc xml:space="preserve"
7023 filename="gdk-pixbuf/gdk-pixbuf-io.h"
7024 line="149">the Y origin of the updated area.</doc>
7025 <type name="gint" c:type="int"/>
7026 </parameter>
7027 <parameter name="width" transfer-ownership="none">
7028 <doc xml:space="preserve"
7029 filename="gdk-pixbuf/gdk-pixbuf-io.h"
7030 line="150">the width of the updated area.</doc>
7031 <type name="gint" c:type="int"/>
7032 </parameter>
7033 <parameter name="height" transfer-ownership="none">
7034 <doc xml:space="preserve"
7035 filename="gdk-pixbuf/gdk-pixbuf-io.h"
7036 line="151">the height of the updated area.</doc>
7037 <type name="gint" c:type="int"/>
7038 </parameter>
7039 <parameter name="user_data"
7040 transfer-ownership="none"
7041 nullable="1"
7042 allow-none="1"
7043 closure="5">
7044 <doc xml:space="preserve"
7045 filename="gdk-pixbuf/gdk-pixbuf-io.h"
7046 line="152">the loader.</doc>
7047 <type name="gpointer" c:type="gpointer"/>
7048 </parameter>
7049 </parameters>
7050 </callback>
7051 <class name="PixbufNonAnim"
7052 c:symbol-prefix="pixbuf_non_anim"
7053 parent="PixbufAnimation"
7054 glib:type-name="GdkPixbufNonAnim"
7055 glib:get-type="gdk_pixbuf_non_anim_get_type">
7056 <constructor name="new" c:identifier="gdk_pixbuf_non_anim_new">
7057 <source-position filename="gdk-pixbuf/gdk-pixbuf-animation.h"
7058 line="216"/>
7059 <return-value transfer-ownership="full">
7060 <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
7061 </return-value>
7062 <parameters>
7063 <parameter name="pixbuf" transfer-ownership="none">
7064 <type name="Pixbuf" c:type="GdkPixbuf*"/>
7065 </parameter>
7066 </parameters>
7067 </constructor>
7068 </class>
7069 <enumeration name="PixbufRotation"
7070 glib:type-name="GdkPixbufRotation"
7071 glib:get-type="gdk_pixbuf_rotation_get_type"
7072 c:type="GdkPixbufRotation">
7073 <doc xml:space="preserve"
7074 filename="gdk-pixbuf/gdk-pixbuf-transform.h"
7075 line="80">The possible rotations which can be passed to gdk_pixbuf_rotate_simple().
7076
7077To make them easier to use, their numerical values are the actual degrees.</doc>
7078 <member name="none"
7079 value="0"
7080 c:identifier="GDK_PIXBUF_ROTATE_NONE"
7081 glib:nick="none"
7082 glib:name="GDK_PIXBUF_ROTATE_NONE">
7083 <doc xml:space="preserve"
7084 filename="gdk-pixbuf/gdk-pixbuf-transform.h"
7085 line="82">No rotation.</doc>
7086 </member>
7087 <member name="counterclockwise"
7088 value="90"
7089 c:identifier="GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE"
7090 glib:nick="counterclockwise"
7091 glib:name="GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE">
7092 <doc xml:space="preserve"
7093 filename="gdk-pixbuf/gdk-pixbuf-transform.h"
7094 line="83">Rotate by 90 degrees.</doc>
7095 </member>
7096 <member name="upsidedown"
7097 value="180"
7098 c:identifier="GDK_PIXBUF_ROTATE_UPSIDEDOWN"
7099 glib:nick="upsidedown"
7100 glib:name="GDK_PIXBUF_ROTATE_UPSIDEDOWN">
7101 <doc xml:space="preserve"
7102 filename="gdk-pixbuf/gdk-pixbuf-transform.h"
7103 line="84">Rotate by 180 degrees.</doc>
7104 </member>
7105 <member name="clockwise"
7106 value="270"
7107 c:identifier="GDK_PIXBUF_ROTATE_CLOCKWISE"
7108 glib:nick="clockwise"
7109 glib:name="GDK_PIXBUF_ROTATE_CLOCKWISE">
7110 <doc xml:space="preserve"
7111 filename="gdk-pixbuf/gdk-pixbuf-transform.h"
7112 line="85">Rotate by 270 degrees.</doc>
7113 </member>
7114 </enumeration>
7115 <callback name="PixbufSaveFunc" c:type="GdkPixbufSaveFunc" version="2.4">
7116 <doc xml:space="preserve"
7117 filename="gdk-pixbuf/gdk-pixbuf-core.h"
7118 line="341">Save functions used by [method@GdkPixbuf.Pixbuf.save_to_callback].
7119
7120This function is called once for each block of bytes that is "written"
7121by `gdk_pixbuf_save_to_callback()`.
7122
7123If successful it should return `TRUE`; if an error occurs it should set
7124`error` and return `FALSE`, in which case `gdk_pixbuf_save_to_callback()`
7125will fail with the same error.</doc>
7126 <source-position filename="gdk-pixbuf/gdk-pixbuf-core.h" line="362"/>
7127 <return-value transfer-ownership="none">
7128 <doc xml:space="preserve"
7129 filename="gdk-pixbuf/gdk-pixbuf-core.h"
7130 line="357">`TRUE` if successful, `FALSE` otherwise</doc>
7131 <type name="gboolean" c:type="gboolean"/>
7132 </return-value>
7133 <parameters>
7134 <parameter name="buf" transfer-ownership="none">
7135 <doc xml:space="preserve"
7136 filename="gdk-pixbuf/gdk-pixbuf-core.h"
7137 line="343">bytes to be written.</doc>
7138 <array length="1" zero-terminated="0" c:type="const gchar*">
7139 <type name="guint8"/>
7140 </array>
7141 </parameter>
7142 <parameter name="count" transfer-ownership="none">
7143 <doc xml:space="preserve"
7144 filename="gdk-pixbuf/gdk-pixbuf-core.h"
7145 line="344">number of bytes in @buf.</doc>
7146 <type name="gsize" c:type="gsize"/>
7147 </parameter>
7148 <parameter name="error"
7149 direction="out"
7150 caller-allocates="0"
7151 transfer-ownership="full">
7152 <doc xml:space="preserve"
7153 filename="gdk-pixbuf/gdk-pixbuf-core.h"
7154 line="345">A location to return an error.</doc>
7155 <type name="GLib.Error" c:type="GError**"/>
7156 </parameter>
7157 <parameter name="data"
7158 transfer-ownership="none"
7159 nullable="1"
7160 allow-none="1"
7161 closure="3">
7162 <doc xml:space="preserve"
7163 filename="gdk-pixbuf/gdk-pixbuf-core.h"
7164 line="346">user data passed to gdk_pixbuf_save_to_callback().</doc>
7165 <type name="gpointer" c:type="gpointer"/>
7166 </parameter>
7167 </parameters>
7168 </callback>
7169 <class name="PixbufSimpleAnim"
7170 c:symbol-prefix="pixbuf_simple_anim"
7171 c:type="GdkPixbufSimpleAnim"
7172 parent="PixbufAnimation"
7173 glib:type-name="GdkPixbufSimpleAnim"
7174 glib:get-type="gdk_pixbuf_simple_anim_get_type"
7175 glib:type-struct="PixbufSimpleAnimClass">
7176 <doc xml:space="preserve"
7177 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
7178 line="33">An opaque struct representing a simple animation.</doc>
7179 <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
7180 line="39"/>
7181 <constructor name="new"
7182 c:identifier="gdk_pixbuf_simple_anim_new"
7183 version="2.8">
7184 <doc xml:space="preserve"
7185 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7186 line="415">Creates a new, empty animation.</doc>
7187 <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
7188 line="55"/>
7189 <return-value transfer-ownership="full">
7190 <doc xml:space="preserve"
7191 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7192 line="423">a newly allocated #GdkPixbufSimpleAnim</doc>
7193 <type name="PixbufSimpleAnim" c:type="GdkPixbufSimpleAnim*"/>
7194 </return-value>
7195 <parameters>
7196 <parameter name="width" transfer-ownership="none">
7197 <doc xml:space="preserve"
7198 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7199 line="417">the width of the animation</doc>
7200 <type name="gint" c:type="gint"/>
7201 </parameter>
7202 <parameter name="height" transfer-ownership="none">
7203 <doc xml:space="preserve"
7204 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7205 line="418">the height of the animation</doc>
7206 <type name="gint" c:type="gint"/>
7207 </parameter>
7208 <parameter name="rate" transfer-ownership="none">
7209 <doc xml:space="preserve"
7210 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7211 line="419">the speed of the animation, in frames per second</doc>
7212 <type name="gfloat" c:type="gfloat"/>
7213 </parameter>
7214 </parameters>
7215 </constructor>
7216 <method name="add_frame"
7217 c:identifier="gdk_pixbuf_simple_anim_add_frame"
7218 version="2.8">
7219 <doc xml:space="preserve"
7220 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7221 line="442">Adds a new frame to @animation. The @pixbuf must
7222have the dimensions specified when the animation
7223was constructed.</doc>
7224 <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
7225 line="60"/>
7226 <return-value transfer-ownership="none">
7227 <type name="none" c:type="void"/>
7228 </return-value>
7229 <parameters>
7230 <instance-parameter name="animation" transfer-ownership="none">
7231 <doc xml:space="preserve"
7232 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7233 line="444">a #GdkPixbufSimpleAnim</doc>
7234 <type name="PixbufSimpleAnim" c:type="GdkPixbufSimpleAnim*"/>
7235 </instance-parameter>
7236 <parameter name="pixbuf" transfer-ownership="none">
7237 <doc xml:space="preserve"
7238 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7239 line="445">the pixbuf to add</doc>
7240 <type name="Pixbuf" c:type="GdkPixbuf*"/>
7241 </parameter>
7242 </parameters>
7243 </method>
7244 <method name="get_loop"
7245 c:identifier="gdk_pixbuf_simple_anim_get_loop"
7246 glib:get-property="loop"
7247 version="2.18">
7248 <doc xml:space="preserve"
7249 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7250 line="533">Gets whether @animation should loop indefinitely when it reaches the end.</doc>
7251 <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
7252 line="66"/>
7253 <return-value transfer-ownership="none">
7254 <doc xml:space="preserve"
7255 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7256 line="539">%TRUE if the animation loops forever, %FALSE otherwise</doc>
7257 <type name="gboolean" c:type="gboolean"/>
7258 </return-value>
7259 <parameters>
7260 <instance-parameter name="animation" transfer-ownership="none">
7261 <doc xml:space="preserve"
7262 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7263 line="535">a #GdkPixbufSimpleAnim</doc>
7264 <type name="PixbufSimpleAnim" c:type="GdkPixbufSimpleAnim*"/>
7265 </instance-parameter>
7266 </parameters>
7267 </method>
7268 <method name="set_loop"
7269 c:identifier="gdk_pixbuf_simple_anim_set_loop"
7270 glib:set-property="loop"
7271 version="2.18">
7272 <doc xml:space="preserve"
7273 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7274 line="512">Sets whether @animation should loop indefinitely when it reaches the end.</doc>
7275 <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
7276 line="63"/>
7277 <return-value transfer-ownership="none">
7278 <type name="none" c:type="void"/>
7279 </return-value>
7280 <parameters>
7281 <instance-parameter name="animation" transfer-ownership="none">
7282 <doc xml:space="preserve"
7283 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7284 line="514">a #GdkPixbufSimpleAnim</doc>
7285 <type name="PixbufSimpleAnim" c:type="GdkPixbufSimpleAnim*"/>
7286 </instance-parameter>
7287 <parameter name="loop" transfer-ownership="none">
7288 <doc xml:space="preserve"
7289 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7290 line="515">whether to loop the animation</doc>
7291 <type name="gboolean" c:type="gboolean"/>
7292 </parameter>
7293 </parameters>
7294 </method>
7295 <property name="loop"
7296 version="2.18"
7297 writable="1"
7298 transfer-ownership="none"
7299 setter="set_loop"
7300 getter="get_loop"
7301 default-value="FALSE">
7302 <doc xml:space="preserve"
7303 filename="gdk-pixbuf/gdk-pixbuf-simple-anim.c"
7304 line="154">Whether the animation should loop when it reaches the end.</doc>
7305 <type name="gboolean" c:type="gboolean"/>
7306 </property>
7307 </class>
7308 <record name="PixbufSimpleAnimClass"
7309 c:type="GdkPixbufSimpleAnimClass"
7310 disguised="1"
7311 opaque="1"
7312 glib:is-gtype-struct-for="PixbufSimpleAnim">
7313 <source-position filename="gdk-pixbuf/gdk-pixbuf-simple-anim.h"
7314 line="39"/>
7315 </record>
7316 <class name="PixbufSimpleAnimIter"
7317 c:symbol-prefix="pixbuf_simple_anim_iter"
7318 parent="PixbufAnimationIter"
7319 glib:type-name="GdkPixbufSimpleAnimIter"
7320 glib:get-type="gdk_pixbuf_simple_anim_iter_get_type">
7321 </class>
7322 <function name="pixbuf_error_quark"
7323 c:identifier="gdk_pixbuf_error_quark"
7324 moved-to="PixbufError.quark">
7325 <return-value transfer-ownership="none">
7326 <type name="GLib.Quark" c:type="GQuark"/>
7327 </return-value>
7328 </function>
7329 </namespace>
7330</repository>