You are here


  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0
Rate this item!
Charcoal.zip227.38 KB
Charcoal.jpg80.22 KB


Script-Fu Charcoal v1.0 Tested with Gimp 2.6

A Gimp script which turns a photograph into a black and white image which can look quite like a charcoal drawing. Works with RGB, Indexed and Greyscale images.

Results can be variable and are dictated by the tonal values of the photo used. Although small adjustments can cause quite large differences, the default settings should provide a reasonable starting point but do be prepared to experiment.

To install (Linux): Download and un-zip the archive which contains the script, some examples and a description in text and PDF formats. Move the script file charcoal.scm to /yourhome/.gimp-2.x/scripts. Charcoal will be available the next time you start the Gimp and can be found in the menu <IMAGE><FILTERS><ARTISTIC>.

Code License: 
GIMP Version: 
Scripting Engine: 



See here:

I also added a toggle to max the original layer should you decide to "Resize for optimum effect", but this toggle calls up another script "sg-extend-layer.scm" (see link for more details).

I checked out GimpChat and the results of your efforts. Excellent stuff! Thanks for doing it Mahvin. I'm really sorry you thought me indifferent, it was just that I'd misunderstood what you wanted. Adrian

You didn't seem to show any interest in making any improvements to your script. Indifference doesn't necessarily mean something negative about a person. It's just life.

In my case, it just gave me enough edge to seek it out for myself, which I should have started doing years ago. I'd probably be better at script-fu by now.

It's a good script, you should be proud of it.

Point taken. Thanks for the praise.

I tried to point you in the direction of a bit if DIY because I knew it'd be days before I could do anything useful for you. I have been using the script for a while and it's had a number of changes and there are redundant lines which I left in 'just incase'.

Once I figured out the you were taking my script in directions I'd not thought about, I realised that to make the charcaol effect into a layer, I needed to remove potential conflicts and re-write it properly as a layer effect in order to give you what you wanted. I have now done that. I've also tried to make it more transparent so it's easier for others to modify. As soon as I'm sure it's bug free, I'll upload it.

I'm glad it pushed you into writing - I can still remember the buzz I got when writing my first script-fu and actually got it to work!

I enjoy this script, but it really needs a paper medium feature. Having the ability to apply the charcoal to a textured background, being able to choose your own medium?

Hi mahvin,

I have a new version of the script ready to upload which addresses some of the shortcomings you pointed out in the first version. Like your adaptation it now works with layers and opacity plus I've tweaked it here and there so it's cleaner and more stable.

I did give it a layer mode option but removed it at the last minute because I found it was way quicker to have the layers dialog open and simply scroll through the modes afterwards.

I have experimented with paper texture too but haven't got it any near right yet so I'll hold that for the next version.

Thanks for suggesting the change of direction.

Interesting observation Mahvin.

I've been using textured papers for printing on but I'll give it some thought.

Just to give you an idea:

I created a background layer with a 20% opacity filled texture. I used burn mode on the original image layer. Then ran your charcoal filter and got this:

For the feature to be effective, it would require the ability to choose your own texture and opacity level. But when it comes right down to it, it's really not all that hard to do manually. The feature would still require the same input.

But in the course of performing this, I came across another problem: not with the script, but with the results. When I ran charcoal at default, the dog turned out dark in light areas, and light in dark areas. So I ran again, inverting to negative, and it gave me the result I desired for the dog, but then the arms in the pic turned black. So I quickmasked the dog out, and inverted the image. Re-ran the script to get the result you see above.

Hi Mahvin,

Yep - it isn't easy to make these effects work for all images out of the box I'm afraid. Sometimes you just have to mess with them to get the right result. A quick mask & cut 'n' paste session usually does the trick for me though. Sometimes, running the script several times with different settings for the crossover points gives you a bunch of varied raw material to work with.

Thanks for taking the trouble to show us your results.



Subscribe to Comments for "Charcoal"