Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 5,911
» Latest member: kristalyn
» Forum threads: 7,362
» Forum posts: 40,087

Full Statistics

Latest Threads
RemoveBG, how to install ...
Forum: Extending the GIMP
Last Post: CtrlAltDel
33 minutes ago
» Replies: 12
» Views: 383
Converting python plugin-...
Forum: Gimp 2.99 & Gimp 3.0
Last Post: n3306tx
3 hours ago
» Replies: 42
» Views: 4,139
selecting a fixed size re...
Forum: Gimp 2.99 & Gimp 3.0
Last Post: rich2005
11 hours ago
» Replies: 4
» Views: 187
New color : olo
Forum: Watercooler
Last Post: denzjos
Today, 07:51 AM
» Replies: 0
» Views: 59
Windows Portable Gimp 3.0...
Forum: Alternate Gimp packagings
Last Post: rich2005
Yesterday, 07:57 PM
» Replies: 0
» Views: 93
Masking/Cutting/Layering?
Forum: General questions
Last Post: rich2005
Yesterday, 07:43 PM
» Replies: 1
» Views: 120
Need help installing Resy...
Forum: Gimp 2.99 & Gimp 3.0
Last Post: rich2005
Yesterday, 05:58 PM
» Replies: 3
» Views: 196
arrow-set-size.scmについて
Forum: Gimp 2.99 & Gimp 3.0
Last Post: mkunio
Yesterday, 05:37 PM
» Replies: 3
» Views: 164
AIGoR - Artificial Image ...
Forum: Other graphics software
Last Post: vitforlinux
04-18-2025, 03:58 PM
» Replies: 6
» Views: 634
My instution block downlo...
Forum: Gimp 2.99 & Gimp 3.0
Last Post: vitforlinux
04-18-2025, 12:32 PM
» Replies: 3
» Views: 184

 
  Save to .XCF Default Format Setting?
Posted by: Xogroroth - 02-06-2024, 07:56 AM - Forum: Installation and usage - Replies (6)

Hail all:

Now, I've been using Gimp for quite a while, and all the time, I checked "Save this XCF file with better but slower compression" manually.

How can I make it so, that this becomes the normal, standard form, please?

Thank you:
Xog.

Print this item

  Decompose to color channels
Posted by: denzjos - 02-05-2024, 10:29 AM - Forum: Extending the GIMP - Replies (2)

With Ofnuts plugin 'Decompose to color channels' I got quick a nice effect on a photo that was taken with a blue spotlicht in the back. Could be done with another workflow, but I found this a quick one.
   

Print this item

  Hi res question
Posted by: doodle - 02-04-2024, 11:28 PM - Forum: General questions - Replies (9)

I am trying to make a hi res from a image. Going to print I increase pixels but it does not seem to work. I am using version 2.10  Give me some detail and examples if you can.
Thanks

Print this item

Photo Iridiscent Effect, is it impossible with Gimp?
Posted by: mariah701 - 02-04-2024, 11:51 AM - Forum: General questions - Replies (7)

I have been trying to iridescent effect to this grey suit.
does anyone know if it can be dont with gimp and if so could you please aplly it to the following images.
and of course teach me oh wise ones!!

[Image: YGG5GgI]
[Image: CoMDzpK]
[Image: oM8o98X]

I would to apply this effect
[Image: ESEUXWt]


EDIT:
Apparently you cant add images the easy way on the forum Angry
https://imgur.com/onm0LAJ

https://imgur.com/a/Uct1DOH

https://imgur.com/a/y8gTx6z

https://imgur.com/a/Qe04BkW


and again this is the effect I would like to be able to replicate
https://imgur.com/a/izGNpa3
https://imgur.com/undefined

Print this item

  Python plug-in error when no image
Posted by: gasMask - 02-04-2024, 07:34 AM - Forum: Gimp 2.99 & Gimp 3.0 - Replies (2)

Hi guys,
So I'm on the road to develop a plug-in for GIMP 2.99.16, but I've just started out. I am taking baby steps and ran into this error at the get-go.

What I want to achieve:
I want the plug-in menu item to be enabled when there is no image opened.

What I changed:
procedure.set_image_types('*')  <- Works.

to:
procedure.set_image_types('')   # <- Broken.

