GT Portal . Forums . Official Tutorials . Art Galleries . FAQs . Search . New Posts . Contact Us Login  .  Register


Board index » GIMP Art Galleries and Resources » GIMP Plugins, Filters, and Scripts Make Money Online . Free Image Hosting
Featured Tutorial : Learn how to create characters by Griatch
Search for :  


Post new topic Reply to topic   [ 10 posts ]  


Author Message
 Post subject:
PostPosted: Wed May 07, 2008 6:39 am 
Online
User avatar

Joined:
Mon Jun 13, 2005 11:15 am

Topics: 534
Posts: 6422

Find User's Topics

Letter drops (a script fu from Mac pherson-Saulgoode-Alexia Dark )quite often make Pango crash, and when crash kills gimp

here a error message

Image

(the other error message is from Microsoft and less relevant: gimp.exe encountered a error and we have to terminate it...)

i believe the problem if simple even if solution may be less simple

Basically if is missed one of the requested sizes for the font, Pango crash.

but is not easy to check if a font has all the requested sizes so using the script is a sort of Russian Roulette.(get 7 crash on 10 try )


Anyway the point is if there if may be found a way to hand better that kind of errors ...as example if a requested font of 18 is missed replacing with the closest as size...
..or with a prompt or a error message (" the font you chose is not available in all the sizes you requested.
please try with another font or with other sizes ).

1) i'm not sure how the intermediate font sizes is calculated, i suppose with integers
anyway checking "Geometric progression" seems to increase the risk to crash



_________________
Image

http://www.flickr.com/photos/97844002@N00/


Top
 Profile  
 
 Post subject:
PostPosted: Wed May 07, 2008 7:45 am 
Online
User avatar

Joined:
Mon Jun 13, 2005 11:15 am

Topics: 534
Posts: 6422

Find User's Topics
hem...fonts sizes can be only integers but the number here seems more a decimal, can be that the problem?
I'm lost regard scripting but i hope should be possible round the decimal to the closest integer

Image


then ,but only a couple of times, i get this kind of error
Quote:
Error while executing
(script-fu-letter-drop "Triskelion's Dream" '(224 213 40) '(255 255 255) TRUE "Pure evil 2," 80 200 10.081395348837209 89.668604651162795 4 100 FALSE FALSE "Full saturation spectrum CW")

Error: substring: end out of bounds: 1


Is not connected to weird fonts, since happens even with Arial and Verdana (the 2 most commune fonts)

Quote:
Error while executing
(script-fu-letter-drop "Triskelion's Dream" '(0 0 0) '(255 255 255) FALSE "Arial Bold" 80 200 20 78.799999999999997 4 100 FALSE FALSE "Full saturation spectrum CW")

Error: substring: end out of bounds: 1


Quote:
Error while executing
(script-fu-letter-drop "Triskelion's Dream" '(255 225 21) '(255 255 255) TRUE "Verdana Bold" 100 300 160 80.145348837209298 6 100 FALSE FALSE "Full saturation spectrum CW")

Error: substring: end out of bounds: 1


_________________
Image

http://www.flickr.com/photos/97844002@N00/


Top
 Profile  
 
 Post subject:
PostPosted: Wed May 07, 2008 11:39 am 
Online
User avatar

Joined:
Mon Aug 22, 2005 8:35 pm

Topics: 76
Posts: 3525

Find User's Topics
You will need to add the following line to the script:

(set! sizes (map trunc sizes))

The line should be added after the following section of code (lines 170-179 in my source):

Quote:
;; compute all font sizes, colors and luminosities for the animation (one per frame)
(if geometric
(begin
(if (= start-size 0)
(set! start-size 1)
)
(set! sizes (geometric-prog start-size end-size frames-per-letter))
)
(set! sizes (algebraic-prog start-size end-size frames-per-letter))
)


_________________
Any sufficiently primitive technology is indistinguishable from a rock.


Top
 Profile  
 
 Post subject:
PostPosted: Wed May 07, 2008 5:48 pm 
Online
User avatar

Joined:
Mon Jun 13, 2005 11:15 am

Topics: 534
Posts: 6422

Find User's Topics
I'm using the version in the FX-foundry pack , should be some changes there because allow a transparent background

