Project

General

Profile

Pix » History » Version 38

iri, 04/04/2011 08:03 PM

1 1 iri
h1. Pix
2
3 38 iri
Images resources (GTK+ -> GdkPixbuf ).
4 36 iri
If no widgets is used (only resources), it is needless to call _gtkMain function.
5 1 iri
6
{{toc}}
7
8 19 iri
h2. _gtkPixFree
9
10
Destroys a pix object (static or animated)
11
12
Prototype : *fun [ObjGtkPix] I*
13
14
+Return+ : I : always 0 except if error, it returns nil
15
16 21 iri
h2. _gtkPixFormats
17
18 23 iri
Returns a list of all supported pix formats to the current system.
19 33 iri
20 24 iri
On MS Windows, these formats are mostly currently supported : +ani+ (Windows Animated Cursor), +png+ (Portable Network Graphic), +wbmp+ (Wireless Bitmap Image File), +pnm+ (Portable anymap bitmap), +ras+ (Sun Raster Graphic), +xpm+ (X11 Pixmap Graphic), +xbm+ (X BitMap), +tga+ (Targa Graphic), +pcx+ (Paintbrush Bitmap), +icns+ (Mac OS X Icon), +qtif+ (QuickTime Image File), +ico+ (ms windows icon file), +wmf+ (Windows Metafile), +emf+ (Enhanced Windows Metafile), +bmp+ (Bitmap Image), +gif+ (Graphical Interchange Format), +jpeg+ (Joint Photographic Experts Group), +tiff+ (Tagged Image File Format), ...
21 21 iri
22 22 iri
Prototype : *fun [] [S r1]*
23 21 iri
24 25 iri
h2. _gtkPixMimes
25
26
Returns the list of supported mime types.
27
28
Prototype : *fun [] [[S r1] r1]*
29
30
+Return+ : [[S r1] r1] : for each format, returns the list of associated mime types.
31
32
h2. _gtkPixFormatsFull
33
34
Returns infos to all supported pix formats.
35
36
Prototype : *fun [] [[S [S r1] [S r1] S S I] r1]*
37
38
+Return+ : [[S [S r1] [S r1] S S I] r1] : a list of tuples. For each supported pix format, the tuple gives :
39
40
* its name;
41
* the list of supported mime-types;
42
* the list of currently used extensions;
43
* a short description;
44
* its license : "LGPL", "GPL", "QPL", "GPL/QPL", or "other"
45
* its state : get if this format has been disabled (1) or not (0). See _gtkPixFormatDisable below
46
47 26 iri
h2. _gtkPixFormatDisable
48
49
Disables or enables an image format.
50 34 iri
If a format is disabled, this format image won't be loaded by the application.
51 26 iri
52
Prototype : *fun [S I] I*
53
54
table.
55
|*name*|S|the name of the format, e.g. : "jpeg" or "tiff"|
56
|*value*|I|1 to disable, 0 to enable|
57
58
+Return+ : I : the new state or nil if error
59
60 27 iri
h2. _gtkPixGetInfo
61
62
Returns some informations on an image file (typically before load it).
63
64
Prototype : *fun [P] [I I [S S I]]*
65
66
table.
67
|*name*|P|a read referenced file|
68
69
+Return+ : [I I [S S I]] : 
70
* the width of the image
71
* the height of the image
72
** the name of the format (jpeg, tiff,png, gif, ...)
73
** the license of the format
74
** the state of the format : 1 if disabled, else 0
75
76
If the format is not recognized or if an error is occured, the function returns nil.
77 21 iri
78 19 iri
79 14 iri
h1. Static image
80
81 1 iri
h2. _gtkPixNew
82
83 28 iri
create a new pix object from a file
84 1 iri
85
Prototype : *fun [Chn P I [I I I]] ObjGtkPix*
86
87
table.
88
|*channel*|Chn|a channel|
89
|*filename*|P|an image filename|
90
|*mode*|I|Mode. Should be at 0.|
91
|*tuple*|[I I I]|the width (or nil to not constraint it),|
92
| | |the height (or nil to not constraint it),|
93
| | |the ratio (1 to keep it)|
94
95
+Return+ : ObjGtkPix : a new pix object or nil if an error occurs
96 28 iri
97
h2. _gtkPixSaveW
98
99
Saves a pix object to a physical file.
100
101
Prototype : *fun [ObjGtkPix W S [[S S] r1]] ObjGtkPix*
102
103
table.
104
|*pix*|ObjGtkPix|a valid pix object. Can not be nil.|
105
|*filename*|W|a write-referenced file. Can not be nil.|
106 35 iri
|*format*|S|a file format to save the pix object; e.g. "tiff", "jpeg",.... If nil, the format will be "png" by default.|
107
|*options*|[[S S] r1]|a list of options. Can be nil to keep the default values (the most currently case). Otherwise, see below.|
108 28 iri
109
+Return+ : ObjGtkPix : the same pix object or nil if an error occurs. The log file and/or the console could give an error message.
110
111
*Options* can be either some parameters given to the saver or parameters given to a file. +Note that all parameters couldn't be supported+.
112
* If the format is "jpeg", an option can be the quality. In this case, _options_ could be @["quality" "85"]@. The value of "quality" should be in the range [0;100].
113
* If the format is "png", the "compression" option is usually set, e.g. @["compression" "9"]@, value should be in the range [0;9]. You could find more informations "here":http://www.w3.org/TR/PNG/ and typically in this "section":http://www.w3.org/TR/PNG/#11textinfo
114 29 iri
* If the format is "tiff", the algorithm of the compression is set by "compression" option : 1 : no compression, 2 : CCITT modified Huffman RLE (aka Huffman method), 5 : Lempel-Ziv  & Welch (aka LZW method), 7 : JPEG DCT compression (aka JPEG method), 8 : Deflate compression (as recognized by Adobe), etc ... (e.g. ["compression" "5"]). More codecs, codes numbers and informations are in _tiff.h_ : "libtiff":ftp://ftp.remotesensing.org/pub/libtiff/. For the others options, you can read the tags table in the "TIFF 6.0 Specification Coverage":http://www.libtiff.org/support.html
115 28 iri
* If the format is "ico", the depth is set by "depth" option : ["depth" "16"]. Value can be 16, 24 or 32. If the options "x_hot" and "y_hot" are presents with any valids values then the result will be a "cur" file instead of an "ico" file.
116
* ICC color profiles can also be embedded into PNG and TIFF images. The "icc-profile" option should be the complete ICC profile encoded into base64. Use the Scol function "_getpack" and "base64encode" to get this content.
117
* More options, others formats, read the doc :)
118 1 iri
119
h2. _gtkPixScale
120
121
Scale
122
123
Prototype : *fun [ObjGtkPix I I I I] ObjGtkPix*
124
125
table.
126
|*pix*|ObjGtkPix|a valid pix object| |
127
|*width*|I|the new width| |
128
|*height*|I|the new height| |
129 2 iri
|*mode*|I|an algorithm at your choice :|SCOL_GTK_PIX_INTERP_BILINEAR (default) : |
130 1 iri
| | | |SCOL_GTK_PIX_INTERP_NEAREST : |
131
| | | |SCOL_GTK_PIX_INTERP_TILES : |
132
| | | |SCOL_GTK_PIX_INTERP_HYPER : |
133 3 iri
|*flag*|I|if 1, the pix in the pix object _pix_ will be destroyed.|If 0, the pix object _pix_ will be kept and a new pix object will be created.|
134 1 iri
135
+Return+ : ObjGtkPix : a *new* pix object or nil if an error occurs.
136
137 30 iri
*Note* : how the _flag_ works ?
138
139
* If _flag_ is at 1, the *current* _pix_ object is internally destroyed and replaced by a new scaled pix.
140
So, if your code is (example) :
141
<pre><code class="c">
142
typeof pix = ObjGtkPix;;
143
...
144
set pix = _gtkPixNew _channel _checkpack "logo.bmp" 0 [nil nil 1];
145
_gtkPixScale pix 1000 1000 SCOL_GTK_PIX_INTERP_BILINEAR 1;
146
...
147
</code></pre>
148 32 iri
then, now pix contains the _new_ logo 1000 x 1000 pixels (because flag = 1).
149 30 iri
150
* If your code is :
151
<pre><code class="c">
152
typeof pix = ObjGtkPix;;
153
...
154
set pix = _gtkPixNew _channel _checkpack "logo.bmp" 0 [nil nil 1];
155
_gtkPixScale pix 1000 1000 SCOL_GTK_PIX_INTERP_BILINEAR 0;
156
...
157
</code></pre>
158 32 iri
then, pix always contains the _old_ logo 64 x 64 pixels (because flag = 0).
159 30 iri
160
* Well, if your code is :
161
<pre><code class="c">
162
typeof pix = ObjGtkPix;;
163
typeof pixScale = ObjGtkPix;;
164
...
165
set pix = _gtkPixNew _channel _checkpack "logo.bmp" 0 [nil nil 1];
166
set pixScale = _gtkPixScale pix 1000 1000 SCOL_GTK_PIX_INTERP_BILINEAR 0;
167
...
168
</code></pre>
169 31 iri
then, pix always contents the _old_ logo 64x64 pixels (flag = 0) and pixScale contents the _new_ logo 1000 x 1000 pixels.
170
If flag is at 1, pix and pixScale content the _new_ logo 1000 x 1000 pixels.
171 30 iri
172 1 iri
h2. _gtkPixScaleEx
173
174
Not implemented yet.
175
176 3 iri
+Return+ : always nil.
177
178
h2. _gtkPixRotate
179
180
Performs a rotation
181
182
Prototype : *fun [ObjGtkPix I I] ObjGtkPix*
183
184 4 iri
table.
185 3 iri
|*pix*|ObjGtkPix|a pix object|
186
|*angle*|I|0, 90, 180 or 270 degrees. Others values are ignored|
187
|*flag*|I|0 if the new pix Scol object is created with the rotated pix|
188
| | |1 if the new pix replaces the pix in the curent pix object _pix_|
189
190 1 iri
+Return+ : ObjGtkPix : a rotated pix in the (new or same) pix object or the same pix object if the value is bad or nil if an error occurs
191 30 iri
See note to _gtkPixScale.
192 5 iri
193
h2. _gtkPixFlip
194
195
Performs a flip to a pix object
196
197
Prototype : *fun [ObjGtkPix I I] ObjGtkPix*
198
199
table.
200
|*pix*|ObjGtkPix|a pix object|
201
|*flip*|I|SCOL_GTK_PIX_FLIP_HORIZONTAL or SCOL_GTK_PIX_FLIP_VERTICAL. Other value are ignored.|
202
|*flag*|I|0 if the new pix Scol object is created with the flipped pix|
203
| | |1 if the new pix replaces the pix in the curent pix object _pix_|
204 1 iri
205 30 iri
+Return+ : ObjGtkPix : a flipped pix in the (new or same) pix object or the same pix object if the value is bad or nil if an error occurs.
206
See note to _gtkPixScale.
207 5 iri
208 6 iri
h2. _gtkPixAddAlpha
209
210
Adds an alpha channel to an existing pix object.
211
If the tuple is not nil, then the color specified by it will be assigned zero opacity.
212
For example, if the tuple is equals at [255, 255, 255], all white pixels will become fully transparent.
213
214
Prototype : *fun [ObjGtkPix [I I I] I] ObjGtkPix*
215
216
table.
217
|*pix*|ObjGtkPix|a pix object|
218
|*rgb*|[I I I]|red, green and blue value (0->255). or nil (see above)|
219
|*flag*|I|0 if the new pix Scol object is created with the new pix|
220
| | |1 if the new pix replaces the pix in the curent pix object _pix_|
221
222 1 iri
+Return+ : ObjGtkPix : a new pix in the (new or same) pix object or the same pix object if the value is bad or nil if an error occurs
223 30 iri
See note to _gtkPixScale.
224 6 iri
225 7 iri
h2. _gtkPixCopyArea
226
227
Copies a rectangular area from _srcpix_ to _destpix_.
228
229
Prototype : *fun [ObjGtkPix I I I I ObjGtkPix I I] ObjGtkPix*
230
231
table.
232
|*srcpix*|ObjGtkPix|a source pix object|
233
|*srcx*|I|x coordinate in _srcpix_|
234
|*srcy*|I|y coordinate in _srcpix_|
235
|*srcwidth*|I|width to copy from _srcpix_|
236
|*srcheight*|I|height to copy from _srcpix_|
237 8 iri
|*destpix*|ObjGtkPix|a destination pix object. If nil, a new pix object will be created in the current channel|
238 7 iri
|*destx*|I|x coordinate in _destpix_|
239
|*desty*|I|y coordinate in _destpix_|
240
241
+Return+ : ObjGtkPix : the destination pix object or nil if error
242
243 37 iri
h2. _gtkPixCopy
244
245
Copies a pix into another pix
246
247
Prototype : *fun [ObjGtkPix ObjGtkPix] ObjGtkPix*
248
249
table.
250
|*source*|ObjGtkPix|the source pix (from)|
251
|*destination*|ObjGtkPix|the destination pix (to). If not nil, the old content is overwritten and its GTK reference is decreased. If the old pix has not reference, it will be freed|
252
253
+Return+ : ObjGtkPix : the destination pix or nil if error
254
255 9 iri
h2. _gtkPixSaturation
256
257
Modifies the saturation to a pix object
258
259
Prototype : *fun [ObjPixGtk I] ObjGtkPix*
260
261 11 iri
Value (I) : Between - 100 and 0, saturation is reduced (-> greyscale), between 0 and 100, the saturation is increased (vivid colors). With 0, the saturation is unchanged.
262 9 iri
263
+Return+ : ObjGtkPix : the same pix object or nil if an error is occured.
264
265 13 iri
h2. _gtkPixPixelate
266
267
Pixelates a pix object.
268
269
TODO.
270
271 12 iri
h2. _gtkPixFill
272
273
Fill a pix object with a given color.
274
275
Prototype : *fun [ObjGtkPix I] ObjGtkPix*
276
277
Value : I : Format is : RRGGBBAA. If pix hasn't an alpha channel, AA is ignored
278
279
+Return+ : ObjGtkPix : the same pix object or nil if an error is occured.
280 14 iri
281 16 iri
h2. _gtkPixGetSize
282
283
Returns the width and the height of a pix object
284
285
Prototype : *fun [ObjGtkPix] [I I]*
286
287
+Return+ : [I I] : the width and the height or nil if error
288
289 17 iri
h2. _gtkPixGetChannels
290
291
Prototype : *fun [ObjGtkPix] [I I I]*
292
293
+Return+ [I I I] :
294
* the number of channels of the pix object
295
* if the pix object has an alpha channel (1) or not (0)
296
* and the number of bits per color
297
298 16 iri
299
300 14 iri
301
302
h1. Animated image
303
304 18 iri
The static functions *should not* be used to the animated pix object.
305
306 14 iri
h2. _gtkPixAnimLoad
307
308
Loads an animated image file.
309
310
Prototype : *fun [Chn P] ObjGtkPix*
311
312
+Return+ : a new pix object or nil if an error occurs.
313 12 iri
314 15 iri
h2. _gtkPixAnimNew
315
316
Creates a new animated pix from a list of static pix.
317
318
Prototype : *fun [Chn [ObjGtkPix r1] I I I I] ObjGtkPix*
319
320
table.
321
|*channel*|Chn|any channel to create the Scol object|
322
|*list*|[ObjGtkPix r1]|a list of static pix object. These pix must have the same width ad height than the animation, else are ignored|
323
|*width*|I|the width of the animated image|
324
|*height*|I|the height of the animated image|
325
|*rate*|I|the speed of the animation, in frames per second. By default, it's 1|
326
|*loop*|I|1 (default) if the animation should loop indefinitely when it reaches the end, else 0|
327
328
+Return+ ObjGtkPix : a new pix object, or nil if error
329
330 20 iri
h2. _gtkPixAnimGetSize
331
332
Returns the size of an animated pix object
333
334
Prototype : *fun [ObjGtkPix] [I I]*
335
336
+Return+ [I I] : the width and the height. if error, returns nil.
337
338
h2. _gtkPixAnimGetStatic
339
340
Gets the pix static object if the animated pix object is unanimated
341
342
Prototype : *fun [ObjGtkPix] ObjGtkPix*
343
344
This functions takes to argument an animated pix object (via _gtkPixAnimLoad or _gtkPixAnimNew).
345
If there is *no animation*, then, the functions returns a *new* static pix object. Otherwise, nil is returned.
346
347
348 6 iri
349 5 iri
350 1 iri
351
Return [[Api]]