Archive for the ‘gimp’ Category

G’Day,
The menu bug that caused gimp to crash on all platforms is fixed now.

ftp://ftp.gimp.org/pub/gimp/v2.6/

Here is the excerpt from the changelog:

Overview of Changes from GIMP 2.6.9 to GIMP 2.6.10
==================================================

* Bugs fixed:

 613328 - TGA files saved with incorrect header yOrigin data
 623290 - Save As... does not save Windows Bitmap as default in dialog
 621363 - CMYK decompose broken
 595170 - brush - color from gradient works wrong in greyscale
 613838 - Error in gimp-hue-saturation PDB call
 622608 - GIMP crashes when clicking any scroll bar from combo boxes
 565459 - newly opened images are put into the background

* Updated translations:

 German (de)
 Italian (it)
 Romanian (ro)
 Portuguese (pt)

There is a bug in gimp 2.6.9 which causes it to crash when you use the menus in a certain way.

It happens on linux and windows.

Cameron

G’Day,
You can get the latest development version from ftp://ftp.gimp.org/pub/gimp/v2.7/

You can read the notes for the release here:

http://mitch.gimp.org/release-notes-2-7-1.txt

If you have ubuntu you can get (easy) build instructions here:

blog.bloke.com: build gimp from source

have fun!

Cameron

We are going to build gimp from the directory $HOME/gimp/2.7.1 and install it into $HOME/gimp-2.7.1 or /opt/gimp-2.7.

Installing to my home directory allows me to have multiple copies of the gimp, and run which ever version that I want. So my tree actually looks something like this:
(my build files)
$HOME/gimp/2.7.1/gimp-2.7.1/
$HOME/gimp/2.7.1/gegl-0.12/
$HOME/gimp/2.7.1/babl-0.12/
(the install area)
$HOME/gimp-2.7.1/

Step 1. Start with a clean install of Ubuntu.

Of course you don’t need to do that, but I thought it was a great place to start. I did this by installing a version of 10.04 LTS Ubuntu 64bit on a Sun VirtualBox VM. If you don’t know what I just said, then just start with Ubuntu 10.04.

Step 2. Download the dependencies.

sudo apt-get install gettext libglib2.0-0 libglib2.0-dev \
    libgtk2.0-dev ruby intltool libtiff4-dev python-gtk2-dev \
    libjasper-dev libexif-dev libmng-dev liblcms1-dev \
    libxpm-dev librsvg2-dev libwmf-dev libasound2-dev \
    libdbus-glib-1-dev libaa1-dev libwebkit-dev libhal-dev \
    libpoppler-glib-dev

Step 3. Download the source files that we need to install.

cd
mkdir -p gimp/2.7.1/
cd gimp/2.7.1
wget ftp://ftp.gimp.org/pub/babl/0.1/babl-0.1.2.tar.bz2
wget ftp://ftp.gimp.org/pub/gegl/0.1/gegl-0.1.2.tar.bz2
wget ftp://ftp.gimp.org/pub/gimp/v2.7/gimp-2.7.1.tar.bz2
tar xf babl-0.1.2.tar.bz2
tar xf gegl-0.1.2.tar.bz2
tar xf gimp-2.7.1.tar.bz2

Step 4. Pick somewhere to install

Now here we can choose where we want to install. The default is /usr/local/. (ie PREFIX=/usr/local), however that is known to cause problems. Personally, I want to have the installations and libraries seperate for each version, so that I can run whatever version of gimp that I want, so I’ll use PREFIX=$HOME/gimp-2.7.1. If you want to install system wide then use PREFIX=/opt/gimp-2.7.

PREFIX=$HOME/gimp-2.7.1

Step 5. Start the build

You need “sudo make install” below if installing to /opt.

export PATH=$PREFIX/bin:$PATH
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig

cd babl-0.1.2
./configure --prefix=$PREFIX
make
make install

cd ../gegl-0.1.2
./configure --prefix=$PREFIX
make
make install

cd ../gimp-2.7.1
./configure --prefix=$PREFIX
make
make install

Step 6. Run the program

Now you can run gimp as:

$PREFIX/bin/gimp-2.7

I was a bit slow to pick up on this, but you can get it from http://www.gimp.org/

Cameron

Okay, so you heard there are some cool new features in gimp-2.7. Well, it’s an unstable version. “But I want layer folders”. Yeah yeah, okay, so this should work for non-developers, but remember 2.7 is unstable.

