1 /**
2 * Copyright (C) 2012 hejian <hejian.he@gmail.com>
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18 #include <libgimp/gimp.h>
19
20 // fix gimp-2.6 issue: Procedure 'gimp-layer-new' has been called with value '100' for argument 'mode'
21 #include <libgimp/gimpui.h>
22
23 #include "beautify-effect.h"
24 #include "beautify-textures.h"
25
black_and_white(gint32 image_ID,gint32 drawable_ID)26 static void black_and_white (gint32 image_ID, gint32 drawable_ID)
27 {
28 gint nreturn_vals;
29 GimpParam *return_vals;
30
31 return_vals = gimp_run_procedure ("plug-in-colors-channel-mixer",
32 &nreturn_vals,
33 GIMP_PDB_INT32, 1,
34 GIMP_PDB_IMAGE, image_ID,
35 GIMP_PDB_DRAWABLE, drawable_ID,
36 GIMP_PDB_INT32, 0,
37 GIMP_PDB_FLOAT, 0.30,
38 GIMP_PDB_FLOAT, 0.59,
39 GIMP_PDB_FLOAT, 0.11,
40 GIMP_PDB_FLOAT, 0.30,
41 GIMP_PDB_FLOAT, 0.59,
42 GIMP_PDB_FLOAT, 0.11,
43 GIMP_PDB_FLOAT, 0.30,
44 GIMP_PDB_FLOAT, 0.59,
45 GIMP_PDB_FLOAT, 0.11,
46 GIMP_PDB_END);
47 gimp_destroy_params (return_vals, nreturn_vals);
48
49 //gimp_desaturate_full (drawable_ID, GIMP_DESATURATE_LUMINOSITY);
50 }
51
52 void
run_effect(gint32 image_ID,BeautifyEffectType effect)53 run_effect (gint32 image_ID, BeautifyEffectType effect)
54 {
55 gimp_context_push ();
56
57 gint32 layer = gimp_image_get_active_layer (image_ID);
58 gint32 effect_layer = gimp_layer_copy (layer);
59 gimp_image_add_layer (image_ID, effect_layer, -1);
60 //gimp_layer_set_lock_alpha (effect_layer, TRUE);
61
62 gint width = gimp_image_width (image_ID);
63 gint height = gimp_image_height (image_ID);
64
65 switch (effect)
66 {
67 case BEAUTIFY_EFFECT_SOFT_LIGHT:
68 {
69 gint32 layer;
70
71 layer = gimp_layer_copy (effect_layer);
72 gimp_image_add_layer (image_ID, layer, -1);
73 gimp_levels (layer, GIMP_HISTOGRAM_VALUE, 20, 255, 1, 0, 255);
74
75 GimpParam *return_vals;
76 gint nreturn_vals;
77 return_vals = gimp_run_procedure ("plug-in-gauss",
78 &nreturn_vals,
79 GIMP_PDB_INT32, GIMP_RUN_NONINTERACTIVE,
80 GIMP_PDB_IMAGE, image_ID,
81 GIMP_PDB_DRAWABLE, layer,
82 GIMP_PDB_FLOAT, 15.0,
83 GIMP_PDB_FLOAT, 15.0,
84 GIMP_PDB_INT32, 1,
85 GIMP_PDB_END);
86 gimp_destroy_params (return_vals, nreturn_vals);
87
88 gimp_layer_set_mode (layer, GIMP_SCREEN_MODE);
89 gimp_layer_set_opacity (layer, 35);
90 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_IMAGE);
91
92 break;
93 }
94 case BEAUTIFY_EFFECT_WARM:
95 {
96 guint8 red_pts[] = {
97 0.0, 0.082031 * 255,
98 0.405488 * 255, 0.621094 * 255,
99 0.954268 * 255, 1.000000 * 255,
100 };
101 guint8 green_pts[] = {
102 0.0, 0.0,
103 0.503049 * 255, 0.636719 * 255,
104 1.000000 * 255, 1.000000 * 255,
105 };
106 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 6, red_pts);
107 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 6, green_pts);
108 }
109 break;
110
111 case BEAUTIFY_EFFECT_SHARPEN:
112 {
113 gint nreturn_vals;
114 GimpParam *return_vals = gimp_run_procedure ("plug-in-sharpen",
115 &nreturn_vals,
116 GIMP_PDB_INT32, 1,
117 GIMP_PDB_IMAGE, image_ID,
118 GIMP_PDB_DRAWABLE, effect_layer,
119 GIMP_PDB_INT32, 50,
120 GIMP_PDB_END);
121 gimp_destroy_params (return_vals, nreturn_vals);
122 break;
123 }
124 case BEAUTIFY_EFFECT_SOFT:
125 {
126 gint nreturn_vals;
127 GimpParam *return_vals = gimp_run_procedure ("plug-in-gauss",
128 &nreturn_vals,
129 GIMP_PDB_INT32, 1,
130 GIMP_PDB_IMAGE, image_ID,
131 GIMP_PDB_DRAWABLE, effect_layer,
132 GIMP_PDB_FLOAT, 1.2,
133 GIMP_PDB_FLOAT, 1.2,
134 GIMP_PDB_INT32, 1,
135 GIMP_PDB_END);
136 gimp_destroy_params (return_vals, nreturn_vals);
137 break;
138 }
139 case BEAUTIFY_EFFECT_STRONG_CONTRAST:
140 {
141 guint8 red_pts[] = {
142 0.000000 * 255, 0.003922 * 255,
143 0.121569 * 255, 0.039216 * 255,
144 0.247059 * 255, 0.105882 * 255,
145 0.372549 * 255, 0.235294 * 255,
146 0.498039 * 255, 0.537255 * 255,
147 0.623529 * 255, 0.768627 * 255,
148 0.749020 * 255, 0.858824 * 255,
149 0.874510 * 255, 0.929412 * 255,
150 1.000000 * 255, 1.000000 * 255,
151 };
152 guint8 green_pts[] = {
153 0.000000 * 255, 0.003922 * 255,
154 0.121569 * 255, 0.027451 * 255,
155 0.247059 * 255, 0.117647 * 255,
156 0.372549 * 255, 0.286275 * 255,
157 0.498039 * 255, 0.576471 * 255,
158 0.623529 * 255, 0.780392 * 255,
159 0.749020 * 255, 0.890196 * 255,
160 0.874510 * 255, 0.952941 * 255,
161 1.000000 * 255, 1.000000 * 255,
162 };
163 guint8 blue_pts[] = {
164 0.000000 * 255, 0.003922 * 255,
165 0.121569 * 255, 0.050980 * 255,
166 0.247059 * 255, 0.133333 * 255,
167 0.372549 * 255, 0.294118 * 255,
168 0.498039 * 255, 0.568627 * 255,
169 0.623529 * 255, 0.772549 * 255,
170 0.749020 * 255, 0.874510 * 255,
171 0.874510 * 255, 0.941176 * 255,
172 1.000000 * 255, 1.000000 * 255,
173 };
174 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
175 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
176 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
177 break;
178 }
179 case BEAUTIFY_EFFECT_SMART_COLOR:
180 {
181 guint8 red_pts[] = {
182 0.0, 0.001012 * 255, 0.121569 * 255, 0.126695 * 255,
183 0.247059 * 255, 0.279821 * 255, 0.372549 * 255, 0.428038 * 255,
184 0.498039 * 255, 0.567700 * 255, 0.623529 * 255, 0.699439 * 255,
185 0.749020 * 255, 0.821423 * 255, 0.874510 * 255, 0.953474 * 255,
186 1.000000 * 255, 0.997988 * 255,
187 };
188 guint8 green_pts[] = {
189 0.0, 0.004278 * 255, 0.121569 * 255, 0.107139 * 255,
190 0.247059 * 255, 0.225961 * 255, 0.372549 * 255, 0.346578 * 255,
191 0.498039 * 255, 0.472647 * 255, 0.623529 * 255, 0.602136 * 255,
192 0.749020 * 255, 0.730046 * 255, 0.874510 * 255, 0.873495 * 255,
193 1.000000 * 255, 0.996787 * 255,
194 };
195 guint8 blue_pts[] = {
196 0.0, 0.000105 * 255, 0.121569 * 255, 0.060601 * 255,
197 0.247059 * 255, 0.146772 * 255, 0.372549 * 255, 0.262680 * 255,
198 0.498039 * 255, 0.408053 * 255, 0.623529 * 255, 0.566459 * 255,
199 0.749020 * 255, 0.691468 * 255, 0.874510 * 255, 0.847356 * 255,
200 1.000000 * 255, 0.999226 * 255,
201 };
202 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
203 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
204 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
205 }
206 break;
207 case BEAUTIFY_EFFECT_BLACK_AND_WHITE:
208 {
209 black_and_white (image_ID, effect_layer);
210 break;
211 }
212 case BEAUTIFY_EFFECT_INVERT:
213 gimp_invert (effect_layer);
214 break;
215 case BEAUTIFY_EFFECT_CLASSIC_LOMO:
216 {
217 gint32 layer;
218 GdkPixbuf *pixbuf;
219
220 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_classic_LOMO_1, FALSE, NULL);
221 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_OVERLAY_MODE, 0, 0);
222 gimp_image_add_layer (image_ID, layer, -1);
223 gimp_layer_scale (layer, width, height, FALSE);
224 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
225
226 guint8 red_pts[] = {
227 0.000000 * 255, 0.000430 * 255,
228 0.121569 * 255, 0.034226 * 255,
229 0.247059 * 255, 0.156268 * 255,
230 0.372549 * 255, 0.337497 * 255,
231 0.498039 * 255, 0.542195 * 255,
232 0.623529 * 255, 0.728355 * 255,
233 0.749020 * 255, 0.862534 * 255,
234 0.874510 * 255, 0.942754 * 255,
235 1.000000 * 255, 0.994413 * 255,
236 };
237 guint8 green_pts[] = {
238 0.000000 * 255, 0.000167 * 255,
239 0.121569 * 255, 0.023472 * 255,
240 0.247059 * 255, 0.139498 * 255,
241 0.372549 * 255, 0.318074 * 255,
242 0.498039 * 255, 0.520901 * 255,
243 0.623529 * 255, 0.705862 * 255,
244 0.749020 * 255, 0.849380 * 255,
245 0.874510 * 255, 0.952092 * 255,
246 1.000000 * 255, 0.994484 * 255,
247 };
248 guint8 blue_pts[] = {
249 0.000000 * 255, 0.000377 * 255,
250 0.121569 * 255, 0.030137 * 255,
251 0.247059 * 255, 0.160170 * 255,
252 0.372549 * 255, 0.335944 * 255,
253 0.498039 * 255, 0.545279 * 255,
254 0.623529 * 255, 0.719690 * 255,
255 0.749020 * 255, 0.867722 * 255,
256 0.874510 * 255, 0.965811 * 255,
257 1.000000 * 255, 0.995110 * 255,
258 };
259 layer = gimp_image_get_active_layer (image_ID);
260 gimp_curves_spline (layer, GIMP_HISTOGRAM_RED, 18, red_pts);
261 gimp_curves_spline (layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
262 gimp_curves_spline (layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
263
264 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_classic_LOMO_2, FALSE, NULL);
265 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_MULTIPLY_MODE, 0, 0);
266 gimp_image_add_layer (image_ID, layer, -1);
267 gimp_layer_scale (layer, width, height, FALSE);
268 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
269
270 break;
271 }
272 case BEAUTIFY_EFFECT_RETRO_LOMO:
273 {
274 guint8 red_pts[] = {
275 0.000000 * 255, 0.009477 * 255,
276 0.121569 * 255, 0.066342 * 255,
277 0.247059 * 255, 0.211570 * 255,
278 0.372549 * 255, 0.391796 * 255,
279 0.498039 * 255, 0.576389 * 255,
280 0.623529 * 255, 0.745091 * 255,
281 0.749020 * 255, 0.875015 * 255,
282 0.874510 * 255, 0.959604 * 255,
283 1.000000 * 255, 0.989234 * 255,
284 };
285 guint8 green_pts[] = {
286 0.000000 * 255, 0.075980 * 255,
287 0.121569 * 255, 0.176692 * 255,
288 0.247059 * 255, 0.294329 * 255,
289 0.372549 * 255, 0.415297 * 255,
290 0.498039 * 255, 0.536491 * 255,
291 0.623529 * 255, 0.651230 * 255,
292 0.749020 * 255, 0.751355 * 255,
293 0.874510 * 255, 0.843675 * 255,
294 1.000000 * 255, 0.921772 * 255,
295 };
296 guint8 blue_pts[] = {
297 0.000000 * 255, 0.246068 * 255,
298 0.121569 * 255, 0.310134 * 255,
299 0.247059 * 255, 0.373558 * 255,
300 0.372549 * 255, 0.435251 * 255,
301 0.498039 * 255, 0.503361 * 255,
302 0.623529 * 255, 0.565592 * 255,
303 0.749020 * 255, 0.629995 * 255,
304 0.874510 * 255, 0.690267 * 255,
305 1.000000 * 255, 0.751997 * 255,
306 };
307 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
308 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
309 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
310
311 gint nreturn_vals;
312 GimpParam *return_vals;
313
314 return_vals = gimp_run_procedure ("plug-in-rgb-noise",
315 &nreturn_vals,
316 GIMP_PDB_INT32, 1,
317 GIMP_PDB_IMAGE, image_ID,
318 GIMP_PDB_DRAWABLE, effect_layer,
319 GIMP_PDB_INT32, 0,
320 GIMP_PDB_INT32, 0,
321 GIMP_PDB_FLOAT, 0.03,
322 GIMP_PDB_FLOAT, 0.03,
323 GIMP_PDB_FLOAT, 0.03,
324 GIMP_PDB_FLOAT, 0.03,
325 GIMP_PDB_END);
326 gimp_destroy_params (return_vals, nreturn_vals);
327
328 break;
329 }
330 case BEAUTIFY_EFFECT_GOTHIC_STYLE:
331 {
332 guint8 red_pts[] = {
333 0.0, 0.003922 * 255, 0.121569 * 255, 0.011765 * 255,
334 0.247059 * 255, 0.074510 * 255, 0.372549 * 255, 0.200000 * 255,
335 0.498039 * 255, 0.380392 * 255, 0.623529 * 255, 0.584314 * 255,
336 0.749020 * 255, 0.784314 * 255, 0.874510 * 255, 0.933333 * 255,
337 1.000000 * 255, 1.000000 * 255,
338 };
339 guint8 green_pts[] = {
340 0.0, 0.003922 * 255, 0.121569 * 255, 0.039216 * 255,
341 0.247059 * 255, 0.160784 * 255, 0.372549 * 255, 0.317647 * 255,
342 0.498039 * 255, 0.501961 * 255, 0.623529 * 255, 0.682353 * 255,
343 0.749020 * 255, 0.843137 * 255, 0.874510 * 255, 0.952941 * 255,
344 1.000000 * 255, 1.000000 * 255,
345 };
346 guint8 blue_pts[] = {
347 0.0, 0.003922 * 255, 0.121569 * 255, 0.007843 * 255,
348 0.247059 * 255, 0.058824 * 255, 0.372549 * 255, 0.172549 * 255,
349 0.498039 * 255, 0.349020 * 255, 0.623529 * 255, 0.556863 * 255,
350 0.749020 * 255, 0.768627 * 255, 0.874510 * 255, 0.929412 * 255,
351 1.000000 * 255, 1.000000 * 255,
352 };
353 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
354 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
355 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
356 }
357 break;
358 case BEAUTIFY_EFFECT_FILM:
359 {
360 guint8 red_pts[] = {
361 0.000000 * 255, 0.101961 * 255,
362 0.121569 * 255, 0.101961 * 255,
363 0.247059 * 255, 0.164706 * 255,
364 0.372549 * 255, 0.333333 * 255,
365 0.498039 * 255, 0.521569 * 255,
366 0.623529 * 255, 0.701961 * 255,
367 0.749020 * 255, 0.850980 * 255,
368 0.874510 * 255, 0.956863 * 255,
369 1.000000 * 255, 1.000000 * 255,
370 };
371 guint8 green_pts[] = {
372 0.000000 * 255, 0.192157 * 255,
373 0.121569 * 255, 0.192157 * 255,
374 0.247059 * 255, 0.192157 * 255,
375 0.372549 * 255, 0.329412 * 255,
376 0.498039 * 255, 0.517647 * 255,
377 0.623529 * 255, 0.698039 * 255,
378 0.749020 * 255, 0.850980 * 255,
379 0.874510 * 255, 0.956863 * 255,
380 1.000000 * 255, 1.000000 * 255,
381 };
382 guint8 blue_pts[] = {
383 0.000000 * 255, 0.266667 * 255,
384 0.121569 * 255, 0.266667 * 255,
385 0.247059 * 255, 0.266667 * 255,
386 0.372549 * 255, 0.290196 * 255,
387 0.498039 * 255, 0.470588 * 255,
388 0.623529 * 255, 0.658824 * 255,
389 0.749020 * 255, 0.827451 * 255,
390 0.874510 * 255, 0.949020 * 255,
391 1.000000 * 255, 1.000000 * 255,
392 };
393 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
394 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
395 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
396 break;
397 }
398 case BEAUTIFY_EFFECT_HDR:
399 {
400 guint8 red_pts[] = {
401 0.000000 * 255, 0.003922 * 255,
402 0.121569 * 255, 0.015686 * 255,
403 0.247059 * 255, 0.207843 * 255,
404 0.372549 * 255, 0.396078 * 255,
405 0.498039 * 255, 0.556863 * 255,
406 0.623529 * 255, 0.698039 * 255,
407 0.749020 * 255, 0.811765 * 255,
408 0.874510 * 255, 0.909804 * 255,
409 1.000000 * 255, 1.000000 * 255,
410 };
411 guint8 green_pts[] = {
412 0.000000 * 255, 0.003922 * 255,
413 0.121569 * 255, 0.015686 * 255,
414 0.247059 * 255, 0.200000 * 255,
415 0.372549 * 255, 0.384314 * 255,
416 0.498039 * 255, 0.541176 * 255,
417 0.623529 * 255, 0.682353 * 255,
418 0.749020 * 255, 0.800000 * 255,
419 0.874510 * 255, 0.901961 * 255,
420 1.000000 * 255, 1.000000 * 255,
421 };
422 guint8 blue_pts[] = {
423 0.000000 * 255, 0.054902 * 255,
424 0.121569 * 255, 0.121569 * 255,
425 0.247059 * 255, 0.262745 * 255,
426 0.372549 * 255, 0.407843 * 255,
427 0.498039 * 255, 0.537255 * 255,
428 0.623529 * 255, 0.662745 * 255,
429 0.749020 * 255, 0.780392 * 255,
430 0.874510 * 255, 0.890196 * 255,
431 1.000000 * 255, 1.000000 * 255,
432 };
433 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
434 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
435 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
436 break;
437 }
438 case BEAUTIFY_EFFECT_CLASSIC_HDR:
439 {
440 guint8 red_pts[] = {
441 0.0, 0.054902 * 255, 0.121569 * 255, 0.070588 * 255,
442 0.247059 * 255, 0.243137 * 255, 0.372549 * 255, 0.407843 * 255,
443 0.498039 * 255, 0.552941 * 255, 0.623529 * 255, 0.678431 * 255,
444 0.749020 * 255, 0.780392 * 255, 0.874510 * 255, 0.866667 * 255,
445 1.000000 * 255, 0.949020 * 255,
446 };
447 guint8 green_pts[] = {
448 0.0, 0.007843 * 255, 0.121569 * 255, 0.023529 * 255,
449 0.247059 * 255, 0.207843 * 255, 0.372549 * 255, 0.388235 * 255,
450 0.498039 * 255, 0.541176 * 255, 0.623529 * 255, 0.682353 * 255,
451 0.749020 * 255, 0.796078 * 255, 0.874510 * 255, 0.898039 * 255,
452 1.000000 * 255, 0.996078 * 255,
453 };
454 guint8 blue_pts[] = {
455 0.0, 0.258824 * 255, 0.121569 * 255, 0.294118 * 255,
456 0.247059 * 255, 0.372549 * 255, 0.372549 * 255, 0.450980 * 255,
457 0.498039 * 255, 0.521569 * 255, 0.623529 * 255, 0.592157 * 255,
458 0.749020 * 255, 0.654902 * 255, 0.874510 * 255, 0.717647 * 255,
459 1.000000 * 255, 0.776471 * 255,
460 };
461 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
462 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
463 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
464 }
465 break;
466 case BEAUTIFY_EFFECT_YELLOWING_DARK_CORNERS:
467 {
468 guint8 red_pts[] = {
469 0.000000 * 255, 0.093137 * 255,
470 0.121569 * 255, 0.125134 * 255,
471 0.247059 * 255, 0.227000 * 255,
472 0.372549 * 255, 0.372794 * 255,
473 0.498039 * 255, 0.537491 * 255,
474 0.623529 * 255, 0.706434 * 255,
475 0.749020 * 255, 0.852155 * 255,
476 0.874510 * 255, 0.953969 * 255,
477 1.000000 * 255, 0.996078 * 255,
478 };
479 guint8 green_pts[] = {
480 0.000000 * 255, 0.092647 * 255,
481 0.121569 * 255, 0.125205 * 255,
482 0.247059 * 255, 0.227129 * 255,
483 0.372549 * 255, 0.372871 * 255,
484 0.498039 * 255, 0.537711 * 255,
485 0.623529 * 255, 0.706357 * 255,
486 0.749020 * 255, 0.851153 * 255,
487 0.874510 * 255, 0.953240 * 255,
488 1.000000 * 255, 0.996078 * 255,
489 };
490 guint8 blue_pts[] = {
491 0.000000 * 255, 0.003922 * 255,
492 0.121569 * 255, 0.029810 * 255,
493 0.247059 * 255, 0.143778 * 255,
494 0.372549 * 255, 0.305764 * 255,
495 0.498039 * 255, 0.488796 * 255,
496 0.623529 * 255, 0.672134 * 255,
497 0.749020 * 255, 0.833704 * 255,
498 0.874510 * 255, 0.948010 * 255,
499 1.000000 * 255, 0.996078 * 255,
500 };
501 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
502 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
503 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
504
505 gint32 layer;
506 GdkPixbuf *pixbuf;
507
508 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_yellowing_dark_corners, FALSE, NULL);
509 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_MULTIPLY_MODE, 0, 0);
510 gimp_image_add_layer (image_ID, layer, -1);
511 gimp_layer_scale (layer, width, height, FALSE);
512 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
513
514 break;
515 }
516 case BEAUTIFY_EFFECT_IMPRESSION:
517 {
518 guint8 red_pts[] = {
519 0.000000 * 255, 0.113725 * 255,
520 0.121569 * 255, 0.213975 * 255,
521 0.247059 * 255, 0.323494 * 255,
522 0.372549 * 255, 0.460137 * 255,
523 0.498039 * 255, 0.621504 * 255,
524 0.623529 * 255, 0.716847 * 255,
525 0.749020 * 255, 0.766909 * 255,
526 0.874510 * 255, 0.817666 * 255,
527 1.000000 * 255, 0.862745 * 255,
528 };
529 guint8 green_pts[] = {
530 0.000000 * 255, 0.200000 * 255,
531 0.121569 * 255, 0.317329 * 255,
532 0.247059 * 255, 0.407881 * 255,
533 0.372549 * 255, 0.535429 * 255,
534 0.498039 * 255, 0.682828 * 255,
535 0.623529 * 255, 0.770688 * 255,
536 0.749020 * 255, 0.813005 * 255,
537 0.874510 * 255, 0.852891 * 255,
538 1.000000 * 255, 0.902716 * 255,
539 };
540 guint8 blue_pts[] = {
541 0.000000 * 255, 0.317714 * 255,
542 0.121569 * 255, 0.364205 * 255,
543 0.247059 * 255, 0.417294 * 255,
544 0.372549 * 255, 0.495841 * 255,
545 0.498039 * 255, 0.612710 * 255,
546 0.623529 * 255, 0.719834 * 255,
547 0.749020 * 255, 0.795937 * 255,
548 0.874510 * 255, 0.845977 * 255,
549 1.000000 * 255, 0.883024 * 255,
550 };
551 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
552 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
553 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
554 break;
555 }
556 case BEAUTIFY_EFFECT_DEEP_BLUE_TEAR_RAIN:
557 {
558 guint8 red_pts[] = {
559 0.000000 * 255, 0.003922 * 255,
560 0.121569 * 255, 0.094118 * 255,
561 0.247059 * 255, 0.254902 * 255,
562 0.372549 * 255, 0.439216 * 255,
563 0.498039 * 255, 0.603922 * 255,
564 0.623529 * 255, 0.745098 * 255,
565 0.749020 * 255, 0.850980 * 255,
566 0.874510 * 255, 0.941176 * 255,
567 1.000000 * 255, 0.992157 * 255,
568 };
569 guint8 green_pts[] = {
570 0.000000 * 255, 0.019608 * 255,
571 0.121569 * 255, 0.164706 * 255,
572 0.247059 * 255, 0.337255 * 255,
573 0.372549 * 255, 0.509804 * 255,
574 0.498039 * 255, 0.666667 * 255,
575 0.623529 * 255, 0.784314 * 255,
576 0.749020 * 255, 0.878431 * 255,
577 0.874510 * 255, 0.941176 * 255,
578 1.000000 * 255, 0.992157 * 255,
579 };
580 guint8 blue_pts[] = {
581 0.000000 * 255, 0.133333 * 255,
582 0.121569 * 255, 0.333333 * 255,
583 0.247059 * 255, 0.494118 * 255,
584 0.372549 * 255, 0.643137 * 255,
585 0.498039 * 255, 0.760784 * 255,
586 0.623529 * 255, 0.850980 * 255,
587 0.749020 * 255, 0.913725 * 255,
588 0.874510 * 255, 0.964706 * 255,
589 1.000000 * 255, 0.988235 * 255,
590 };
591 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
592 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
593 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
594 break;
595 }
596 case BEAUTIFY_EFFECT_PURPLE_SENSATION:
597 {
598 guint8 red_pts[] = {
599 0.000000 * 255, 0.003922 * 255,
600 0.121569 * 255, 0.003922 * 255,
601 0.247059 * 255, 0.149020 * 255,
602 0.372549 * 255, 0.345098 * 255,
603 0.498039 * 255, 0.541176 * 255,
604 0.623529 * 255, 0.725490 * 255,
605 0.749020 * 255, 0.870588 * 255,
606 0.874510 * 255, 0.960784 * 255,
607 1.000000 * 255, 1.000000 * 255,
608 };
609 guint8 green_pts[] = {
610 0.000000 * 255, 0.003922 * 255,
611 0.121569 * 255, 0.003922 * 255,
612 0.247059 * 255, 0.003922 * 255,
613 0.372549 * 255, 0.274510 * 255,
614 0.498039 * 255, 0.521569 * 255,
615 0.623529 * 255, 0.713725 * 255,
616 0.749020 * 255, 0.862745 * 255,
617 0.874510 * 255, 0.952941 * 255,
618 1.000000 * 255, 1.000000 * 255,
619 };
620 guint8 blue_pts[] = {
621 0.000000 * 255, 0.007843 * 255,
622 0.121569 * 255, 0.070588 * 255,
623 0.247059 * 255, 0.313725 * 255,
624 0.372549 * 255, 0.513725 * 255,
625 0.498039 * 255, 0.682353 * 255,
626 0.623529 * 255, 0.811765 * 255,
627 0.749020 * 255, 0.905882 * 255,
628 0.874510 * 255, 0.968627 * 255,
629 1.000000 * 255, 1.000000 * 255,
630 };
631 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
632 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
633 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
634 break;
635 }
636 case BEAUTIFY_EFFECT_BRONZE:
637 {
638 guint8 red_pts[] = {
639 0.000000 * 255, 0.003922 * 255,
640 0.121569 * 255, 0.078431 * 255,
641 0.247059 * 255, 0.196078 * 255,
642 0.372549 * 255, 0.341176 * 255,
643 0.498039 * 255, 0.494118 * 255,
644 0.623529 * 255, 0.650980 * 255,
645 0.749020 * 255, 0.729412 * 255,
646 0.874510 * 255, 0.729412 * 255,
647 1.000000 * 255, 0.729412 * 255,
648 };
649 guint8 green_pts[] = {
650 0.000000 * 255, 0.003922 * 255,
651 0.121569 * 255, 0.078431 * 255,
652 0.247059 * 255, 0.196078 * 255,
653 0.372549 * 255, 0.341176 * 255,
654 0.498039 * 255, 0.494118 * 255,
655 0.623529 * 255, 0.650980 * 255,
656 0.749020 * 255, 0.792157 * 255,
657 0.874510 * 255, 0.913725 * 255,
658 1.000000 * 255, 0.925490 * 255,
659 };
660 guint8 blue_pts[] = {
661 0.000000 * 255, 0.450980 * 255,
662 0.121569 * 255, 0.450980 * 255,
663 0.247059 * 255, 0.450980 * 255,
664 0.372549 * 255, 0.450980 * 255,
665 0.498039 * 255, 0.494118 * 255,
666 0.623529 * 255, 0.650980 * 255,
667 0.749020 * 255, 0.792157 * 255,
668 0.874510 * 255, 0.913725 * 255,
669 1.000000 * 255, 1.000000 * 255,
670 };
671 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
672 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
673 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
674 break;
675 }
676 case BEAUTIFY_EFFECT_RECALL:
677 {
678 gint32 layer;
679 GdkPixbuf *pixbuf;
680
681 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_recall, FALSE, NULL);
682 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_MULTIPLY_MODE, 0, 0);
683 gimp_image_add_layer (image_ID, layer, -1);
684 gimp_layer_scale (layer, width, height, FALSE);
685 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
686 break;
687 }
688 case BEAUTIFY_EFFECT_ELEGANT:
689 {
690 gimp_hue_saturation (effect_layer, GIMP_ALL_HUES, 0, 0, -40);
691
692 guint8 red_pts[] = {
693 0.000000 * 255, 0.000171 * 255,
694 0.121569 * 255, 0.047560 * 255,
695 0.247059 * 255, 0.162212 * 255,
696 0.372549 * 255, 0.329729 * 255,
697 0.498039 * 255, 0.520206 * 255,
698 0.623529 * 255, 0.704597 * 255,
699 0.749020 * 255, 0.849098 * 255,
700 0.874510 * 255, 0.971076 * 255,
701 1.000000 * 255, 0.996078 * 255,
702 };
703 guint8 green_pts[] = {
704 0.000000 * 255, 0.007843 * 255,
705 0.121569 * 255, 0.063296 * 255,
706 0.247059 * 255, 0.177207 * 255,
707 0.372549 * 255, 0.326921 * 255,
708 0.498039 * 255, 0.494137 * 255,
709 0.623529 * 255, 0.653138 * 255,
710 0.749020 * 255, 0.799763 * 255,
711 0.874510 * 255, 0.903914 * 255,
712 1.000000 * 255, 0.949020 * 255,
713 };
714 guint8 blue_pts[] = {
715 0.000000 * 255, 0.031373 * 255,
716 0.121569 * 255, 0.103265 * 255,
717 0.247059 * 255, 0.214688 * 255,
718 0.372549 * 255, 0.347533 * 255,
719 0.498039 * 255, 0.485165 * 255,
720 0.623529 * 255, 0.619805 * 255,
721 0.749020 * 255, 0.751388 * 255,
722 0.874510 * 255, 0.868222 * 255,
723 1.000000 * 255, 0.949020 * 255,
724 };
725 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
726 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
727 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
728
729 break;
730 }
731 case BEAUTIFY_EFFECT_LITTLE_FRESH:
732 {
733 guint8 red_pts[] = {
734 0.0, 0.002975 * 255, 0.121569 * 255, 0.135413 * 255,
735 0.247059 * 255, 0.271797 * 255, 0.372549 * 255, 0.420642 * 255,
736 0.498039 * 255, 0.587088 * 255, 0.623529 * 255, 0.672206 * 255,
737 0.749020 * 255, 0.781208 * 255, 0.874510 * 255, 0.881668 * 255,
738 1.000000 * 255, 0.993149 * 255,
739 };
740 guint8 green_pts[] = {
741 0.0, 0.001070 * 255, 0.121569 * 255, 0.123393 * 255,
742 0.247059 * 255, 0.254300 * 255, 0.372549 * 255, 0.377336 * 255,
743 0.498039 * 255, 0.486582 * 255, 0.623529 * 255, 0.607331 * 255,
744 0.749020 * 255, 0.722174 * 255, 0.874510 * 255, 0.858206 * 255,
745 1.000000 * 255, 0.992154 * 255,
746 };
747 guint8 blue_pts[] = {
748 0.0, 0.003917 * 255, 0.121569 * 255, 0.098807 * 255,
749 0.247059 * 255, 0.234746 * 255, 0.372549 * 255, 0.378388 * 255,
750 0.498039 * 255, 0.520273 * 255, 0.623529 * 255, 0.633239 * 255,
751 0.749020 * 255, 0.748242 * 255, 0.874510 * 255, 0.862234 * 255,
752 1.000000 * 255, 0.964176 * 255,
753 };
754 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
755 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
756 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
757 }
758 break;
759 case BEAUTIFY_EFFECT_CLASSIC_STUDIO:
760 {
761 guint8 red_pts[] = {
762 0.000000 * 255, 0.002941 * 255,
763 0.121569 * 255, 0.105177 * 255,
764 0.247059 * 255, 0.276869 * 255,
765 0.372549 * 255, 0.449951 * 255,
766 0.498039 * 255, 0.615011 * 255,
767 0.623529 * 255, 0.765528 * 255,
768 0.749020 * 255, 0.884498 * 255,
769 0.874510 * 255, 0.964439 * 255,
770 1.000000 * 255, 0.996641 * 255,
771 };
772 guint8 green_pts[] = {
773 0.000000 * 255, 0.000980 * 255,
774 0.121569 * 255, 0.023976 * 255,
775 0.247059 * 255, 0.117564 * 255,
776 0.372549 * 255, 0.268570 * 255,
777 0.498039 * 255, 0.450785 * 255,
778 0.623529 * 255, 0.640827 * 255,
779 0.749020 * 255, 0.821280 * 255,
780 0.874510 * 255, 0.944143 * 255,
781 1.000000 * 255, 0.994046 * 255,
782 };
783 guint8 blue_pts[] = {
784 0.000000 * 255, 0.001705 * 255,
785 0.121569 * 255, 0.091176 * 255,
786 0.247059 * 255, 0.255272 * 255,
787 0.372549 * 255, 0.426934 * 255,
788 0.498039 * 255, 0.599930 * 255,
789 0.623529 * 255, 0.749604 * 255,
790 0.749020 * 255, 0.879809 * 255,
791 0.874510 * 255, 0.963030 * 255,
792 1.000000 * 255, 0.994565 * 255,
793 };
794 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
795 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
796 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
797 break;
798 }
799 case BEAUTIFY_EFFECT_RETRO:
800 {
801 guint8 red_pts[] = {
802 0.000000 * 255, 0.011765 * 255,
803 0.121569 * 255, 0.050275 * 255,
804 0.247059 * 255, 0.163976 * 255,
805 0.372549 * 255, 0.316983 * 255,
806 0.498039 * 255, 0.493141 * 255,
807 0.623529 * 255, 0.671170 * 255,
808 0.749020 * 255, 0.829955 * 255,
809 0.874510 * 255, 0.941938 * 255,
810 1.000000 * 255, 0.988797 * 255,
811 };
812 guint8 green_pts[] = {
813 0.000000 * 255, 0.044118 * 255,
814 0.121569 * 255, 0.081048 * 255,
815 0.247059 * 255, 0.181188 * 255,
816 0.372549 * 255, 0.327417 * 255,
817 0.498039 * 255, 0.493717 * 255,
818 0.623529 * 255, 0.658936 * 255,
819 0.749020 * 255, 0.811563 * 255,
820 0.874510 * 255, 0.915557 * 255,
821 1.000000 * 255, 0.956299 * 255,
822 };
823 guint8 blue_pts[] = {
824 0.000000 * 255, 0.247630 * 255,
825 0.121569 * 255, 0.268491 * 255,
826 0.247059 * 255, 0.325230 * 255,
827 0.372549 * 255, 0.405204 * 255,
828 0.498039 * 255, 0.497829 * 255,
829 0.623529 * 255, 0.588839 * 255,
830 0.749020 * 255, 0.675181 * 255,
831 0.874510 * 255, 0.731610 * 255,
832 1.000000 * 255, 0.752075 * 255,
833 };
834 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
835 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
836 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
837 break;
838 }
839 case BEAUTIFY_EFFECT_PINK_LADY:
840 {
841 guint8 red_pts[] = {
842 0.000000 * 255, 0.003922 * 255,
843 0.121569 * 255, 0.196078 * 255,
844 0.247059 * 255, 0.356863 * 255,
845 0.372549 * 255, 0.509804 * 255,
846 0.498039 * 255, 0.647059 * 255,
847 0.623529 * 255, 0.760784 * 255,
848 0.749020 * 255, 0.858824 * 255,
849 0.874510 * 255, 0.937255 * 255,
850 1.000000 * 255, 1.000000 * 255,
851 };
852 guint8 green_pts[] = {
853 0.000000 * 255, 0.003922 * 255,
854 0.121569 * 255, 0.180392 * 255,
855 0.247059 * 255, 0.329412 * 255,
856 0.372549 * 255, 0.478431 * 255,
857 0.498039 * 255, 0.611765 * 255,
858 0.623529 * 255, 0.729412 * 255,
859 0.749020 * 255, 0.831373 * 255,
860 0.874510 * 255, 0.921569 * 255,
861 1.000000 * 255, 1.000000 * 255,
862 };
863 guint8 blue_pts[] = {
864 0.000000 * 255, 0.003922 * 255,
865 0.121569 * 255, 0.168627 * 255,
866 0.247059 * 255, 0.317647 * 255,
867 0.372549 * 255, 0.458824 * 255,
868 0.498039 * 255, 0.592157 * 255,
869 0.623529 * 255, 0.709804 * 255,
870 0.749020 * 255, 0.819608 * 255,
871 0.874510 * 255, 0.913725 * 255,
872 1.000000 * 255, 1.000000 * 255,
873 };
874 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
875 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
876 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
877 break;
878 }
879 case BEAUTIFY_EFFECT_ABAO_COLOR:
880 {
881 gint nreturn_vals;
882 GimpParam *return_vals;
883 gint *layers;
884 gint num_layers;
885 gint32 layer;
886 gint32 image;
887
888 return_vals = gimp_run_procedure ("plug-in-decompose",
889 &nreturn_vals,
890 GIMP_PDB_INT32, 1,
891 GIMP_PDB_IMAGE, image_ID,
892 GIMP_PDB_DRAWABLE, effect_layer,
893 GIMP_PDB_STRING, "LAB",
894 GIMP_PDB_INT32, 1,
895 GIMP_PDB_END);
896 gint32 lab = return_vals[1].data.d_int32;
897 gimp_destroy_params (return_vals, nreturn_vals);
898
899 layers = gimp_image_get_layers (lab, &num_layers);
900 return_vals = gimp_run_procedure ("plug-in-drawable-compose",
901 &nreturn_vals,
902 GIMP_PDB_INT32, 1,
903 GIMP_PDB_IMAGE, lab,
904 GIMP_PDB_DRAWABLE, layers[0],
905 GIMP_PDB_DRAWABLE, layers[1],
906 GIMP_PDB_DRAWABLE, layers[2],
907 GIMP_PDB_DRAWABLE, 0,
908 GIMP_PDB_STRING, "RGB",
909 GIMP_PDB_END);
910 gimp_image_delete (lab);
911 image = return_vals[1].data.d_int32;
912 gimp_destroy_params (return_vals, nreturn_vals);
913
914 guint8 red_pts[] = {
915 0.000000 * 255, 0.003922 * 255,
916 0.121569 * 255, 0.132068 * 255,
917 0.247059 * 255, 0.270845 * 255,
918 0.372549 * 255, 0.400251 * 255,
919 0.498039 * 255, 0.526639 * 255,
920 0.623529 * 255, 0.644370 * 255,
921 0.749020 * 255, 0.777614 * 255,
922 0.874510 * 255, 0.890458 * 255,
923 1.000000 * 255, 0.998224 * 255,
924 };
925 guint8 green_pts[] = {
926 0.000000 * 255, 0.247059 * 255,
927 0.121569 * 255, 0.258731 * 255,
928 0.247059 * 255, 0.288818 * 255,
929 0.372549 * 255, 0.362942 * 255,
930 0.498039 * 255, 0.494041 * 255,
931 0.623529 * 255, 0.613636 * 255,
932 0.749020 * 255, 0.736961 * 255,
933 0.874510 * 255, 0.860510 * 255,
934 1.000000 * 255, 0.905882 * 255,
935 };
936 guint8 blue_pts[] = {
937 0.000000 * 255, 0.766094 * 255,
938 0.121569 * 255, 0.762986 * 255,
939 0.247059 * 255, 0.708980 * 255,
940 0.372549 * 255, 0.587155 * 255,
941 0.498039 * 255, 0.507613 * 255,
942 0.623529 * 255, 0.478932 * 255,
943 0.749020 * 255, 0.458030 * 255,
944 0.874510 * 255, 0.434199 * 255,
945 1.000000 * 255, 0.454517 * 255,
946 };
947 layer = gimp_image_get_active_layer (image);
948 gimp_curves_spline (layer, GIMP_HISTOGRAM_RED, 18, red_pts);
949 gimp_curves_spline (layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
950 gimp_curves_spline (layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
951
952 layer = gimp_image_get_active_layer (image);
953 return_vals = gimp_run_procedure ("plug-in-decompose",
954 &nreturn_vals,
955 GIMP_PDB_INT32, 1,
956 GIMP_PDB_IMAGE, image,
957 GIMP_PDB_DRAWABLE, layer,
958 GIMP_PDB_STRING, "RGB",
959 GIMP_PDB_INT32, 1,
960 GIMP_PDB_END);
961 gimp_image_delete (image);
962 gint32 rgb = return_vals[1].data.d_int32;
963 gimp_destroy_params (return_vals, nreturn_vals);
964
965 layers = gimp_image_get_layers (rgb, &num_layers);
966 return_vals = gimp_run_procedure ("plug-in-drawable-compose",
967 &nreturn_vals,
968 GIMP_PDB_INT32, 1,
969 GIMP_PDB_IMAGE, rgb,
970 GIMP_PDB_DRAWABLE, layers[0],
971 GIMP_PDB_DRAWABLE, layers[1],
972 GIMP_PDB_DRAWABLE, layers[2],
973 GIMP_PDB_DRAWABLE, 0,
974 GIMP_PDB_STRING, "LAB",
975 GIMP_PDB_END);
976 gimp_image_delete (rgb);
977 image = return_vals[1].data.d_int32;
978 gimp_destroy_params (return_vals, nreturn_vals);
979
980 layer = gimp_image_get_active_layer (image);
981 gimp_edit_copy (layer);
982 gint32 floating_sel = gimp_edit_paste (effect_layer, FALSE);
983 gimp_floating_sel_anchor (floating_sel);
984
985 gimp_image_delete (image);
986
987 /*GimpPixelRgn src_rgn, dest_rgn;
988 gint x1, y1;
989 gint width, height;
990 gpointer pr;
991
992 GimpDrawable *drawable = gimp_drawable_get (effect_layer);
993 if (!gimp_drawable_mask_intersect (drawable->drawable_id,
994 &x1, &y1, &width, &height))
995 return;
996
997 gimp_pixel_rgn_init (&src_rgn, drawable, x1, y1, width, height, FALSE, FALSE);
998 gimp_pixel_rgn_init (&dest_rgn, drawable, x1, y1, width, height, TRUE, TRUE);
999 for (pr = gimp_pixel_rgns_register (2, &src_rgn, &dest_rgn);
1000 pr != NULL;
1001 pr = gimp_pixel_rgns_process (pr))
1002 {
1003 const guchar *src = src_rgn.data;
1004 guchar *dest = dest_rgn.data;
1005 gint x, y;
1006
1007 for (y = 0; y < src_rgn.h; y++)
1008 {
1009 const guchar *s = src;
1010 guchar *d = dest;
1011
1012 for (x = 0; x < src_rgn.w; x++)
1013 {
1014 gdouble r, g, b;
1015 gdouble v;
1016
1017 r = (gdouble) s[0] / 255;
1018 g = (gdouble) s[1] / 255;
1019 b = (gdouble) s[2] / 255;
1020
1021 v = b - 154.0 / 255;
1022 v = MAX (0, v);
1023 v = r + v - g * 172.0 / 255;
1024 v = MIN (1, MAX (0, v));
1025 v = sin(v * G_PI_2);
1026 d[0] = v * 255;
1027
1028 v = g + (27.0 - r * 27) / 255;
1029 v = MIN (1, v);
1030 d[1] = v * 255;
1031
1032 v = g + (0.4 + b * 0.2 - sin(r));
1033 v = MIN (1, MAX (0, v));
1034 d[2] = v * 255;
1035
1036 s += src_rgn.bpp;
1037 d += dest_rgn.bpp;
1038 }
1039
1040 src += src_rgn.rowstride;
1041 dest += dest_rgn.rowstride;
1042 }
1043 }
1044
1045 gimp_drawable_flush (drawable);
1046 gimp_drawable_merge_shadow (drawable->drawable_id, TRUE);
1047 gimp_drawable_update (drawable->drawable_id, x1, y1, width, height);*/
1048
1049 break;
1050 }
1051 case BEAUTIFY_EFFECT_ICE_SPIRIT:
1052 {
1053 guint8 red_pts[] = {
1054 0.0, 0.007843 * 255, 0.121569 * 255, 0.141176 * 255,
1055 0.247059 * 255, 0.286275 * 255, 0.372549 * 255, 0.423529 * 255,
1056 0.498039 * 255, 0.552941 * 255, 0.623529 * 255, 0.674510 * 255,
1057 0.749020 * 255, 0.792157 * 255, 0.874510 * 255, 0.898039 * 255,
1058 1.000000 * 255, 1.000000 * 255,
1059 };
1060 guint8 green_pts[] = {
1061 0.0, 0.007843 * 255, 0.121569 * 255, 0.184314 * 255,
1062 0.247059 * 255, 0.360784 * 255, 0.372549 * 255, 0.517647 * 255,
1063 0.498039 * 255, 0.654902 * 255, 0.623529 * 255, 0.768627 * 255,
1064 0.749020 * 255, 0.866667 * 255, 0.874510 * 255, 0.945098 * 255,
1065 1.000000 * 255, 1.000000 * 255,
1066 };
1067 guint8 blue_pts[] = {
1068 0.0, 0.007843 * 255, 0.121569 * 255, 0.211765 * 255,
1069 0.247059 * 255, 0.407843 * 255, 0.372549 * 255, 0.576471 * 255,
1070 0.498039 * 255, 0.717647 * 255, 0.623529 * 255, 0.827451 * 255,
1071 0.749020 * 255, 0.913725 * 255, 0.874510 * 255, 0.972549 * 255,
1072 1.000000 * 255, 1.000000 * 255,
1073 };
1074 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1075 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1076 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1077 }
1078 break;
1079 case BEAUTIFY_EFFECT_JAPANESE_STYLE:
1080 {
1081 guint8 red_pts[] = {
1082 0.0, 0.098039 * 255, 0.121569 * 255, 0.188479 * 255,
1083 0.247059 * 255, 0.329761 * 255, 0.372549 * 255, 0.496682 * 255,
1084 0.498039 * 255, 0.657383 * 255, 0.623529 * 255, 0.787002 * 255,
1085 0.749020 * 255, 0.864444 * 255, 0.874510 * 255, 0.900704 * 255,
1086 1.000000 * 255, 0.917552 * 255,
1087 };
1088 guint8 green_pts[] = {
1089 0.0, 0.103431 * 255, 0.121569 * 255, 0.224676 * 255,
1090 0.247059 * 255, 0.394142 * 255, 0.372549 * 255, 0.541888 * 255,
1091 0.498039 * 255, 0.675963 * 255, 0.623529 * 255, 0.785613 * 255,
1092 0.749020 * 255, 0.893224 * 255, 0.874510 * 255, 0.943625 * 255,
1093 1.000000 * 255, 0.972720 * 255,
1094 };
1095 guint8 blue_pts[] = {
1096 0.0, 0.412025 * 255, 0.121569 * 255, 0.469119 * 255,
1097 0.247059 * 255, 0.615777 * 255, 0.372549 * 255, 0.751174 * 255,
1098 0.498039 * 255, 0.862955 * 255, 0.623529 * 255, 0.954468 * 255,
1099 0.749020 * 255, 0.995760 * 255, 0.874510 * 255, 1.000000 * 255,
1100 1.000000 * 255, 1.000000 * 255,
1101 };
1102 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1103 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1104 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1105 }
1106 break;
1107 case BEAUTIFY_EFFECT_NEW_JAPANESE_STYLE:
1108 {
1109 guint8 red_pts[] = {
1110 0.0, 0.042969 * 255,
1111 0.350610 * 255, 0.320312 * 255,
1112 0.621951 * 255, 0.566406 * 255,
1113 0.847561 * 255, 0.632812 * 255,
1114 1.000000 * 255, 0.769531 * 255,
1115 };
1116 guint8 green_pts[] = {
1117 0.0, 0.031250 * 255,
1118 0.125000 * 255, 0.144531 * 255,
1119 0.500000 * 255, 0.523438 * 255,
1120 0.881098 * 255, 0.738281 * 255,
1121 1.000000 * 255, 0.882812 * 255,
1122 };
1123 guint8 blue_pts[] = {
1124 0.0, 0.0,
1125 0.121951 * 255, 0.039062 * 255,
1126 1.000000 * 255, 0.972656 * 255,
1127 };
1128 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 10, red_pts);
1129 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 10, green_pts);
1130 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 6, blue_pts);
1131 }
1132 break;
1133 case BEAUTIFY_EFFECT_MILK:
1134 {
1135 gint32 layer;
1136 GdkPixbuf *pixbuf;
1137
1138 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_milk, FALSE, NULL);
1139 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 20, GIMP_SCREEN_MODE, 0, 0);
1140 gimp_image_add_layer (image_ID, layer, -1);
1141 gimp_layer_scale (layer, width, height, FALSE);
1142 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1143
1144 guint8 red_pts[] = {
1145 0.000000 * 255, 0.309804 * 255,
1146 0.121569 * 255, 0.392252 * 255,
1147 0.247059 * 255, 0.496494 * 255,
1148 0.372549 * 255, 0.597570 * 255,
1149 0.498039 * 255, 0.684511 * 255,
1150 0.623529 * 255, 0.768060 * 255,
1151 0.749020 * 255, 0.843330 * 255,
1152 0.874510 * 255, 0.917231 * 255,
1153 1.000000 * 255, 0.992213 * 255,
1154 };
1155 guint8 green_pts[] = {
1156 0.000000 * 255, 0.299346 * 255,
1157 0.121569 * 255, 0.395641 * 255,
1158 0.247059 * 255, 0.498204 * 255,
1159 0.372549 * 255, 0.597187 * 255,
1160 0.498039 * 255, 0.680991 * 255,
1161 0.623529 * 255, 0.762936 * 255,
1162 0.749020 * 255, 0.841731 * 255,
1163 0.874510 * 255, 0.910444 * 255,
1164 1.000000 * 255, 0.980896 * 255,
1165 };
1166 guint8 blue_pts[] = {
1167 0.000000 * 255, 0.296899 * 255,
1168 0.121569 * 255, 0.400465 * 255,
1169 0.247059 * 255, 0.501991 * 255,
1170 0.372549 * 255, 0.598690 * 255,
1171 0.498039 * 255, 0.685437 * 255,
1172 0.623529 * 255, 0.766052 * 255,
1173 0.749020 * 255, 0.842140 * 255,
1174 0.874510 * 255, 0.913442 * 255,
1175 1.000000 * 255, 0.981385 * 255,
1176 };
1177 layer = gimp_image_get_active_layer (image_ID);
1178 gimp_curves_spline (layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1179 gimp_curves_spline (layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1180 gimp_curves_spline (layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1181 break;
1182 }
1183 case BEAUTIFY_EFFECT_OLD_PHOTOS:
1184 {
1185 guint8 red_pts[] = {
1186 0.000000 * 255, 0.030719 * 255,
1187 0.121569 * 255, 0.094286 * 255,
1188 0.247059 * 255, 0.215434 * 255,
1189 0.372549 * 255, 0.446688 * 255,
1190 0.498039 * 255, 0.744585 * 255,
1191 0.623529 * 255, 0.854446 * 255,
1192 0.749020 * 255, 0.909348 * 255,
1193 0.874510 * 255, 0.948601 * 255,
1194 1.000000 * 255, 0.975656 * 255,
1195 };
1196 guint8 green_pts[] = {
1197 0.000000 * 255, 0.111275 * 255,
1198 0.121569 * 255, 0.172338 * 255,
1199 0.247059 * 255, 0.301636 * 255,
1200 0.372549 * 255, 0.462942 * 255,
1201 0.498039 * 255, 0.615155 * 255,
1202 0.623529 * 255, 0.736568 * 255,
1203 0.749020 * 255, 0.807584 * 255,
1204 0.874510 * 255, 0.874171 * 255,
1205 1.000000 * 255, 0.892938 * 255,
1206 };
1207 guint8 blue_pts[] = {
1208 0.000000 * 255, 0.333451 * 255,
1209 0.121569 * 255, 0.423250 * 255,
1210 0.247059 * 255, 0.517089 * 255,
1211 0.372549 * 255, 0.591683 * 255,
1212 0.498039 * 255, 0.631057 * 255,
1213 0.623529 * 255, 0.658333 * 255,
1214 0.749020 * 255, 0.678149 * 255,
1215 0.874510 * 255, 0.678550 * 255,
1216 1.000000 * 255, 0.677872 * 255,
1217 };
1218 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1219 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1220 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1221
1222 gint32 layer;
1223 GdkPixbuf *pixbuf;
1224
1225 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_old_photos, FALSE, NULL);
1226 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
1227 gimp_image_add_layer (image_ID, layer, -1);
1228 gimp_layer_scale (layer, width, height, FALSE);
1229 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1230
1231 break;
1232 }
1233 case BEAUTIFY_EFFECT_WARM_YELLOW:
1234 {
1235 guint8 red_pts[] = {
1236 0.0, 0.000980 * 255, 0.121569 * 255, 0.065574 * 255,
1237 0.247059 * 255, 0.213677 * 255, 0.372549 * 255, 0.383298 * 255,
1238 0.498039 * 255, 0.556855 * 255, 0.623529 * 255, 0.726149 * 255,
1239 0.749020 * 255, 0.864046 * 255, 0.874510 * 255, 0.958157 * 255,
1240 1.000000 * 255, 0.996641 * 255,
1241 };
1242 guint8 green_pts[] = {
1243 0.0, 0.005882 * 255, 0.121569 * 255, 0.107837 * 255,
1244 0.247059 * 255, 0.276792 * 255, 0.372549 * 255, 0.452811 * 255,
1245 0.498039 * 255, 0.617782 * 255, 0.623529 * 255, 0.763782 * 255,
1246 0.749020 * 255, 0.886822 * 255, 0.874510 * 255, 0.965223 * 255,
1247 1.000000 * 255, 0.996993 * 255,
1248 };
1249 guint8 blue_pts[] = {
1250 0.0, 0.000495 * 255, 0.121569 * 255, 0.035825 * 255,
1251 0.247059 * 255, 0.149480 * 255, 0.372549 * 255, 0.305398 * 255,
1252 0.498039 * 255, 0.491352 * 255, 0.623529 * 255, 0.670305 * 255,
1253 0.749020 * 255, 0.838898 * 255, 0.874510 * 255, 0.951301 * 255,
1254 1.000000 * 255, 0.994118 * 255,
1255 };
1256 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1257 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1258 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1259 }
1260 break;
1261 case BEAUTIFY_EFFECT_BLUES:
1262 {
1263 guint8 red_pts[] = {
1264 0.000000 * 255, 0.003922 * 255,
1265 0.121569 * 255, 0.321569 * 255,
1266 0.247059 * 255, 0.541176 * 255,
1267 0.372549 * 255, 0.713725 * 255,
1268 0.498039 * 255, 0.831373 * 255,
1269 0.623529 * 255, 0.905882 * 255,
1270 0.749020 * 255, 0.952941 * 255,
1271 0.874510 * 255, 0.980392 * 255,
1272 1.000000 * 255, 1.000000 * 255,
1273 };
1274 guint8 green_pts[] = {
1275 0.000000 * 255, 0.003922 * 255,
1276 0.121569 * 255, 0.266667 * 255,
1277 0.247059 * 255, 0.466667 * 255,
1278 0.372549 * 255, 0.627451 * 255,
1279 0.498039 * 255, 0.756863 * 255,
1280 0.623529 * 255, 0.847059 * 255,
1281 0.749020 * 255, 0.917647 * 255,
1282 0.874510 * 255, 0.964706 * 255,
1283 1.000000 * 255, 1.000000 * 255,
1284 };
1285 guint8 blue_pts[] = {
1286 0.000000 * 255, 0.007843 * 255,
1287 0.121569 * 255, 0.286275 * 255,
1288 0.247059 * 255, 0.505882 * 255,
1289 0.372549 * 255, 0.682353 * 255,
1290 0.498039 * 255, 0.811765 * 255,
1291 0.623529 * 255, 0.901961 * 255,
1292 0.749020 * 255, 0.960784 * 255,
1293 0.874510 * 255, 0.988235 * 255,
1294 1.000000 * 255, 0.996078 * 255,
1295 };
1296 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1297 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1298 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1299 break;
1300 }
1301 case BEAUTIFY_EFFECT_COLD_BLUE:
1302 {
1303 guint8 red_pts[] = {
1304 0.000000 * 255, 0.000040 * 255,
1305 0.121569 * 255, 0.008043 * 255,
1306 0.247059 * 255, 0.066237 * 255,
1307 0.372549 * 255, 0.184771 * 255,
1308 0.498039 * 255, 0.359165 * 255,
1309 0.623529 * 255, 0.568527 * 255,
1310 0.749020 * 255, 0.772928 * 255,
1311 0.874510 * 255, 0.927927 * 255,
1312 1.000000 * 255, 0.993301 * 255,
1313 };
1314 guint8 green_pts[] = {
1315 0.000000 * 255, 0.001961 * 255,
1316 0.121569 * 255, 0.069848 * 255,
1317 0.247059 * 255, 0.214185 * 255,
1318 0.372549 * 255, 0.386385 * 255,
1319 0.498039 * 255, 0.560533 * 255,
1320 0.623529 * 255, 0.722231 * 255,
1321 0.749020 * 255, 0.865600 * 255,
1322 0.874510 * 255, 0.958973 * 255,
1323 1.000000 * 255, 0.996979 * 255,
1324 };
1325 guint8 blue_pts[] = {
1326 0.000000 * 255, 0.006332 * 255,
1327 0.121569 * 255, 0.225447 * 255,
1328 0.247059 * 255, 0.425338 * 255,
1329 0.372549 * 255, 0.585919 * 255,
1330 0.498039 * 255, 0.724790 * 255,
1331 0.623529 * 255, 0.833296 * 255,
1332 0.749020 * 255, 0.922240 * 255,
1333 0.874510 * 255, 0.975900 * 255,
1334 1.000000 * 255, 0.995237 * 255,
1335 };
1336 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1337 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1338 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1339 break;
1340 }
1341 case BEAUTIFY_EFFECT_COLD_GREEN:
1342 {
1343 guint8 red_pts[] = {
1344 0.000000 * 255, 0.000058 * 255,
1345 0.121569 * 255, 0.013332 * 255,
1346 0.247059 * 255, 0.092201 * 255,
1347 0.372549 * 255, 0.228389 * 255,
1348 0.498039 * 255, 0.407339 * 255,
1349 0.623529 * 255, 0.610095 * 255,
1350 0.749020 * 255, 0.797573 * 255,
1351 0.874510 * 255, 0.937331 * 255,
1352 1.000000 * 255, 0.993303 * 255,
1353 };
1354 guint8 green_pts[] = {
1355 0.000000 * 255, 0.008824 * 255,
1356 0.121569 * 255, 0.140109 * 255,
1357 0.247059 * 255, 0.324052 * 255,
1358 0.372549 * 255, 0.497982 * 255,
1359 0.498039 * 255, 0.655209 * 255,
1360 0.623529 * 255, 0.789734 * 255,
1361 0.749020 * 255, 0.900202 * 255,
1362 0.874510 * 255, 0.969304 * 255,
1363 1.000000 * 255, 0.997007 * 255,
1364 };
1365 guint8 blue_pts[] = {
1366 0.000000 * 255, 0.000495 * 255,
1367 0.121569 * 255, 0.035825 * 255,
1368 0.247059 * 255, 0.149480 * 255,
1369 0.372549 * 255, 0.305398 * 255,
1370 0.498039 * 255, 0.491352 * 255,
1371 0.623529 * 255, 0.670305 * 255,
1372 0.749020 * 255, 0.838898 * 255,
1373 0.874510 * 255, 0.951301 * 255,
1374 1.000000 * 255, 0.994118 * 255,
1375 };
1376 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1377 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1378 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1379 break;
1380 }
1381 case BEAUTIFY_EFFECT_PURPLE_FANTASY:
1382 {
1383 guint8 red_pts[] = {
1384 0.000000 * 255, 0.003922 * 255,
1385 0.121569 * 255, 0.184314 * 255,
1386 0.247059 * 255, 0.376471 * 255,
1387 0.372549 * 255, 0.533333 * 255,
1388 0.498039 * 255, 0.662745 * 255,
1389 0.623529 * 255, 0.788235 * 255,
1390 0.749020 * 255, 0.878431 * 255,
1391 0.874510 * 255, 0.941176 * 255,
1392 1.000000 * 255, 1.000000 * 255,
1393 };
1394 guint8 green_pts[] = {
1395 0.000000 * 255, 0.003922 * 255,
1396 0.121569 * 255, 0.113725 * 255,
1397 0.247059 * 255, 0.243137 * 255,
1398 0.372549 * 255, 0.407843 * 255,
1399 0.498039 * 255, 0.623529 * 255,
1400 0.623529 * 255, 0.760784 * 255,
1401 0.749020 * 255, 0.847059 * 255,
1402 0.874510 * 255, 0.925490 * 255,
1403 1.000000 * 255, 1.000000 * 255,
1404 };
1405 guint8 blue_pts[] = {
1406 0.000000 * 255, 0.007843 * 255,
1407 0.121569 * 255, 0.309804 * 255,
1408 0.247059 * 255, 0.505882 * 255,
1409 0.372549 * 255, 0.603922 * 255,
1410 0.498039 * 255, 0.709804 * 255,
1411 0.623529 * 255, 0.784314 * 255,
1412 0.749020 * 255, 0.854902 * 255,
1413 0.874510 * 255, 0.929412 * 255,
1414 1.000000 * 255, 1.000000 * 255,
1415 };
1416 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1417 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1418 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1419 break;
1420 }
1421 case BEAUTIFY_EFFECT_COLD_PURPLE:
1422 {
1423 guint8 red_pts[] = {
1424 0.000000 * 255, 0.004412 * 255,
1425 0.121569 * 255, 0.137411 * 255,
1426 0.247059 * 255, 0.308078 * 255,
1427 0.372549 * 255, 0.470911 * 255,
1428 0.498039 * 255, 0.617224 * 255,
1429 0.623529 * 255, 0.745202 * 255,
1430 0.749020 * 255, 0.851077 * 255,
1431 0.874510 * 255, 0.936608 * 255,
1432 1.000000 * 255, 0.991056 * 255,
1433 };
1434 guint8 green_pts[] = {
1435 0.000000 * 255, 0.033824 * 255,
1436 0.121569 * 255, 0.044738 * 255,
1437 0.247059 * 255, 0.161690 * 255,
1438 0.372549 * 255, 0.319742 * 255,
1439 0.498039 * 255, 0.492767 * 255,
1440 0.623529 * 255, 0.662258 * 255,
1441 0.749020 * 255, 0.830133 * 255,
1442 0.874510 * 255, 0.940380 * 255,
1443 1.000000 * 255, 0.996802 * 255,
1444 };
1445 guint8 blue_pts[] = {
1446 0.000000 * 255, 0.140723 * 255,
1447 0.121569 * 255, 0.295178 * 255,
1448 0.247059 * 255, 0.504249 * 255,
1449 0.372549 * 255, 0.648502 * 255,
1450 0.498039 * 255, 0.757808 * 255,
1451 0.623529 * 255, 0.853601 * 255,
1452 0.749020 * 255, 0.928529 * 255,
1453 0.874510 * 255, 0.975401 * 255,
1454 1.000000 * 255, 0.992089 * 255,
1455 };
1456 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1457 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1458 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1459 break;
1460 }
1461 case BEAUTIFY_EFFECT_BRIGHT_RED:
1462 {
1463 gint32 layer;
1464 GdkPixbuf *pixbuf;
1465
1466 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_bright_red, FALSE, NULL);
1467 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
1468 gimp_image_add_layer (image_ID, layer, -1);
1469 gimp_layer_scale (layer, width, height, FALSE);
1470 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1471
1472 guint8 red_pts[] = {
1473 0.000000 * 255, 0.001183 * 255,
1474 0.121569 * 255, 0.131140 * 255,
1475 0.247059 * 255, 0.353431 * 255,
1476 0.372549 * 255, 0.538498 * 255,
1477 0.498039 * 255, 0.690185 * 255,
1478 0.623529 * 255, 0.804008 * 255,
1479 0.749020 * 255, 0.900806 * 255,
1480 0.874510 * 255, 0.988271 * 255,
1481 1.000000 * 255, 1.000000 * 255,
1482 };
1483 guint8 green_pts[] = {
1484 0.000000 * 255, 0.000098 * 255,
1485 0.121569 * 255, 0.097098 * 255,
1486 0.247059 * 255, 0.286323 * 255,
1487 0.372549 * 255, 0.458654 * 255,
1488 0.498039 * 255, 0.611045 * 255,
1489 0.623529 * 255, 0.744221 * 255,
1490 0.749020 * 255, 0.858522 * 255,
1491 0.874510 * 255, 0.968540 * 255,
1492 1.000000 * 255, 1.000000 * 255,
1493 };
1494 guint8 blue_pts[] = {
1495 0.000000 * 255, 0.000369 * 255,
1496 0.121569 * 255, 0.100320 * 255,
1497 0.247059 * 255, 0.285806 * 255,
1498 0.372549 * 255, 0.459693 * 255,
1499 0.498039 * 255, 0.612676 * 255,
1500 0.623529 * 255, 0.745027 * 255,
1501 0.749020 * 255, 0.860280 * 255,
1502 0.874510 * 255, 0.967918 * 255,
1503 1.000000 * 255, 1.000000 * 255,
1504 };
1505 layer = gimp_image_get_active_layer (image_ID);
1506 gimp_curves_spline (layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1507 gimp_curves_spline (layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1508 gimp_curves_spline (layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1509 break;
1510 }
1511 case BEAUTIFY_EFFECT_CHRISTMAS_EVE:
1512 {
1513 gint32 layer = gimp_layer_new (image_ID, "color", width, height, GIMP_RGB_IMAGE, 100, GIMP_OVERLAY_MODE);
1514 gimp_image_add_layer (image_ID, layer, -1);
1515 GimpRGB color =
1516 {
1517 (gdouble) 156.0 / 255.0,
1518 (gdouble) 208.0 / 255.0,
1519 (gdouble) 240.0 / 255.0,
1520 1.0,
1521 };
1522 gimp_context_set_foreground (&color);
1523 gimp_edit_fill (layer, GIMP_FOREGROUND_FILL);
1524 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1525
1526 GdkPixbuf *pixbuf = gdk_pixbuf_new_from_inline (-1, texture_christmas_eve, FALSE, NULL);
1527 gint32 texture_layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
1528 gimp_image_add_layer (image_ID, texture_layer, -1);
1529 gimp_layer_scale (texture_layer, width, height, FALSE);
1530 gimp_image_merge_down (image_ID, texture_layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1531 break;
1532 }
1533 case BEAUTIFY_EFFECT_NIGHT_VIEW:
1534 {
1535 guint8 red_pts[] = {
1536 0.000000 * 255, 0.003922 * 255,
1537 0.121569 * 255, 0.181978 * 255,
1538 0.247059 * 255, 0.348183 * 255,
1539 0.372549 * 255, 0.498116 * 255,
1540 0.498039 * 255, 0.630567 * 255,
1541 0.623529 * 255, 0.746150 * 255,
1542 0.749020 * 255, 0.848447 * 255,
1543 0.874510 * 255, 0.939235 * 255,
1544 1.000000 * 255, 1.000000 * 255,
1545 };
1546 guint8 green_pts[] = {
1547 0.000000 * 255, 0.002451 * 255,
1548 0.121569 * 255, 0.182281 * 255,
1549 0.247059 * 255, 0.347678 * 255,
1550 0.372549 * 255, 0.495968 * 255,
1551 0.498039 * 255, 0.629733 * 255,
1552 0.623529 * 255, 0.747508 * 255,
1553 0.749020 * 255, 0.852278 * 255,
1554 0.874510 * 255, 0.937573 * 255,
1555 1.000000 * 255, 1.000000 * 255,
1556 };
1557 guint8 blue_pts[] = {
1558 0.000000 * 255, 0.005240 * 255,
1559 0.121569 * 255, 0.182529 * 255,
1560 0.247059 * 255, 0.347919 * 255,
1561 0.372549 * 255, 0.496757 * 255,
1562 0.498039 * 255, 0.638620 * 255,
1563 0.623529 * 255, 0.753394 * 255,
1564 0.749020 * 255, 0.852676 * 255,
1565 0.874510 * 255, 0.948770 * 255,
1566 1.000000 * 255, 1.000000 * 255,
1567 };
1568 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1569 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1570 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1571
1572 gint32 layer;
1573 GdkPixbuf *pixbuf;
1574
1575 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_night_view, FALSE, NULL);
1576 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
1577 gimp_image_add_layer (image_ID, layer, -1);
1578 gimp_layer_scale (layer, width, height, FALSE);
1579 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1580
1581 break;
1582 }
1583 case BEAUTIFY_EFFECT_ASTRAL:
1584 {
1585 GdkPixbuf *pixbuf = gdk_pixbuf_new_from_inline (-1, texture_astral, FALSE, NULL);
1586 gint32 texture_layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SOFTLIGHT_MODE, 0, 0);
1587 gimp_image_add_layer (image_ID, texture_layer, -1);
1588 gimp_layer_scale (texture_layer, width, height, FALSE);
1589 gimp_image_merge_down (image_ID, texture_layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1590 }
1591 break;
1592 case BEAUTIFY_EFFECT_COLORFUL_GLOW:
1593 {
1594 guint8 red_pts[] = {
1595 0.000000 * 255, 0.151307 * 255,
1596 0.121569 * 255, 0.322524 * 255,
1597 0.247059 * 255, 0.448847 * 255,
1598 0.372549 * 255, 0.575643 * 255,
1599 0.498039 * 255, 0.686567 * 255,
1600 0.623529 * 255, 0.782251 * 255,
1601 0.749020 * 255, 0.867647 * 255,
1602 0.874510 * 255, 0.945974 * 255,
1603 1.000000 * 255, 1.000000 * 255,
1604 };
1605 guint8 green_pts[] = {
1606 0.000000 * 255, 0.141176 * 255,
1607 0.121569 * 255, 0.293870 * 255,
1608 0.247059 * 255, 0.430463 * 255,
1609 0.372549 * 255, 0.557343 * 255,
1610 0.498039 * 255, 0.673448 * 255,
1611 0.623529 * 255, 0.772324 * 255,
1612 0.749020 * 255, 0.849510 * 255,
1613 0.874510 * 255, 0.933274 * 255,
1614 1.000000 * 255, 0.991523 * 255,
1615 };
1616 guint8 blue_pts[] = {
1617 0.000000 * 255, 0.141529 * 255,
1618 0.121569 * 255, 0.292286 * 255,
1619 0.247059 * 255, 0.434369 * 255,
1620 0.372549 * 255, 0.557046 * 255,
1621 0.498039 * 255, 0.669468 * 255,
1622 0.623529 * 255, 0.772360 * 255,
1623 0.749020 * 255, 0.858682 * 255,
1624 0.874510 * 255, 0.932288 * 255,
1625 1.000000 * 255, 0.987544 * 255,
1626 };
1627 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1628 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1629 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1630
1631 gint32 layer;
1632 GdkPixbuf *pixbuf;
1633
1634 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_colorful_glow, FALSE, NULL);
1635 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
1636 gimp_image_add_layer (image_ID, layer, -1);
1637 gimp_layer_scale (layer, width, height, FALSE);
1638 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1639
1640 break;
1641 }
1642 case BEAUTIFY_EFFECT_PICK_LIGHT:
1643 {
1644 gint32 layer;
1645 GdkPixbuf *pixbuf;
1646
1647 layer = gimp_layer_new (image_ID, "color", width, height, GIMP_RGB_IMAGE, 100, GIMP_SCREEN_MODE);
1648 gimp_image_add_layer (image_ID, layer, -1);
1649 GimpRGB color =
1650 {
1651 (gdouble) 62.0 / 255.0,
1652 (gdouble) 62.0 / 255.0,
1653 (gdouble) 62.0 / 255.0,
1654 1.0,
1655 };
1656 gimp_context_set_foreground (&color);
1657 gimp_edit_fill (layer, GIMP_FOREGROUND_FILL);
1658 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1659
1660 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_pick_light_1, FALSE, NULL);
1661 layer = gimp_layer_new_from_pixbuf (image_ID, "texture 1", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
1662 gimp_image_add_layer (image_ID, layer, -1);
1663 gimp_layer_scale (layer, width, height, FALSE);
1664 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1665
1666 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_pick_light_2, FALSE, NULL);
1667 layer = gimp_layer_new_from_pixbuf (image_ID, "texture 2", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
1668 gimp_image_add_layer (image_ID, layer, -1);
1669 gimp_layer_scale (layer, width, height, FALSE);
1670 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1671 break;
1672 }
1673 case BEAUTIFY_EFFECT_GLASS_DROPS:
1674 {
1675 gint32 layer;
1676 GdkPixbuf *pixbuf;
1677
1678 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_glass_drops, FALSE, NULL);
1679 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
1680 gimp_image_add_layer (image_ID, layer, -1);
1681 gimp_layer_scale (layer, width, height, FALSE);
1682 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1683
1684 break;
1685 }
1686 case BEAUTIFY_EFFECT_SKETCH:
1687 {
1688 gint32 layer;
1689
1690 black_and_white (image_ID, effect_layer);
1691
1692 layer = gimp_layer_copy (effect_layer);
1693 gimp_image_add_layer (image_ID, layer, -1);
1694 gimp_layer_set_mode (layer, GIMP_DODGE_MODE);
1695 gimp_invert (layer);
1696
1697 GimpParam *return_vals;
1698 gint nreturn_vals;
1699 return_vals = gimp_run_procedure ("plug-in-gauss",
1700 &nreturn_vals,
1701 GIMP_PDB_INT32, GIMP_RUN_NONINTERACTIVE,
1702 GIMP_PDB_IMAGE, image_ID,
1703 GIMP_PDB_DRAWABLE, layer,
1704 GIMP_PDB_FLOAT, 20.0,
1705 GIMP_PDB_FLOAT, 20.0,
1706 GIMP_PDB_INT32, 1,
1707 GIMP_PDB_END);
1708 gimp_destroy_params (return_vals, nreturn_vals);
1709
1710 gimp_levels (layer, GIMP_HISTOGRAM_VALUE, 0, 255, 1, 0, 251);
1711
1712 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1713
1714 break;
1715 }
1716 case BEAUTIFY_EFFECT_LIFE_SKETCH:
1717 {
1718 gimp_desaturate_full (effect_layer, GIMP_DESATURATE_LUMINOSITY);
1719
1720 gint32 layer;
1721 GdkPixbuf *pixbuf;
1722
1723 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_life_sketch_1, FALSE, NULL);
1724 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 60, GIMP_OVERLAY_MODE, 0, 0);
1725 gimp_image_add_layer (image_ID, layer, -1);
1726 gimp_layer_scale (layer, width, height, FALSE);
1727 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1728
1729 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_life_sketch_2, FALSE, NULL);
1730 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
1731 gimp_image_add_layer (image_ID, layer, -1);
1732 gimp_layer_scale (layer, width, height, FALSE);
1733 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1734
1735 guint8 red_pts[] = {
1736 0.000000 * 255, 0.074510 * 255,
1737 0.121569 * 255, 0.105882 * 255,
1738 0.247059 * 255, 0.203391 * 255,
1739 0.372549 * 255, 0.325314 * 255,
1740 0.498039 * 255, 0.451172 * 255,
1741 0.623529 * 255, 0.582024 * 255,
1742 0.749020 * 255, 0.717003 * 255,
1743 0.874510 * 255, 0.855324 * 255,
1744 1.000000 * 255, 0.995987 * 255,
1745 };
1746 guint8 green_pts[] = {
1747 0.000000 * 255, 0.070588 * 255,
1748 0.121569 * 255, 0.102941 * 255,
1749 0.247059 * 255, 0.205857 * 255,
1750 0.372549 * 255, 0.330846 * 255,
1751 0.498039 * 255, 0.457491 * 255,
1752 0.623529 * 255, 0.591683 * 255,
1753 0.749020 * 255, 0.724243 * 255,
1754 0.874510 * 255, 0.859604 * 255,
1755 1.000000 * 255, 0.996069 * 255,
1756 };
1757 guint8 blue_pts[] = {
1758 0.000000 * 255, 0.062745 * 255,
1759 0.121569 * 255, 0.110294 * 255,
1760 0.247059 * 255, 0.223629 * 255,
1761 0.372549 * 255, 0.355159 * 255,
1762 0.498039 * 255, 0.490793 * 255,
1763 0.623529 * 255, 0.626121 * 255,
1764 0.749020 * 255, 0.753347 * 255,
1765 0.874510 * 255, 0.877884 * 255,
1766 1.000000 * 255, 0.996034 * 255,
1767 };
1768 layer = gimp_image_get_active_layer (image_ID);
1769 gimp_curves_spline (layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1770 gimp_curves_spline (layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1771 gimp_curves_spline (layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1772
1773 break;
1774 }
1775 case BEAUTIFY_EFFECT_CLASSIC_SKETCH:
1776 {
1777 gimp_desaturate_full (effect_layer, GIMP_DESATURATE_LUMINOSITY);
1778
1779 gint32 layer;
1780 GdkPixbuf *pixbuf;
1781
1782 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_classic_sketch_1, FALSE, NULL);
1783 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
1784 gimp_image_add_layer (image_ID, layer, -1);
1785 gimp_layer_scale (layer, width, height, FALSE);
1786 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1787
1788 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_classic_sketch_2, FALSE, NULL);
1789 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
1790 gimp_image_add_layer (image_ID, layer, -1);
1791 gimp_layer_scale (layer, width, height, FALSE);
1792 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1793
1794 guint8 red_pts[] = {
1795 0.000000 * 255, 0.035294 * 255,
1796 0.121569 * 255, 0.035294 * 255,
1797 0.247059 * 255, 0.100000 * 255,
1798 0.372549 * 255, 0.219095 * 255,
1799 0.498039 * 255, 0.373810 * 255,
1800 0.623529 * 255, 0.541166 * 255,
1801 0.749020 * 255, 0.697497 * 255,
1802 0.874510 * 255, 0.850874 * 255,
1803 1.000000 * 255, 0.996065 * 255,
1804 };
1805 guint8 green_pts[] = {
1806 0.000000 * 255, 0.015686 * 255,
1807 0.121569 * 255, 0.015686 * 255,
1808 0.247059 * 255, 0.085098 * 255,
1809 0.372549 * 255, 0.206671 * 255,
1810 0.498039 * 255, 0.357512 * 255,
1811 0.623529 * 255, 0.526512 * 255,
1812 0.749020 * 255, 0.687917 * 255,
1813 0.874510 * 255, 0.845067 * 255,
1814 1.000000 * 255, 0.996069 * 255,
1815 };
1816 guint8 blue_pts[] = {
1817 0.000000 * 255, 0.001961 * 255,
1818 0.121569 * 255, 0.001961 * 255,
1819 0.247059 * 255, 0.054390 * 255,
1820 0.372549 * 255, 0.180870 * 255,
1821 0.498039 * 255, 0.328319 * 255,
1822 0.623529 * 255, 0.497803 * 255,
1823 0.749020 * 255, 0.665890 * 255,
1824 0.874510 * 255, 0.835076 * 255,
1825 1.000000 * 255, 0.996066 * 255,
1826 };
1827 layer = gimp_image_get_active_layer (image_ID);
1828 gimp_curves_spline (layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1829 gimp_curves_spline (layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1830 gimp_curves_spline (layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1831
1832 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_classic_sketch_3, FALSE, NULL);
1833 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_MULTIPLY_MODE, 0, 0);
1834 gimp_image_add_layer (image_ID, layer, -1);
1835 gimp_layer_scale (layer, width, height, FALSE);
1836 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1837
1838 break;
1839 }
1840 case BEAUTIFY_EFFECT_COLOR_PENCIL:
1841 {
1842 gint32 layer;
1843 GdkPixbuf *pixbuf;
1844
1845 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_color_pencil, FALSE, NULL);
1846
1847 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
1848 gimp_image_add_layer (image_ID, layer, -1);
1849 gimp_layer_scale (layer, width, height, FALSE);
1850 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1851
1852 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_OVERLAY_MODE, 0, 0);
1853 gimp_image_add_layer (image_ID, layer, -1);
1854 gimp_layer_scale (layer, width, height, FALSE);
1855 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_IMAGE);
1856
1857 break;
1858 }
1859 case BEAUTIFY_EFFECT_TV_LINES:
1860 {
1861 gint32 layer;
1862
1863 layer = gimp_layer_new (image_ID, "texture", width, height, GIMP_RGBA_IMAGE, 60, GIMP_MULTIPLY_MODE);
1864 gimp_image_add_layer (image_ID, layer, -1);
1865 gimp_drawable_fill (layer, GIMP_TRANSPARENT_FILL);
1866 gimp_context_set_pattern ("Stripes Fine");
1867 gimp_edit_fill (layer, GIMP_PATTERN_FILL);
1868 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_IMAGE);
1869
1870 break;
1871 }
1872 case BEAUTIFY_EFFECT_RELIEF:
1873 {
1874 gint32 layer;
1875
1876 layer = gimp_layer_copy (effect_layer);
1877 gimp_image_add_layer (image_ID, layer, -1);
1878
1879 gimp_layer_set_offsets (effect_layer, 1, -1);
1880 gimp_layer_set_offsets (layer, -1, 1);
1881
1882 gimp_layer_set_mode (layer, GIMP_GRAIN_EXTRACT_MODE);
1883 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_IMAGE);
1884
1885 //gimp_image_select_rectangle (image_ID, GIMP_CHANNEL_OP_REPLACE, 1, 1, width - 2, height - 2);
1886 gimp_rect_select (image_ID, 1, 1, width - 2, height - 2, GIMP_CHANNEL_OP_REPLACE, FALSE, 0);
1887 gimp_selection_invert (image_ID);
1888
1889 layer = gimp_image_get_active_layer (image_ID);
1890 GimpRGB color = { 0.5, 0.5, 0.5, 1.0 };
1891 gimp_context_set_foreground (&color);
1892 gimp_edit_fill (layer, GIMP_FOREGROUND_FILL);
1893
1894 gimp_selection_none (image_ID);
1895
1896 break;
1897 }
1898 case BEAUTIFY_EFFECT_BEAM_GRADIENT:
1899 {
1900 guint8 red_pts[] = {
1901 0.000000 * 255, 0.003922 * 255,
1902 0.121569 * 255, 0.041976 * 255,
1903 0.247059 * 255, 0.156522 * 255,
1904 0.372549 * 255, 0.317488 * 255,
1905 0.498039 * 255, 0.499707 * 255,
1906 0.623529 * 255, 0.684590 * 255,
1907 0.749020 * 255, 0.845234 * 255,
1908 0.874510 * 255, 0.957891 * 255,
1909 1.000000 * 255, 1.000000 * 255,
1910 };
1911 guint8 green_pts[] = {
1912 0.000000 * 255, 0.005882 * 255,
1913 0.121569 * 255, 0.041838 * 255,
1914 0.247059 * 255, 0.156351 * 255,
1915 0.372549 * 255, 0.317066 * 255,
1916 0.498039 * 255, 0.499800 * 255,
1917 0.623529 * 255, 0.684389 * 255,
1918 0.749020 * 255, 0.843945 * 255,
1919 0.874510 * 255, 0.958236 * 255,
1920 1.000000 * 255, 1.000000 * 255,
1921 };
1922 guint8 blue_pts[] = {
1923 0.000000 * 255, 0.005064 * 255,
1924 0.121569 * 255, 0.043674 * 255,
1925 0.247059 * 255, 0.157355 * 255,
1926 0.372549 * 255, 0.318250 * 255,
1927 0.498039 * 255, 0.499405 * 255,
1928 0.623529 * 255, 0.683918 * 255,
1929 0.749020 * 255, 0.844833 * 255,
1930 0.874510 * 255, 0.957540 * 255,
1931 1.000000 * 255, 1.000000 * 255,
1932 };
1933 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1934 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1935 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1936
1937 gint32 layer;
1938 GdkPixbuf *pixbuf;
1939
1940 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_beam_gradient, FALSE, NULL);
1941 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
1942 gimp_image_add_layer (image_ID, layer, -1);
1943 gimp_layer_scale (layer, width, height, FALSE);
1944 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1945
1946 break;
1947 }
1948 case BEAUTIFY_EFFECT_SUNSET_GRADIENT:
1949 {
1950 gint32 layer;
1951 GdkPixbuf *pixbuf;
1952
1953 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_sunset_gradient, FALSE, NULL);
1954 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
1955 gimp_image_add_layer (image_ID, layer, -1);
1956 gimp_layer_scale (layer, width, height, FALSE);
1957 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
1958
1959 break;
1960 }
1961 case BEAUTIFY_EFFECT_RAINBOW_GRADIENT:
1962 {
1963 guint8 red_pts[] = {
1964 0.000000 * 255, 0.024183 * 255,
1965 0.121569 * 255, 0.048308 * 255,
1966 0.247059 * 255, 0.154831 * 255,
1967 0.372549 * 255, 0.314038 * 255,
1968 0.498039 * 255, 0.497584 * 255,
1969 0.623529 * 255, 0.683345 * 255,
1970 0.749020 * 255, 0.841507 * 255,
1971 0.874510 * 255, 0.957243 * 255,
1972 1.000000 * 255, 0.997723 * 255,
1973 };
1974 guint8 green_pts[] = {
1975 0.000000 * 255, 0.010784 * 255,
1976 0.121569 * 255, 0.042665 * 255,
1977 0.247059 * 255, 0.155542 * 255,
1978 0.372549 * 255, 0.319728 * 255,
1979 0.498039 * 255, 0.499008 * 255,
1980 0.623529 * 255, 0.686299 * 255,
1981 0.749020 * 255, 0.843454 * 255,
1982 0.874510 * 255, 0.957699 * 255,
1983 1.000000 * 255, 0.999459 * 255,
1984 };
1985 guint8 blue_pts[] = {
1986 0.000000 * 255, 0.005853 * 255,
1987 0.121569 * 255, 0.043693 * 255,
1988 0.247059 * 255, 0.154759 * 255,
1989 0.372549 * 255, 0.318024 * 255,
1990 0.498039 * 255, 0.499930 * 255,
1991 0.623529 * 255, 0.681052 * 255,
1992 0.749020 * 255, 0.850097 * 255,
1993 0.874510 * 255, 0.959228 * 255,
1994 1.000000 * 255, 0.994901 * 255,
1995 };
1996 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_RED, 18, red_pts);
1997 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
1998 gimp_curves_spline (effect_layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
1999
2000 gint32 layer;
2001 GdkPixbuf *pixbuf;
2002
2003 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_rainbow_gradient, FALSE, NULL);
2004 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
2005 gimp_image_add_layer (image_ID, layer, -1);
2006 gimp_layer_scale (layer, width, height, FALSE);
2007 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
2008
2009 break;
2010 }
2011 case BEAUTIFY_EFFECT_PINK_PURPLE_GRADIENG:
2012 {
2013 gint32 layer;
2014 GdkPixbuf *pixbuf;
2015
2016 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_pink_purple_gradient, FALSE, NULL);
2017 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
2018 gimp_image_add_layer (image_ID, layer, -1);
2019 gimp_layer_scale (layer, width, height, FALSE);
2020 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
2021
2022 break;
2023 }
2024 case BEAUTIFY_EFFECT_PINK_BLUE_GRADIENT:
2025 {
2026 gint32 layer;
2027 GdkPixbuf *pixbuf;
2028
2029 pixbuf = gdk_pixbuf_new_from_inline (-1, texture_pink_blue_gradient, FALSE, NULL);
2030 layer = gimp_layer_new_from_pixbuf (image_ID, "texture", pixbuf, 100, GIMP_SCREEN_MODE, 0, 0);
2031 gimp_image_add_layer (image_ID, layer, -1);
2032 gimp_layer_scale (layer, width, height, FALSE);
2033 gimp_image_merge_down (image_ID, layer, GIMP_CLIP_TO_BOTTOM_LAYER);
2034
2035 guint8 red_pts[] = {
2036 0.000000 * 255, 0.000392 * 255,
2037 0.121569 * 255, 0.038765 * 255,
2038 0.247059 * 255, 0.163053 * 255,
2039 0.372549 * 255, 0.298924 * 255,
2040 0.498039 * 255, 0.443050 * 255,
2041 0.623529 * 255, 0.612325 * 255,
2042 0.749020 * 255, 0.790453 * 255,
2043 0.874510 * 255, 0.939548 * 255,
2044 1.000000 * 255, 1.000000 * 255,
2045 };
2046 guint8 green_pts[] = {
2047 0.000000 * 255, 0.001569 * 255,
2048 0.121569 * 255, 0.044421 * 255,
2049 0.247059 * 255, 0.161120 * 255,
2050 0.372549 * 255, 0.300417 * 255,
2051 0.498039 * 255, 0.478406 * 255,
2052 0.623529 * 255, 0.664685 * 255,
2053 0.749020 * 255, 0.828593 * 255,
2054 0.874510 * 255, 0.954235 * 255,
2055 1.000000 * 255, 1.000000 * 255,
2056 };
2057 guint8 blue_pts[] = {
2058 0.000000 * 255, 0.260784 * 255,
2059 0.121569 * 255, 0.260784 * 255,
2060 0.247059 * 255, 0.260784 * 255,
2061 0.372549 * 255, 0.327074 * 255,
2062 0.498039 * 255, 0.447592 * 255,
2063 0.623529 * 255, 0.589356 * 255,
2064 0.749020 * 255, 0.776297 * 255,
2065 0.874510 * 255, 0.939428 * 255,
2066 1.000000 * 255, 1.000000 * 255,
2067 };
2068 layer = gimp_image_get_active_layer (image_ID);
2069 gimp_curves_spline (layer, GIMP_HISTOGRAM_RED, 18, red_pts);
2070 gimp_curves_spline (layer, GIMP_HISTOGRAM_GREEN, 18, green_pts);
2071 gimp_curves_spline (layer, GIMP_HISTOGRAM_BLUE, 18, blue_pts);
2072 break;
2073 }
2074 }
2075
2076 gimp_context_pop ();
2077 }
2078
2079