Anyway i'm going to try in a few minutes, thank for the help, i will let you know


BTW
in the crashes i reported in my post i was NOT using geometric progression (that seems increase chances of error but should be some other reasons )


_________________
Image

http://www.flickr.com/photos/97844002@N00/


Top
 Profile  
 
 Post subject:
PostPosted: Wed May 07, 2008 9:33 pm 
Online
User avatar

Joined:
Mon Jun 13, 2005 11:15 am

Topics: 534
Posts: 6422

Find User's Topics
Didn't help much
Pango crash again because it could not find size 96 (this time was no problem of decimals) of the fonts

hoping that may help i post a screengrab of the setting i used except for the transparency checkbox that was checked)

Image

and the script edited as from your advice, again is the version from FX-Foundry (i need a transparent background)

;
Code:
; The GIMP -- an image manipulation program
; Copyright (C) 1995 Spencer Kimball and Peter Mattis
;
; Letter Drop script for GIMP 2.4
; Original author: Saul Goode
;
; Tags: animation
;
; Author statement:
;Based on the PERL plug-in "Impact Letters" by Ky McPherson
;
; --------------------------------------------------------------------
; Distributed by Gimp FX Foundry project
; --------------------------------------------------------------------
;   - Changelog -
; 19.12.2007 - Added support for transparent background - Alexia Death
;
; --------------------------------------------------------------------
;
;    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 3 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, see <http://www.gnu.org/licenses/>.
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