What happens is that the menu item becomes enabled, but when I start the plug-in, I get an error:

"Procedure 'jb-plug-in-first-try' has been called with an invalid ID for argument 'image'. Most likely a plug-in is trying to work on an image that doesn't exist any longer."

I am using the code found at:
plug-in tutorial

 This code doesn't reference an image.

Code:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
import gi

gi.require_version('Gimp', '3.0')
gi.require_version('GimpUi', '3.0')

from gi.repository import Gimp
from gi.repository import GLib


class MyFirstPlugin (Gimp.PlugIn):
   def do_query_procedures(self):
       return [ "jb-plug-in-first-try" ]

   def do_set_i18n (self, name):
       return False

   def do_create_procedure(self, name):
       procedure = Gimp.ImageProcedure.new(
           self,
           name,
           Gimp.PDBProcType.PLUGIN,
           self.run,
           None
       )

       # Requires no image, ''.
       # procedure.set_image_types('*')  <- Works.
       procedure.set_image_types('')   # <- Broken.

       procedure.set_menu_label("My first Python plug-in")
       procedure.add_menu_path('<Image>/Filters/Tutorial/')
       procedure.set_documentation(
           "My first Python plug-in tryout",
           "My first Python 3 plug-in for GIMP 3",
           name
       )
       procedure.set_attribution("Your name", "Your name", "2024")
       return procedure

   def run(self, procedure, *arg):
       Gimp.message("Hello world!")
       # do what you want to do, then, in case of success, return:
       return procedure.new_return_values(
           Gimp.PDBStatusType.SUCCESS, GLib.Error()
       )


Gimp.main(MyFirstPlugin.__gtype__, sys.argv)


On another matter, is there a way to refresh the plug-in, as in have GIMP reload it, so that I can edit code and not have to restart GIMP?

Thank you all for your attention,
Charles



Attached Files
.zip   MyFirstPlugin.zip (Size: 775 bytes / Downloads: 141)
Print this item

  gimp icon sizes
Posted by: justinjamesbrowne@gmail.com - 02-02-2024, 11:20 PM - Forum: General questions - Replies (1)

Hi pepes. I watched a video and managed to increase the fonts in Gimp which on my laptop are way too small.
I did this by altering the GTKRC file. Is there a place in that file to alter the icons too. I can hardly see my brushes and the main tools on the top left are too small as well. I used the icon theme reset to large. It is not large at all and hardly makes any difference. Please help as I would really love to use this software. but its just not pleasing to use.
Thanks JJ

Print this item

  GMIC install for Mac OS 10.13 worked
Posted by: Robpared - 02-02-2024, 09:06 PM - Forum: OSX - Replies (4)

Ok. Have struggled with installing Gmic for GIMP (v 2.10.22) on Mac. After several days and hours of research, I was able to install on Mojave. There is a lot on the web about install failing, so I kept on digging. The reason I still use 10.13 is due to several other CAD and 3D software that will not run on newer Mac OS (I know, but Engineered Software was bought by Form Z and it's taking a long time to release the updated version, also I have a dwg converter that won't run on newer OS). Any way, I used the Macports installation (download the correct version for your OS). Install Macports then open Terminal (utilities folder) and paste the command listed on their website to start the install. The install takes a while, you can monitor via terminal to see what is being installed (the terminal command to view what is going on is also on Macports website and it allows to see where everything is going, USE IT, especially by the end, where terminal tells you exactly the path to the gmic files, believe me, I learned the hard way). Ok, after about 1 hour or more, I think, everything will be installed BUT, and this is a big BUT, the packages are installed on the ops/ directory which is NOT where GIMP 2.10 looks for plug-ins. You need to navigate to the ops/ directory (its the optional folder: Macintosh HD/opt/local/lib/gimp/2.0/plu-ins/gmic_gimp_qt) scan through that folder and find the gmic_qt file, copy that ifile into you applications folder for gimp (you have to right click on the app icon to "show contents") 
Path: Mackintosh/applications/gimp (the app)/contents/resources/lib/gimp/2.0/plug-ins once you are in that folder, you can copy the gmic_gimp_qt file by dragging it in. 
Restart your Mac, open GIMP and you'll see the GMIC plug-in in the filters folder at the very bottom; it's greyed out until there is an image to work on. 
Whew-it took me forever to figure this out. So far working OK. Still seeing if there are other files that need to be copied.
I think this may work for other, later OS's too, and maybe you don't need to do this for the latest GIMP update 2.10.33?
Anyway, I hope this helps