The following will do a build from “gimp-build” directory which is in your home directory and install into “gimp” in your home directory.

Suggestions for improvements welcome.

This is using Ubuntu 10.04. Different versions may require some additional packages be installed.

cd
export PREFIX=`echo ~/gimp`
export PATH=$PREFIX/bin:$PATH
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig
sudo apt-get install libtool automake1.10 autoconf git-core gettext \
libglib2.0-0 libglib2.0-dev libgtk2.0-0 libgtk2.0-dev ruby \
intltool libtiff4 libtiff4-dev python-dev python-gtk2-dev \
libexif-dev libmng-dev liblcms1-dev libxpm-dev librsvg2-dev \
libwmf-dev libasound2-dev

mkdir gimp-build
cd gimp-build
git clone git://git.gnome.org/babl
git clone git://git.gnome.org/gegl
git clone git://git.gnome.org/gimp

cd babl
./autogen.sh –prefix=$PREFIX
make
make install

cd ../gegl
./autogen.sh –prefix=$PREFIX
make
make install

cd ../gimp
./autogen.sh –prefix=$PREFIX
make
make install

Now you can run gimp as

~/gimp/bin/gimp-2.7

script-fu-selection-rounded-rectangle is just broken in gimp 2.6.8. This patch fixes two things. One, it makes it work again (gimp 2.6.8), and two it fixes the out-by one that makes the rounded rectangles and “pill” selections to look bad.

rounded-selection.patch:

--- /home/blah/gimp-2.6.8/plug-ins/script-fu/scripts/selection-round.scm     2009-07-21 06:20:51.000000000 +1000
+++ ./selection-round.scm       2010-05-17 16:27:45.000000000 +1000
@@ -27,6 +27,7 @@
;; 2.02 - changed scale to percentages, usability tweaking.
;; 2.10 - added concave round edges, updated description.
;; 2.11 - tweeked description, changed comments, relinquished any rights.
+;; 2.12 - forced radius to be integer and corrected out-by one. - Cameron

;; Copyright (C) 1997, 1998, Sven Neumann
;; Copyright (C) 2004, Alan Horkan.
@@ -45,12 +46,13 @@
(has-selection (car select-bounds))
(select-x1 (cadr select-bounds))
(select-y1 (caddr select-bounds))
+ ; x2 and y2 are not actually part of the selection
(select-x2 (cadr (cddr select-bounds)))
(select-y2 (caddr (cddr select-bounds)))
(select-width (- select-x2 select-x1))
(select-height (- select-y2 select-y1))
(cut-radius 0)
- (ellipse-radius 0)
+ (cut-diam 0)
)

;; select to the full bounds of the selection,
@@ -60,27 +62,34 @@
CHANNEL-OP-ADD FALSE 0)

(if (> select-width select-height)
- (set! cut-radius (trunc (+ 1 (* radius (/ select-height 2)))))
- (set! cut-radius (trunc (+ 1 (* radius (/ select-width 2)))))
+ (set! cut-radius (* radius (/ select-height 2)))
+ (set! cut-radius (* radius (/ select-width 2)))
)
- (set! ellipse-radius (* cut-radius 2))
+ ; gimp-ellise-select appears to only handle whole numbers.
+ ; note that if it did use floats, then don’t use trunc
+ ; eg, you could set the center to a corner – 1.5 with a radius of 3.
+ ; you could also get slightly better results for !concave
+ ; if you use a semi-circle when radius = 100%.
+ (set! cut-radius (trunc (+ 0.5 cut-radius)))
+ (set! cut-diam (* cut-radius 2))
+ ; we could stop here if radius or diam was 0

