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