(define (script-fu-letter-drop text FGcolor BGcolor alpha_bg font letter-delay word-delay start-size
  end-size frames-per-letter opacity geometric use-gradient gradient)
  ;; This function returns a list of floats evenly spaced in the range start to end
  (define (algebraic-prog start end elements)
    (let* (
      (cnt 1)
      (new-list ())
      )
      (if (= start 0)
        (set! new-list (list 0 (/ end (- elements 1))))
        (set! new-list (list 1 (+ 1 (/ (- (/ end start) 1) (- elements 1)))))
        )
      (while (< cnt (- elements 1))
        (set! new-list (append new-list (list (+ (- (cadr new-list) (car new-list)) (car (last new-list))))))
        (set! cnt (+ cnt 1))
        )
      (if (> start 0)
        (set! new-list (mapcar * new-list (make-list (length new-list) start)))
        )
      new-list
      )
    )
  ;; 'geometric-prog' returns a list of floats with each element being the product of a radix and the
  ;; preceding element
  (define (geometric-prog start end elements)
    (let* (
      (cnt 2)
      (new-list ())
      )
      (if (= start 0)
        (set! new-list '( 0 0))
        (set! new-list (list 1 (pow (/ end start) (/ (- elements 1))))) ;; nth root
        )
      (while (< cnt elements)
        (set! new-list (append new-list (list (* (cadr new-list) (car (last new-list))))))
        (set! cnt (+ cnt 1))
        )
      (set! new-list (mapcar * new-list (make-list (length new-list) start)))
      )
    )
  ;; This function breaks a word up into a list of characters
  (define (string->list word)
    (let* (
      (i 1)
      (chars (list (substring word 0 1)))
      )
      (while (< i (string-length word))
        (set! chars (append chars (list (substring word i (+ i 1)))))
        (set! i (+ i 1))
        )
      chars
      )
    )
  ;; This function determines the cell width and height for a character
  ;; It is passed two chars because of proportionally-spaced fonts.
  (define (char-width str font size)
    (set! str (string-append str "  ")) ;; just to be safe
    (- (car (gimp-text-get-extents-fontname (substring str 0 2) size PIXELS font))
       (car (gimp-text-get-extents-fontname (substring str 1 2) size PIXELS font))
       )
    )
  ;; This function returns a list with the "union-ed" extents of the passed rectangles)
  (define (update-bounds old-bounds new-bounds)
    (list
        (min (car old-bounds) (car new-bounds))
        (min (cadr old-bounds) (cadr new-bounds))
        (max (caddr old-bounds) (caddr new-bounds))
        (max (cadr (cddr old-bounds)) (cadr (cddr new-bounds)))
        )
    )

  (let* (
      (display 0)
      (FG-old (car (gimp-context-get-foreground)))
      (BG-old (car (gimp-context-get-background)))
      (GRAD-old (car (gimp-context-get-gradient)))
      (image 0)
      (count (* (string-length text) frames-per-letter))
      (i 0)
      (sizes ())
      (size 0)
      (words ())
      (word 0)
      (letter 0)
      (reds ())
      (red 0)
      (greens ())
      (green 0)
      (blues ())
      (blue 0)
      (first-width 0)
      (last-width 0)
      (curr-width 0)
      (win-width 0)
      (win-height 0)
      (start-height 0)
      (end-height 0)
      (x 0)
      (x-base 0)
      (y-base 0)
      (y-offsets 0)
      (y-offset 0)
      (layer 0)
      (tmp-layer 0)       ;; temporary layer
      (float-layer 0)  ;; another temporary layer
      (ref-layer 0) ;; Holds the bounds of the maximum char size for a given letter (at a point in time)
      (background 0)
      (src-layer 0) ;; Image of all the previous letters
      (max-width 0)  ;; Used to determine if ref-layer is growing in size
      (image-bounds '(99999 99999 0 0))
      (disposal 0)
      )
    ;; Create the image image (it will be too wide, but we can correct when we are finished drawing)
    (set! win-width (car (gimp-text-get-extents-fontname text end-size PIXELS font)))
    (set! start-height (cadr (gimp-text-get-extents-fontname text start-size PIXELS font)))
    (set! end-height (cadr (gimp-text-get-extents-fontname text end-size PIXELS font)))

    ;; widen the window enough for the BIG letter on each end
    (set! win-height (max start-height end-height))
    (set! first-width (char-width (substring text 0 2) font (max start-size end-size)))
    (if (> start-size end-size)
      (set! x-base (/ first-width 2))
      )

    (set! last-width
        (char-width (string-append (substring text (- (string-length text) 1)) " ") font (max start-size end-size))
        )

    (set! win-width (+ win-width first-width last-width))
    (set! image (car (gimp-image-new win-width win-height RGB)))
    ;; Create the layer
    (set! background (car (gimp-layer-new image win-width win-height RGBA-IMAGE
        (string-append "Background (" (number->string word-delay 10 0 0) "ms) (replace)")
        100 ;; opacity
        NORMAL-MODE ))
        )
    (gimp-image-add-layer image background 0)
    (gimp-context-set-background BGcolor)
    (if (= alpha_bg TRUE)
       (begin
          (gimp-drawable-fill background TRANSPARENT-FILL)
          (set! disposal "(replace)" )
       )
       (begin (gimp-drawable-fill background BACKGROUND-FILL) (set! disposal "(combine)" ))
    )
    (set! display (car (gimp-display-new image)))
    (gimp-image-undo-disable image)

    (set! word (set! words (strbreakup text " ")))
    (while (pair? word)
      (set! letter (car word))
      (while (> 0 (string-length letter))
        (set! letter (substring word 1 (string-length letter)))
        )
      (set! word (cdr word))
      )

    ;; compute all font sizes, colors and luminosities for the animation (one per frame)
    (if geometric
      (begin
        (if (= start-size 0)
          (set! start-size 1)
          )
        (set! sizes (geometric-prog start-size end-size frames-per-letter))
        )
      (set! sizes (algebraic-prog start-size end-size frames-per-letter))
      )
    (if (= use-gradient TRUE)
      (begin ;; gradient cycle; use algebraic progression to set luminosity
        (set! reds (algebraic-prog (car BGcolor) (car FGcolor) frames-per-letter))
        (set! greens (algebraic-prog (cadr BGcolor) (cadr FGcolor) frames-per-letter))
        (set! blues (algebraic-prog (caddr BGcolor) (caddr FGcolor) frames-per-letter))
        (gimp-context-set-gradient gradient)
        )
      (begin ;; no gradient cycle
        (set! reds (algebraic-prog (car FGcolor) (car FGcolor) frames-per-letter))
        (set! greens (algebraic-prog (cadr FGcolor) (cadr FGcolor) frames-per-letter))
        (set! blues (algebraic-prog (caddr FGcolor) (caddr FGcolor) frames-per-letter))
        )
      )
    (set! size (cdr sizes))
    (set! src-layer (car (gimp-layer-copy background 1)))
    (gimp-image-add-layer image src-layer -1)
(set! sizes (map trunc sizes))    ;;
    ;; Note: start-height and end-height remain the same for all characters of a given size
    ;;       therefore we can pre-calc these values into a list
    (set! y-base (/ win-height 2) )
    (set! y-offsets (list (- y-base (/ start-height 2))))
    (while (pair? size) ;; compute the y-offsets
      (set! y-offsets (append y-offsets (list (- y-base (/ (cadr (gimp-text-get-extents-fontname "A" (car size) PIXELS font)) 2)))))
      (set! size (cdr size))
      )
    ;; for each word
    (set! word words)
    (gimp-progress-init "Generating letters" display)
    (while (pair? word)
      (set! letter (string->list (car word)))
      ;; for each letter
      (while (pair? letter)
        (set! size sizes)
        (set! y-offset y-offsets)
        (set! red reds)
        (set! green greens)
        (set! blue blues)
        (set! max-width 0) ;; keep track of the biggest char in each frame
        (if (pair? (cdr letter))
          (set! x-base (+ x-base (/ (char-width (string-append (car letter) (cadr letter)) font end-size) 2)))
          (set! x-base (+ x-base (/ (char-width (string-append (car letter) " ") font end-size) 2)))
          )
        ;; for each frame
        (while (pair? size)
          (if (pair? (cdr letter))
            (set! curr-width (char-width (string-append (car letter) (cadr letter)) font (car size)))
            (set! curr-width (char-width (string-append (car letter) " ") font (car size))) ;; assume space at end of word
            )
          (set! x (- x-base (/ curr-width 2)))
          (gimp-context-set-foreground (list (car red) (car green) (car blue)))
          (set! layer (car (gimp-text-fontname image -1 x (car y-offset) (car letter) 0 TRUE (car size) PIXELS font)))

          ;; Convert the text layer to a "normal" layer
          (plug-in-autocrop-layer RUN-NONINTERACTIVE image layer)
          ;; Text layer is now a graphic layer (so "layer bounds" could be determined, is there another way?)
          (if (and (cdr size) (= use-gradient TRUE))
            (plug-in-gradmap RUN-NONINTERACTIVE image layer)
            )
          (if (> curr-width max-width)
            (begin
              (set! ref-layer layer)
              (set! max-width curr-width)
              )
            )
          (gimp-rect-select image
              (car (gimp-drawable-offsets ref-layer))
              (cadr (gimp-drawable-offsets ref-layer))
              (car (gimp-drawable-width ref-layer))
              (car (gimp-drawable-height ref-layer))
              CHANNEL-OP-REPLACE 0 0
              )
          (set! image-bounds (update-bounds image-bounds (cdr (gimp-selection-bounds image))))
          (set! tmp-layer (car (gimp-layer-copy src-layer 1)))
          (gimp-image-add-layer image tmp-layer -1)  ;;
          (if (= alpha_bg TRUE) (gimp-selection-all image));
          (set! float-layer (car (gimp-selection-float tmp-layer 0 0))) ;; strip out the selected region
          (gimp-floating-sel-to-layer float-layer) ;; into a new layer
          (gimp-image-remove-layer image tmp-layer) ;; This layer no longer needed
          (gimp-image-lower-layer image float-layer)
          (if (cdr size) ;; if not last frame
            (gimp-layer-set-opacity layer opacity)
            )
          (set! layer (car (gimp-image-merge-down image layer EXPAND-AS-NECESSARY)))  ;; layers should be same size
          (if (>= curr-width max-width) ;; update ref-layer if necessary
            (set! ref-layer layer)
            )
          (gimp-drawable-set-name layer (string-append (car word) "-" (number->string layer 10 0 0)
              "(" (number->string letter-delay 10 0 0) "ms) " disposal ""))
          (set! y-offset (cdr y-offset))
          (set! red (cdr red))
          (set! green (cdr green))
          (set! blue (cdr blue))
          (set! size (cdr size)) ;; next frame
          (set! i (+ 1 i))
          (gimp-progress-update (/ i count))
          )
        ;; we need to merge the layer with the previous src-layer
        (gimp-image-raise-layer-to-top image src-layer)
        (set! tmp-layer (car (gimp-layer-copy layer 1))) ;; duplicate the letter
        (gimp-image-add-layer image tmp-layer 0)        ;; and place it on top
        (set! src-layer (car (gimp-image-merge-down image tmp-layer EXPAND-AS-NECESSARY)))
        (set! max-width 0)
        (set! x-base (+ x-base (/ curr-width 2)))
        (set! letter (cdr letter))
        )
      (gimp-drawable-set-name layer (string-append (car word) "-" (number->string layer 10 0 0)
              "(" (number->string word-delay 10 0 0) "ms) " disposal ""))

      (set! x-base (+ x-base (/ curr-width 2))) ;; increment for space
      (set! word (cdr word))
      )
    (gimp-image-remove-layer image src-layer) ;; This layer no longer needed

    (gimp-image-resize image
        (- (caddr image-bounds) (car image-bounds))
        (- (cadr (cddr image-bounds)) (cadr image-bounds))
        (- (car image-bounds))
        (- (cadr image-bounds))
        )

    (gimp-image-undo-disable image)
    (gimp-context-set-gradient GRAD-old)
    (gimp-context-set-foreground FG-old )
    (gimp-context-set-background BG-old )
    (gimp-image-clean-all image)
    ) ;; end of LET*
  ) ;; end of program


(script-fu-register
  "script-fu-letter-drop"
  "<Toolbox>/Xtns/FX-Foundry/Animation/Letter Drop"
  "Given a text string, generates an animated sequence where letters drop onto the background individually."
  "Saul Goode"
  "Saul Goode"
  "February 2006"
  ""
    SF-STRING _"Text"
        "The GIMP"
    SF-COLOR _"Foreground"  ;;     "color to use for letter"
        '( 0 0 0 )
    SF-COLOR _"Background"  ;;     "color to use for background"
        '( 255 255 255 )
    SF-TOGGLE _"Transparent background";; "Wether to use transparency in stead of bg color"
        FALSE
    SF-FONT  _"Font"        ;;      "font"
        "-*-utopia-bold-r-normal-*-50-*-*-*-p-*-*-*"
    SF-ADJUSTMENT _"Letter delay";; "time delay between letter in a word"
        '( 100 0 5000 1 100 0 0)
    SF-ADJUSTMENT _"Word delay"  ;;  "additional time delay for the space between words"
        '( 300 0 5000 1 100 0 0 )
    SF-ADJUSTMENT _"Starting size" ;;"animated letter initial size"
        '( 48 6 240 1 12 0 0 )
    SF-ADJUSTMENT _"Ending size";;   "animated letter final size"
        '( 12 6 240 1 12 0 0 )
    SF-ADJUSTMENT _"Frames per letter";; "number of frames for each animated letter"
        '( 5 2 200 1 5 0 0 )
    SF-ADJUSTMENT _"Opacity" ;; Opacity of "moving" letters
        '( 100 0 100 1 5 0 0 )
    SF-TOGGLE _"Geometric Progression";; "Letter size doubles each step"
        FALSE  ;; Otherwise letter size increases linearly
    SF-TOGGLE _"Use Color from Gradient";; "Sweep colors from gradient during animation"
        FALSE
    SF-GRADIENT _"Color Gradient" ;; "Gradient to use"
        "Full saturation spectrum CW"
  )


PS i don't know if help
with exactly the same setting but for the font used ( "VERDANA ", the most commune with "Arial" so for sure available in all the sizes ) the script worked, a


_________________
Image

http://www.flickr.com/photos/97844002@N00/


Top
 Profile  
 
 Post subject:
PostPosted: Wed May 07, 2008 9:50 pm 
Online
User avatar

Joined:
Mon Jun 13, 2005 11:15 am

Topics: 534
Posts: 6422

Find User's Topics
Hem a related question
Pango may be damaged by repetute crashes?

I ask because now Pango crashed again but this time i was just browsing the font and chosing one, i didn't click to execute the script (at least not by pourpose i can't exclude at 100% a accidental click on the enter bottom but i believe is improbable )


