Welcome, Guest |
You have to register before you can post on our site.
|
Forum Statistics |
» Members: 5,669
» Latest member: DavidRor
» Forum threads: 7,206
» Forum posts: 39,327
Full Statistics
|
|
|
Script fu automation |
Posted by: Morek - 01-18-2022, 09:27 PM - Forum: Scripting questions
- No Replies
|
 |
Hello all, I am newbie in gimp and want to create simple script.
My goal:
1. Delete some parts of picture for example (X:100, Y:200, W:150, H:250)
2. move part of picture from X:10, Y:20, W:15, H:25 to X:100, Y:200
and I would like to repeat point 2 few times.
for example I would like to have something like that: SELECT(X,Y,W,H) -> DELETE(selection) -> SELECT(X,Y,W,H) -> MOVETO(X,Y,W,H)
I have started with console script: (gimp-image-select-rectangle image 0 0 0 64 64)
but it throws Error: eval: unbound variable: image
I think the console script would be enough for me, I don't need script to be saved in scripts folder.
|
|
|
Output positioning options used by Gimp when printing to CUPS |
Posted by: raccarva - 01-18-2022, 12:38 PM - Forum: General questions
- Replies (3)
|
 |
I am trying to figure out what CUPS (or would it be lpd/lpr?) printing options Gimp uses to set the output position when you print an image.
When you set the Left/Top fields in the "Position" print dialog tab, I guess Gimp uses some job printing options through CUPS/lpd/lpr to adjust the output image on the media.
I need this information so that I can try to print images (outside Gimp) in the same position regardless of the printer being used.
Does anyone have this information?
Thanks.
|
|
|
Single Dose - Glossy stroke 3d.py |
Posted by: Krikor - 01-18-2022, 10:54 AM - Forum: Extending the GIMP
- Replies (22)
|
 |