Print this item

  Problems with the brushes since the update
Posted by: solnischka78 - 01-31-2024, 07:35 PM - Forum: General questions - Replies (2)

Hello dear community, 

I am new in this forum. I use a Huion Tablet H950P, since the update to Gimp 2.10.36 my lines look like the screenshot. Very pixelated. I haven't done much with brushes in Gimp so far, however the strokes look terrible compared to results in other programs. Can anyone help me?



Attached Files Thumbnail(s)
   
Print this item

Python Try to transform a python script to go/back/and forth between Darktable and GIMP
Posted by: PixLab - 01-31-2024, 05:31 AM - Forum: Scripting questions - Replies (2)

The original script is for LightZone and GIMP, which works nicely, from GIMP to LZ and back to GIMP

So my changes works nicely from GIMP to Darktable, but to get back from Darktable to GIMP again, I got an error

   

Any idea, help? I can't think anymore my head gets narrow vision now and is on fire Big Grin

the code I did some change for Darktable:

Code:
#!/usr/bin/env python

'''
Lightzone.py
call LightZone passing the active layer as a temp file.

Author:
Rob Antonishen
Modified by
Partha Bagchi
Modified by Martin Pohl
Modified by
Stefano Azzi
Modified by
Masahiro Kitagawa

Version:
0.8c Made it compatible with Windows, macOS, and Linux
0.8b Made it specific for LightZone
0.8 Made it specific to Nik Collection
0.7 fixed file save bug where all files were png regardless of extension
0.6 modified to allow for a returned layer that is a different size
   than the saved layer for
0.5 file extension parameter in program list.
0.4 modified to support many optional programs.

this script is modelled after the mm extern LabCurves trace plugin
by Michael Munzert http://www.mm-log.com/lab-curves-gimp

and thanks to the folds at gimp-chat has grown a bit ;)

License:

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; version 3 of the License.

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.

The GNU Public License is available at
http://www.gnu.org/copyleft/gpl.html

'''

from gimpfu import *
import shlex
import subprocess
import os, sys
import tempfile
from shutil import copyfile

def gimp_log( text ):
    pdb.gimp_message( text )

