Project

General

Profile

Pix » History » Version 34

iri, 03/30/2011 11:34 PM

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