Hello everyone!
Plugin: glossy_stroke_3d.py; (I don't remember where I got it)
Author Eric Leroy;
Date: 2010;
Problem:
The plugin only works once for every Gimp restart.
After a single use, the plugin stops responding. Requiring the Gimp to be restarted so that in just one more instance the plugin will run again.
The plugin can be found in <Image>/Filters/Light and Shadow
Would it be possible to detect the cause of this problem and somehow fix it?
PHP Code:
#! /usr/bin/env python
############################################################################### # The GIMP -- GNU image manipulation program # Copyright (c) 1995-2010 # Spencer Kimball, Peter Mattis and the GIMP Development Team # # glossystroke3d # Version 1.2.0 (For the GIMP 2.6), 15 Dec 2010 # Stroke the current selection, create a 3D effect and a dropped shadow # Adapted from the tutorial: "iText tutorial" of Craig Marshall & Phil Harper. # Published in http://gug.criticalhit.dk/tutorials/itext2/ # # Copyright (c) 2010 Eric Leroy (eral) kelk1@hotmail.com # ----------------------------------------------------------------------------- # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ###############################################################################
from gimpfu import *
def python_glossy_stroke_3d( img, layer, fg_color, brush, stroke, rounding, ls_color, ls_z, glow, bright, shine, polish, sh_color, ds_x, ds_y, ds_blur, ds_opac) :
pdb.gimp_undo_push_group_start(img)
# save some values cur_color = pdb.gimp_context_get_foreground() cur_brush = pdb.gimp_context_get_brush() img_w = pdb.gimp_image_width(img) img_h = pdb.gimp_image_height(img) cur_sel = pdb.gimp_selection_save(img)
# stroke the selection stroke_layer = pdb.gimp_layer_new( img, # IMAGE img_w, # WIDTH img_h, # HEIGHT RGBA_IMAGE, # RGBA TYPE "stroke_layer", # NAME 100, # OPACITY NORMAL_MODE # NORMAL MODE ) pdb.gimp_image_add_layer(img, stroke_layer, -1) pdb.gimp_image_set_active_layer(img, stroke_layer) pdb.gimp_context_set_foreground(fg_color) pdb.gimp_context_set_brush(brush) if stroke == 0: pdb.gimp_edit_stroke(stroke_layer) else: pdb.gimp_edit_bucket_fill( stroke_layer, # DRAWABLE FG_BUCKET_FILL, # FILL W/ FG NORMAL_MODE, # NORMAL PAINT MODE 100.0, # 100% opacity 0, # TRESHOLD False, # DO NOT USE THE COMPOSITE IMG 0, # NOT USED 0 # NOT USED )
# save selected stroke to channel pdb.gimp_selection_layer_alpha(stroke_layer) sel_chan = pdb.gimp_selection_save(img)
# create volume pdb.gimp_selection_shrink(img, rounding) volume_layer = pdb.gimp_layer_new( img, # IMAGE img_w, # WIDTH img_h, # HEIGHT RGBA_IMAGE, # RGBA TYPE "volume_layer", # NAME 100, # OPACITY NORMAL_MODE # NORMAL MODE ) pdb.gimp_image_add_layer(img, volume_layer, -1) pdb.gimp_image_set_active_layer(img, volume_layer) pdb.gimp_context_set_foreground((255, 255, 255)) pdb.gimp_edit_bucket_fill( volume_layer, # DRAWABLE FG_BUCKET_FILL, # FILL W/ FG NORMAL_MODE, # NORMAL PAINT MODE 100.0, # 100% opacity 0, # TRESHOLD False, # DO NOT USE THE COMPOSITE IMG 0, # NOT USED 0 # NOT USED ) pdb.gimp_selection_none(img) pdb.plug_in_gauss( img, # IMAGE volume_layer, # DRAWABLE rounding * 2.0, # HORIZONTAL BLURRING RADIUS rounding * 2.0, # VERTICAL BLURRING RADIUS 0 # IIR (0) OR RLE (1) ) pdb.gimp_layer_set_mode(volume_layer, OVERLAY_MODE) volume_layer_copy = pdb.gimp_layer_copy(volume_layer, True) pdb.gimp_image_add_layer(img, volume_layer_copy, -1)
# create lighting effect pdb.gimp_image_set_active_channel(img, sel_chan) pdb.plug_in_gauss(img, sel_chan, rounding * 2.0, rounding * 2.0, 0) glossy_layer = pdb.gimp_layer_new( img, # IMAGE img_w, # WIDTH img_h, # HEIGHT RGBA_IMAGE, # RGBA TYPE "glossy_layer", # NAME 100, # OPACITY SCREEN_MODE # SCREEN ) pdb.gimp_image_add_layer(img, glossy_layer, -1) pdb.gimp_image_set_active_layer(img, glossy_layer) pdb.gimp_selection_load(sel_chan) pdb.gimp_context_set_foreground((0, 0, 0)) pdb.gimp_edit_bucket_fill( glossy_layer, # DRAWABLE FG_BUCKET_FILL, # FILL W/ FG NORMAL_MODE, # NORMAL PAINT MODE 100.0, # 100% opacity 0, # TRESHOLD False, # DO NOT USE THE COMPOSITE IMG 0, # NOT USED 0 # NOT USED ) pdb.gimp_selection_none(img) if ds_x > ds_y: if ds_y == 0: ls_x = -ds_x ls_y = 0 else: ls_x = -ds_x / abs(ds_y) ls_y = -ds_y / abs(ds_y) else: if ds_x == 0: ls_x = 0 ls_y = -ds_y else: ls_x = -ds_x / abs(ds_x) ls_y = -ds_y / abs(ds_x)
pdb.plug_in_lighting( img, # IMAGE glossy_layer, # DRAWABLE sel_chan, # BUMP MAP None, # ENVIRONMENT MAP True, # ENABLE BUMPMAPPING False, # DISABLE ENVMAPPING 0, # LINEAR BUMPMAP 1, # DIRECTIONAL LIGHT SOURCE ls_color, # WHITE LIGHT SOURCE ls_x, # LIGHT POSITION X ls_y, # LIGHT POSITION Y ls_z, # LIGHT POSITION Z ls_x, # LIGHT DIRECTION X ls_y, # LIGHT DIRECTION Y ls_z, # LIGHT DIRECTION Z glow, # AMBIANT INTENSITY (GLOWING) bright, # DIFFUSE INTENSITY (BRIGHT) bright, # DIFFUSE REFLECTIVITY shine, # SPECULAR REFLECTIVITY (SHINY) polish, # HIGHLIGHT (POLISHED) True, # ANTIALIASING False, # SAME IMAGE False # TRANSPARENT BACKGROUND )
# drop shadow pdb.gimp_image_set_active_layer(img, stroke_layer) act_lay = pdb.gimp_image_get_active_layer(img) pdb.gimp_selection_layer_alpha(act_lay) pdb.script_fu_drop_shadow( img, # IMAGE act_lay, # MASK LAYER ds_x, # X OFFSET ds_y, # Y OFFSET ds_blur, # BLUR RADIUS sh_color, # SHADOW COLOR ds_opac, # SHADOW LAYER OPACITY True # ALLOW RESIZING )
# restore initial state pdb.gimp_image_resize( img, # IMAGE img_w, # WIDTH img_h, # HEIGHT 0, # X OFFSET 0 # Y OFFSET ) pdb.gimp_selection_load(cur_sel) pdb.gimp_image_remove_channel(img, cur_sel) pdb.gimp_image_remove_channel(img, sel_chan) pdb.gimp_image_set_active_layer(img, layer) pdb.gimp_context_set_foreground(cur_color) pdb.gimp_context_set_brush(cur_brush)
pdb.gimp_undo_push_group_end(img) return
register( "python_fu_glossy_stroke_3d", "Stroke with a glossy 3-D effect and a dropped shadow", "Stroke with a glossy 3-D effect and a dropped shadow", "Eric Leroy", "Eric Leroy", "2010", "GlossyStroke 3D", "*", [ (PF_IMAGE, "image", "Input image", None), (PF_DRAWABLE, "drawable", "Input layer", None), (PF_COLOR, "fg_color", "Color:", (0, 157, 255)), (PF_BRUSH, "brush", "Stroking brush:", None), (PF_OPTION, "stroke", "Selection:", 0, ["Stroke", "Fill"]), (PF_SPINNER, "rounding", "3D amount:", 2, (0, 50, 1)), (PF_COLOR, "ls_color", "Light color:", (255, 255, 255)), (PF_SPINNER, "ls_z", "Light height:", 0.5, (0.0, 20.0, 0.1)), (PF_SPINNER, "glow", "Glowing:", 5.0, (0.0, 100000, 0.01)), (PF_SPINNER, "bright", "Brightness:", 1.00, (0.0, 100000, 0.01)), (PF_SPINNER, "shine", "Shiny:", 5.0, (0.0, 100000, 0.01)), (PF_SPINNER, "polish", "Polish:", 30.0, (0.0, 100000, 0.01)), (PF_COLOR, "sh_color", "Shadow color:", (0, 0, 0)), (PF_SPINNER, "ds_x", "Shadow offset X:", 10, (-50, 50, 1)), (PF_SPINNER, "ds_y", "Shadow offset Y:", 10, (-50, 50, 1)), (PF_SPINNER, "ds_blur", "Shadow blur radius:", 15, (0, 50, 1)), (PF_SLIDER, "ds_opac", "Shadow opacity:", 80, (0, 100, 1)) ], [], python_glossy_stroke_3d, menu="<Image>/Filters/Light and Shadow")
main()
Thanks for listening!
|
|
|
How to move text? |
Posted by: nothing - 01-18-2022, 05:54 AM - Forum: General questions
- Replies (2)
|
 |
There are two layers. One is a background image and another one is text. The text is above the image. Every time I move the text with the move tool, the image is moved mostly.
It works sometimes, but not mostly. Why does it happen and how do I figure it out?
|
|
|
|