def plugin_main( image, drawable, visible ):
 pdb.gimp_image_undo_group_start(image)
 
 # Copy so the save operations doesn't affect the original
 if visible == 0:
   # Save in temporary.  Note: empty user entered file name
   temp = pdb.gimp_image_get_active_drawable(image)
 else:
   # Get the current visible
   temp = pdb.gimp_layer_new_from_visible(image, image, "Darktable")
   image.add_layer(temp, 0)

 buffer = pdb.gimp_edit_named_copy(temp, "ShellOutDTTemp")

 #save selection if one exists
 hassel = pdb.gimp_selection_is_empty(image) == 0
 if hassel:
   savedsel = pdb.gimp_selection_save(image)

 tempimage = pdb.gimp_edit_named_paste_as_new(buffer)
 pdb.gimp_buffer_delete(buffer)
 if not tempimage:
   raise RuntimeError
 pdb.gimp_image_undo_disable(tempimage)

 tempdrawable = pdb.gimp_image_get_active_layer(tempimage)
 
 tempfilename = os.path.join(tempfile.gettempdir(), "ShellOutDTTempFile.tif" )
 

 # !!! Note no run-mode first parameter, and user entered filename is empty string
 pdb.gimp_progress_set_text ("Saving a copy")
 pdb.gimp_file_save(tempimage, tempdrawable, tempfilename, tempfilename)

 # Build command line call
 if sys.platform.startswith('win'):
   progtorun = "\"" + os.environ["ProgramW6432"] + "\\darktable\\darktable.exe\""
 elif sys.platform.startswith('darwin'):
   progtorun = "open -W -a \"darktable.app\""
 elif sys.platform.startswith('linux'):
   progtorun = "\"darktable\""
 command = progtorun + " \"" + tempfilename + "\""
 args = shlex.split(command)

 # Invoke external command
 pdb.gimp_progress_set_text ("calling Darktable...")
 pdb.gimp_progress_pulse()
 child = subprocess.Popen(args, shell=False)
 child.communicate()

 # put it as a new layer in the opened image
 try:
    darktablefile = os.path.join(tempfile.gettempdir(), "ShellOutDTTempFile.tif")    
    copyfile( darktablefile, tempfilename )
    newlayer2 = pdb.gimp_file_load_layer(tempimage, tempfilename)
 except:
   RuntimeError
    
 tempimage.add_layer(newlayer2,-1)
 buffer = pdb.gimp_edit_named_copy(newlayer2, "ShellOutDTTemp")

 if visible == 0:
   drawable.resize(newlayer2.width,newlayer2.height,0,0)
   sel = pdb.gimp_edit_named_paste(drawable, buffer, 1)
   drawable.translate((tempdrawable.width-newlayer2.width)/2,(tempdrawable.height-newlayer2.height)/2)
 else:
   temp.resize(newlayer2.width,newlayer2.height,0,0)
   sel = pdb.gimp_edit_named_paste(temp, buffer, 1)
   temp.translate((tempdrawable.width-newlayer2.width)/2,(tempdrawable.height-newlayer2.height)/2)

 pdb.gimp_buffer_delete(buffer)
 pdb.gimp_edit_clear(temp)    
 pdb.gimp_floating_sel_anchor(sel)

 #load up old selection
 if hassel:
   pdb.gimp_selection_load(savedsel)
   image.remove_channel(savedsel)
 
 # cleanup
 os.remove(tempfilename)  # delete the temporary file
 gimp.delete(tempimage)   # delete the temporary image
 os.remove( darktablefile )     # delete the locally created LZ file
 # Note the new image is dirty in Gimp and the user will be asked to save before closing.
 pdb.gimp_image_undo_group_end(image)
 gimp.displays_flush()


register(
       "python_fu_Darktable",
       "Call Darktable",
       "Call Darktable",
       "Rob Antonishen",
       "Copyright 2011 Rob Antonishen",
       "2011",
       "<Image>/Filters/Photo Editors/Darktable",
       "RGB*, GRAY*",
       [ (PF_RADIO, "visible", "Layer:", 1, (("new from visible", 1),("current layer",0))),
       ],
       [],
       plugin_main,
       )

main()


Original code of Lightzone.py
Code:
#!/usr/bin/env python

'''
Lightzone.py
call LightZone passing the active layer as a temp file.

Author:
Rob Antonishen
Modified by
Partha Bagchi
Modified by Martin Pohl
Modified by
Stefano Azzi
Modified by
Masahiro Kitagawa

Version:
0.8c Made it compatible with Windows, macOS, and Linux
0.8b Made it specific for LightZone
0.8 Made it specific to Nik Collection
0.7 fixed file save bug where all files were png regardless of extension
0.6 modified to allow for a returned layer that is a different size
    than the saved layer for
0.5 file extension parameter in program list.
0.4 modified to support many optional programs.

this script is modelled after the mm extern LabCurves trace plugin
by Michael Munzert http://www.mm-log.com/lab-curves-gimp

and thanks to the folds at gimp-chat has grown a bit ;)

License:

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; version 3 of the License.

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.

The GNU Public License is available at
http://www.gnu.org/copyleft/gpl.html

'''

from gimpfu import *
import shlex
import subprocess
import os, sys
import tempfile
from shutil import copyfile

def gimp_log( text ):
    pdb.gimp_message( text )