_________________
Image

http://www.flickr.com/photos/97844002@N00/


Top
 Profile  
 
 Post subject:
PostPosted: Thu May 08, 2008 4:07 pm 
Online
User avatar

Joined:
Mon Aug 22, 2005 8:35 pm

Topics: 76
Posts: 3525

Find User's Topics
To be honest, I plan to do nothing in way of fixing this problem. I suspect the cause of the problem is Pango and/or Cairo -- choosing a non-standard font size should not fail -- and further, I am led to believe that the problem has been fixed in version 1.4 of Pango.

You will either have to find someone else to pursue fixing this or put up with the problem until GIMP ships with a fixed Pango library. However, if you discover information that contradicts my assessment -- i.e. that the error is owing to my code -- I shall be glad to revisit it.


_________________
Any sufficiently primitive technology is indistinguishable from a rock.


Top
 Profile  
 
 Post subject:
PostPosted: Thu May 08, 2008 6:17 pm 
Online
User avatar

Joined:
Mon Jun 13, 2005 11:15 am

Topics: 534
Posts: 6422

Find User's Topics
Quote:
ou will either have to find someone else to pursue fixing this or put up with the problem until GIMP ships with a fixed Pango library.


1 Do you know which version of Pango use gimp 2.5 ?
I had this problem in windows with the stable version , vbut i may switch to my linux partition if that may solve or help to solve the problem