;; cut away rounded (concave) corners
- ; top right
+ ; top left
(gimp-ellipse-select image
(- select-x1 cut-radius)
(- select-y1 cut-radius)
- (* cut-radius 2)
- (* cut-radius 2)
+ cut-diam
+ cut-diam
CHANNEL-OP-SUBTRACT
TRUE
FALSE 0)
- ; lower left
+ ; bottom left
(gimp-ellipse-select image
(- select-x1 cut-radius)
(- select-y2 cut-radius)
- (* cut-radius 2)
- (* cut-radius 2)
+ cut-diam
+ cut-diam
CHANNEL-OP-SUBTRACT
TRUE
FALSE 0)
@@ -88,17 +97,17 @@
(gimp-ellipse-select image
(- select-x2 cut-radius)
(- select-y1 cut-radius)
- (* cut-radius 2)
- (* cut-radius 2)
+ cut-diam
+ cut-diam
CHANNEL-OP-SUBTRACT
TRUE
FALSE 0)
- ; bottom left
+ ; bottom right
(gimp-ellipse-select image
(- select-x2 cut-radius)
(- select-y2 cut-radius)
- (* cut-radius 2)
- (* cut-radius 2)
+ cut-diam
+ cut-diam
CHANNEL-OP-SUBTRACT
TRUE
FALSE 0)
@@ -106,35 +115,39 @@
;; add in rounded (convex) corners
(if (= concave FALSE)
(begin
+ ; top left
(gimp-ellipse-select image
select-x1
select-y1
- ellipse-radius
- ellipse-radius
+ cut-diam
+ cut-diam
CHANNEL-OP-ADD
TRUE
FALSE 0)
+ ; bottom left
(gimp-ellipse-select image
select-x1
- (- select-y2 ellipse-radius)
- ellipse-radius
- ellipse-radius
+ (- select-y2 cut-diam)
+ cut-diam
+ cut-diam
CHANNEL-OP-ADD
TRUE
FALSE 0)
+ ; top right
(gimp-ellipse-select image
- (- select-x2 ellipse-radius)
+ (- select-x2 cut-diam)
select-y1
- ellipse-radius
- ellipse-radius
+ cut-diam
+ cut-diam
CHANNEL-OP-ADD
TRUE
FALSE 0)
+ ; bottom right
(gimp-ellipse-select image
- (- select-x2 ellipse-radius)
- (- select-y2 ellipse-radius)
- ellipse-radius
- ellipse-radius
+ (- select-x2 cut-diam)
+ (- select-y2 cut-diam)
+ cut-diam
+ cut-diam
CHANNEL-OP-ADD
TRUE
FALSE 0)
@@ -148,7 +161,7 @@

(define (script-fu-selection-round image drawable radius)
- (script-fu-selection-rounded-rectangle image drawable (* radius 100))
+ (script-fu-selection-rounded-rectangle image drawable (* radius 100) FALSE)
)

The rounded rectangle could be even better if gimp-ellipse-select could handle non-integers (it accepts them, but then just truncates it anyway – at least when feathering is off).

So after the patch, you are left with selection-round.scm (you can replace this with your current one – keep a backup):

;; selection-rounded-rectangle.scm -*-scheme-*-

;; GIMP – The GNU Image Manipulation Program
;; Copyright (C) 1995 Spencer Kimball and Peter Mattis
;;
;; 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., 675 Mass Ave, Cambridge, MA 02139, USA.

;; CHANGE-LOG:
;; 1.00 – initial release
;; 1.01 – some code cleanup, no real changes
;; 1.02 – made script undoable

;; 2.00 – ALAN’s Branch. changed name, menu, location, and description
;; 2.01 – fixed to work if there was no current selection.
;; 2.02 – changed scale to percentages, usability tweaking.
;; 2.10 – added concave round edges, updated description.
;; 2.11 – tweeked description, changed comments, relinquished any rights.
;; 2.12 – forced radius to be integer and corrected out-by one. – Cameron

;; Copyright (C) 1997, 1998, Sven Neumann
;; Copyright (C) 2004, Alan Horkan.
;; Alan Horkan relinquishes all rights to his changes,
;; full ownership of this script belongs to Sven Neumann.

(define (script-fu-selection-rounded-rectangle image drawable radius concave)
(gimp-image-undo-group-start image)

(if (= (car (gimp-selection-is-empty image)) TRUE) (gimp-selection-all image))
(let* (
(radius (/ radius 100)) ; convert from percentages
(radius (min radius 1.0))
(radius (max radius 0.0))
(select-bounds (gimp-selection-bounds image))
(has-selection (car select-bounds))
(select-x1 (cadr select-bounds))
(select-y1 (caddr select-bounds))
; x2 and y2 are not actually part of the selection
(select-x2 (cadr (cddr select-bounds)))
(select-y2 (caddr (cddr select-bounds)))
(select-width (- select-x2 select-x1))
(select-height (- select-y2 select-y1))
(cut-radius 0)
(cut-diam 0)
)

;; select to the full bounds of the selection,
;; fills in irregular shapes or holes.
(gimp-rect-select image
select-x1 select-y1 select-width select-height
CHANNEL-OP-ADD FALSE 0)

(if (> select-width select-height)
(set! cut-radius (* radius (/ select-height 2)))
(set! cut-radius (* radius (/ select-width 2)))
)
; gimp-ellise-select appears to only handle whole numbers.
; note that if it did use floats, then don’t use trunc
; eg, you could set the center to a corner – 1.5 with a radius of 3.
; you could also get slightly better results for !concave
; if you use a semi-circle when radius = 100%.
(set! cut-radius (trunc (+ 0.5 cut-radius)))
(set! cut-diam (* cut-radius 2))
; we could stop here if radius or diam was 0

;; cut away rounded (concave) corners
; top left
(gimp-ellipse-select image
(- select-x1 cut-radius)
(- select-y1 cut-radius)
cut-diam
cut-diam
CHANNEL-OP-SUBTRACT
TRUE
FALSE 0)
; bottom left
(gimp-ellipse-select image
(- select-x1 cut-radius)
(- select-y2 cut-radius)
cut-diam
cut-diam
CHANNEL-OP-SUBTRACT
TRUE
FALSE 0)
; top right
(gimp-ellipse-select image
(- select-x2 cut-radius)
(- select-y1 cut-radius)
cut-diam
cut-diam
CHANNEL-OP-SUBTRACT
TRUE
FALSE 0)
; bottom right
(gimp-ellipse-select image
(- select-x2 cut-radius)
(- select-y2 cut-radius)
cut-diam
cut-diam
CHANNEL-OP-SUBTRACT
TRUE
FALSE 0)

;; add in rounded (convex) corners
(if (= concave FALSE)
(begin
; top left
(gimp-ellipse-select image
select-x1
select-y1
cut-diam
cut-diam
CHANNEL-OP-ADD
TRUE
FALSE 0)
; bottom left
(gimp-ellipse-select image
select-x1
(- select-y2 cut-diam)
cut-diam
cut-diam
CHANNEL-OP-ADD
TRUE
FALSE 0)
; top right
(gimp-ellipse-select image
(- select-x2 cut-diam)
select-y1
cut-diam
cut-diam
CHANNEL-OP-ADD
TRUE
FALSE 0)
; bottom right
(gimp-ellipse-select image
(- select-x2 cut-diam)
(- select-y2 cut-diam)
cut-diam
cut-diam
CHANNEL-OP-ADD
TRUE
FALSE 0)
)
)

(gimp-image-undo-group-end image)
(gimp-displays-flush)
)
)

(define (script-fu-selection-round image drawable radius)
(script-fu-selection-rounded-rectangle image drawable (* radius 100) FALSE)
)

(script-fu-register “script-fu-selection-rounded-rectangle”
_”Rounded R_ectangle…”
_”Round the corners of the current selection”
“Alan Horkan, Sven Neumann” ; authors
“Sven Neumann” ; copyright
“2004/06/07″
“*”
SF-IMAGE “Image” 0
SF-DRAWABLE “Drawable” 0
SF-ADJUSTMENT _”Radius (%)” ‘(50 0 100 1 10 0 0)
SF-TOGGLE _”Concave” FALSE
)

(script-fu-register “script-fu-selection-round”
“”
“Round the corners of the current selection (deprecated, use Rounded Rectangle)”
“Sven Neumann” ; authors
“Sven Neumann” ; copyright
“1998/02/06″
“*”
SF-IMAGE “Image” 0
SF-DRAWABLE “Drawable” 0
SF-ADJUSTMENT “Relative radius” ‘(1 0 128 0.1 1 1 1)
)

(script-fu-menu-register “script-fu-selection-rounded-rectangle”
/Select/Modify”)

 

I was recently trying to load an image via a URL in gimp. A gimp that I had built myself. It gives an error like:

Opening 'http://...' failed:
Could not open 'http://...' for reading: No such file or directory

It seems my gimp was building with gio/gvfs, but still failing to load the URL, so during build I added
–without-gio and –without-gnomvfs to configure, and then it would build with libcurl (see the output of configure to confirm). Don’t forget to actually install libcurl:

yum install curl-devel

and rebuild (no easy task if you are using CentOS).

I was having problems building libpangocairo. I had the latest cairo, I had freetype installed, I had fontconfig intalled, but everytime I ran configure on pango, it would tell me yes I had cairo, but it was being disabled because there were no backends to use. After trudging through pango configure, I finally figured out that my “fontconfig” was not a high enough version to even test for FreeType, and so it was there were no cairo font backends to use, and so it didn’t build pangocairo and the only error was no cairo backends (when clearly there was!) anyway, if after you google the other posts, and don’t find a solution, update for fontconfig package.