def plugin_main( image, drawable, visible ):
  pdb.gimp_image_undo_group_start(image)
  
  # Copy so the save operations doesn't affect the original
  if visible == 0:
    # Save in temporary.  Note: empty user entered file name
    temp = pdb.gimp_image_get_active_drawable(image)
  else:
    # Get the current visible
    temp = pdb.gimp_layer_new_from_visible(image, image, "LightZone")
    image.add_layer(temp, 0)

  buffer = pdb.gimp_edit_named_copy(temp, "ShellOutTemp")

  #save selection if one exists
  hassel = pdb.gimp_selection_is_empty(image) == 0
  if hassel:
    savedsel = pdb.gimp_selection_save(image)

  tempimage = pdb.gimp_edit_named_paste_as_new(buffer)
  pdb.gimp_buffer_delete(buffer)
  if not tempimage:
    raise RuntimeError
  pdb.gimp_image_undo_disable(tempimage)

  tempdrawable = pdb.gimp_image_get_active_layer(tempimage)
  
  tempfilename = os.path.join(tempfile.gettempdir(), "ShellOutTempFile.tif" )
  

  # !!! Note no run-mode first parameter, and user entered filename is empty string
  pdb.gimp_progress_set_text ("Saving a copy")
  pdb.gimp_file_save(tempimage, tempdrawable, tempfilename, tempfilename)

  # Build command line call
  if sys.platform.startswith('win'):
    progtorun = "\"" + os.environ["ProgramW6432"] + "\\LightZone\\LightZone.exe\""
  elif sys.platform.startswith('darwin'):
    progtorun = "open -W -a \"LightZone.app\""
  elif sys.platform.startswith('linux'):
    progtorun = "\"lightzone\""
  command = progtorun + " \"" + tempfilename + "\""
  args = shlex.split(command)

  # Invoke external command
  pdb.gimp_progress_set_text ("calling LightZone...")
  pdb.gimp_progress_pulse()
  child = subprocess.Popen(args, shell=False)
  child.communicate()

  # put it as a new layer in the opened image
  try:
    lightzonefile = os.path.join(tempfile.gettempdir(), "ShellOutTempFile_lzn.jpg")    
    copyfile( lightzonefile, tempfilename )
    newlayer2 = pdb.gimp_file_load_layer(tempimage, tempfilename)
  except:
    RuntimeError
    
  tempimage.add_layer(newlayer2,-1)
  buffer = pdb.gimp_edit_named_copy(newlayer2, "ShellOutTemp")

  if visible == 0:
    drawable.resize(newlayer2.width,newlayer2.height,0,0)
    sel = pdb.gimp_edit_named_paste(drawable, buffer, 1)
    drawable.translate((tempdrawable.width-newlayer2.width)/2,(tempdrawable.height-newlayer2.height)/2)
  else:
    temp.resize(newlayer2.width,newlayer2.height,0,0)
    sel = pdb.gimp_edit_named_paste(temp, buffer, 1)
    temp.translate((tempdrawable.width-newlayer2.width)/2,(tempdrawable.height-newlayer2.height)/2)

  pdb.gimp_buffer_delete(buffer)
  pdb.gimp_edit_clear(temp)    
  pdb.gimp_floating_sel_anchor(sel)

  #load up old selection
  if hassel:
    pdb.gimp_selection_load(savedsel)
    image.remove_channel(savedsel)
  
  # cleanup
  os.remove(tempfilename)  # delete the temporary file
  gimp.delete(tempimage)   # delete the temporary image
  os.remove( lightzonefile )     # delete the locally created LZ file
  # Note the new image is dirty in Gimp and the user will be asked to save before closing.
  pdb.gimp_image_undo_group_end(image)
  gimp.displays_flush()


register(
        "python_fu_Lightzone",
        "Call LightZone",
        "Call LightZone",
        "Rob Antonishen",
        "Copyright 2011 Rob Antonishen",
        "2011",
        "<Image>/Filters/Photo Editors/LightZone",
        "RGB*, GRAY*",
        [ (PF_RADIO, "visible", "Layer:", 1, (("new from visible", 1),("current layer",0))),
        ],
        [],
        plugin_main,
        )

main()

Print this item

  hand drawn line effect
Posted by: Robpared - 01-30-2024, 07:54 PM - Forum: General questions - Replies (22)

New here (architect doing building illustrations) and searched but could not find anything. New to GIMP and trying to use an effect similar to Photoshop ripple effect which I used to convert vector exported lines into a "jiggled" effect to make them look hand drawn (CAD drawing to render like traced by hand). Not looking for photo to pencil sketch or anything like that. The ripple effect in Photoshop is pretty straight forward, only choosing percent of "jiggle" and medium or large effect. The ripple filter in GIMP does not achieve anything like the photoshop ripple. The imported images are typically black and white. Looked across the web and everything is about converting photos into a pencil like sketch but the lines are not "squiggly".
Help please  Huh

Print this item