2 about something else i can only think to Alexia Death since she edited the code, i will post a message on the Fx Foundry forum
Also to let her know that a similar problem make the script dangerous to use for end users ( is not a big problem if a script abort, but if a script crash gimp all the work in progress get lost, and even if saved often as i did the Undo history get lost,


_________________
Image

http://www.flickr.com/photos/97844002@N00/


Top
 Profile  
 
 Post subject: Re: Letter Drop crash Pango
PostPosted: Sun May 18, 2008 2:15 am 
Online
User avatar

Joined:
Mon Jun 13, 2005 11:15 am

Topics: 534
Posts: 6422

Find User's Topics
i'm going to try on gimp 2.5 that require ,and so should use ,the last cairo and pango

Edit

Ok with 2.5 in linux things go much better
I imported to try all my fonts from windows and i i had much less errors

just one on ten by now, and much less disturbing since in linux pango do not crash just issues a error message and only the script abort... not gimp

Sample test was "PhotoComiX Presents" "PhotoComiX" was done correct then the script aborted(on other 9 try same text was used successfully)
(52 layers on supposed 100 were created, and with no defect) script apparently broke when facing a blanc space (or the letter immediately after but that "P" done successfully before :"P"was also the very first letter )

Quote:
Error while executing
(script-fu-letter-drop "PhotoComiX Presents :" '(0 0 0) '(255 255 255) TRUE "Folkard™" 100 300 26.892857142857142 146.11111111111111 5 100 FALSE FALSE "Full saturation spectrum CW")
Error: substring: end out of bounds: 1


So was not a special character or a font with not matching sizes
, was or a letter that the script has successfully animated before at same sizes
.. or the blanc space to create the error (but then is weird that blanc space do not create always errors )

or maybe too long line are not accepted"Error: substring: end out of bounds: 1 "?


_________________
Image

http://www.flickr.com/photos/97844002@N00/


Top
 Profile  
 
 Post subject: Re: Letter Drop crash Pango
PostPosted: Sun May 18, 2008 3:46 am 
Online
User avatar

Joined:
Mon Aug 22, 2005 8:35 pm

Topics: 76
Posts: 3525

Find User's Topics
I did find an error in my code; but it is not the cause of your problem -- in fact, the "error" is not really an error; the code just doesn't do anything.

Between lines 185 and 192 of the version posted above, you should see the following:

Code:
        (set! word (set! words (strbreakup text " ")))
        (while (pair? word)
          (set! letter (car word))
          (while (> 0 (string-length letter))
            (set! letter (substring word 1 (string-length letter)))
            )
          (set! word (cdr word))
          )


This can all be replaced with:

Code:
(set! words (strbreakup text " "))


I am unable to reproduce your error with GIMP 2.4.5 running on Slackware Linux.


_________________
Any sufficiently primitive technology is indistinguishable from a rock.


Top
 Profile  
 
Display posts from previous:  Sort by  

Post new topic Reply to topic
 [ 10 posts ] 



Who is online

Users browsing this forum: C0balt279 and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Related Website
Gimp tutorials database
All rights reserved © GimpTalk 2008
forum software by
phpBB