Welcome, Guest |
You have to register before you can post on our site.
|
Forum Statistics |
» Members: 4,592
» Latest member: GAGNEPAIN
» Forum threads: 7,465
» Forum posts: 40,796
Full Statistics
|
Latest Threads |
Layer Mode List in Gimp3
Forum: General questions
Last Post: sallyanne
1 hour ago
» Replies: 3
» Views: 130
|
Gimp 3 - hand shaped curs...
Forum: Gimp 2.99 & Gimp 3.0
Last Post: Thomasson
5 hours ago
» Replies: 2
» Views: 89
|
Gimp.ParamSpec.int() defa...
Forum: Extending the GIMP
Last Post: owierda
Yesterday, 05:23 PM
» Replies: 2
» Views: 129
|
Open, save buttons on bot...
Forum: Gimp 2.99 & Gimp 3.0
Last Post: GrumpyDeveloper
07-06-2025, 08:36 PM
» Replies: 6
» Views: 2,672
|
Export all opened images ...
Forum: Extending the GIMP
Last Post: Bookman
07-06-2025, 01:53 PM
» Replies: 18
» Views: 9,766
|
Can tooltip display time ...
Forum: Gimp 2.99 & Gimp 3.0
Last Post: CmykStudent
07-06-2025, 12:02 PM
» Replies: 3
» Views: 196
|
v3.04 Script Error sg-sav...
Forum: Extending the GIMP
Last Post: rich2005
07-06-2025, 10:40 AM
» Replies: 3
» Views: 223
|
Technique for removing ov...
Forum: General questions
Last Post: sallyanne
07-06-2025, 07:16 AM
» Replies: 13
» Views: 1,234
|
'Transparent' area is bro...
Forum: General questions
Last Post: sallyanne
07-06-2025, 06:24 AM
» Replies: 5
» Views: 269
|
AIGoR - Artificial Image ...
Forum: Other graphics software
Last Post: vitforlinux
07-05-2025, 12:45 PM
» Replies: 11
» Views: 3,379
|
|
|
How to change a script to work with alpha channel? |
Posted by: mholder - 10-06-2017, 03:17 PM - Forum: General questions
- Replies (5)
|
 |
There is a script called 'tile_shuffle.scm', and I want to edit it a little.
This script does not work with alpha channels. Is there any way to edit it to shuffle tiles with alpha values?
Here's the script:
Code:
; tile_shuffle.scm
; by Rob Antonishen
; http://ffaat.pointclark.net
; Version 1.0 (20090118)
; Description
; Shuffles tiles of the image
; 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; 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.
;
; The GNU Public License is available at
; http://www.gnu.org/copyleft/gpl.html
(define (script-fu-tile_shuffle img inLayer inX inY)
(let* (
(width (car (gimp-image-width img)))
(height (car (gimp-image-height img)))
(inX (min inX width))
(inY (min inY height))
(xTiles (trunc (/ width inX)))
(yTiles (trunc (/ height inY)))
(tile1 0)
(newlayer 0)
(x0 0)
(y0 0)
(x1 0)
(y1 0)
(counter 0)
(swap 0)
(temp 0)
(tilelist (cons-array (* xTiles yTiles) 'double))
(mode (car (gimp-layer-get-mode inLayer)))
)
(gimp-context-push)
(gimp-image-undo-group-start img)
; set up progress bar
(gimp-progress-set-text _"Shuffling Tiles")
;fill list
(while (< counter (* xTiles yTiles))
(begin
(aset tilelist counter counter)
(set! counter (+ counter 1))
)
)
;shuffle list
(while (> counter 1)
(begin
(set! swap (rand counter))
(set! counter (- counter 1))
(set! temp (vector-ref tilelist counter))
(aset tilelist counter (vector-ref tilelist swap))
(aset tilelist swap temp)
)
)
;create a working layer
(set! newlayer (car (gimp-layer-new-from-drawable inLayer img)))
(gimp-image-add-layer img newlayer (car (gimp-image-get-layer-position img inLayer)))
(gimp-layer-set-mode newlayer NORMAL-MODE)
;cut and paste tiles based on the shuffled array
(set! counter 0)
(while (< counter (* xTiles yTiles) )
(begin
(gimp-progress-update (/ counter (+ (* xTiles yTiles) (if (> (remainder width inX) 0) yTiles 0) (if (> (remainder height inY) 0) xTiles 0) ))) ;update progress bar
(set! x0 (* (* (remainder counter xTiles)) inX))
(set! y0 (* (trunc (/ counter xTiles)) inY))
(set! x1 (* (* (remainder (vector-ref tilelist counter) xTiles)) inX))
(set! y1 (* (trunc (/ (vector-ref tilelist counter) xTiles)) inY))
(gimp-rect-select img x0 y0 inX inY CHANNEL-OP-REPLACE FALSE 0)
(gimp-edit-copy inLayer)
(set! tile1 (car (gimp-edit-paste newlayer FALSE)))
(set! tile1 (car (gimp-drawable-transform-2d-default tile1 x0 y0 1 1 0 x1 y1 FALSE 0)))
(set! counter (+ counter 1))
)
)
(gimp-floating-sel-anchor tile1)
;edge tiles
(if (> (remainder width inX) 0)
(begin
(set! tilelist (cons-array yTiles 'double))
(set! counter 0)
;fill list
(while (< counter yTiles)
(begin
(aset tilelist counter counter)
(set! counter (+ counter 1))
)
)
;shuffle list
(while (> counter 1)
(begin
(set! swap (rand counter))
(set! counter (- counter 1))
(set! temp (vector-ref tilelist counter))
(aset tilelist counter (vector-ref tilelist swap))
(aset tilelist swap temp)
)
)
;vertical edge
(set! x0 (* xTiles inX))
(set! x1 (* xTiles inX))
;cut and paste tiles based on the shuffled array
(set! counter 0)
(while (< counter yTiles)
(begin
(gimp-progress-update (/ (+ counter (* xTiles yTiles)) (+ (* xTiles yTiles) (if (> (remainder width inX) 0) yTiles 0) (if (> (remainder height inY) 0) xTiles 0)))) ;update progress bar
(set! y0 (* counter inY))
(set! y1 (* (vector-ref tilelist counter) inY))
(gimp-rect-select img x0 y0 (remainder width inX) inY CHANNEL-OP-REPLACE FALSE 0)
(gimp-edit-copy inLayer)
(set! tile1 (car (gimp-edit-paste newlayer FALSE)))
(set! tile1 (car (gimp-drawable-transform-2d-default tile1 x0 y0 1 1 0 x1 y1 FALSE 0)))
(set! counter (+ counter 1))
)
)
(gimp-floating-sel-anchor tile1)
)
)
;edge tiles
(if (> (remainder height inY) 0)
(begin
(set! tilelist (cons-array xTiles 'double))
(set! counter 0)
;fill list
(while (< counter xTiles)
(begin
(aset tilelist counter counter)
(set! counter (+ counter 1))
)
)
;shuffle list
(while (> counter 1)
(begin
(set! swap (rand counter))
(set! counter (- counter 1))
(set! temp (vector-ref tilelist counter))
(aset tilelist counter (vector-ref tilelist swap))
(aset tilelist swap temp)
)
)
;horizontal edge
(set! y0 (* yTiles inY))
(set! y1 (* yTiles inY))
;cut and paste tiles based on the shuffled array
(set! counter 0)
(while (< counter xTiles)
(begin
(gimp-progress-update (/ (+ counter (* xTiles yTiles) xTiles) (+ (* xTiles yTiles) (if (> (remainder width inX) 0) yTiles 0) (if (> (remainder height inY) 0) xTiles 0)))) ;update progress bar
(set! x0 (* counter inX))
(set! x1 (* (vector-ref tilelist counter) inX))
(gimp-rect-select img x0 y0 inX (remainder height inY) CHANNEL-OP-REPLACE FALSE 0)
(gimp-edit-copy inLayer)
(set! tile1 (car (gimp-edit-paste newlayer FALSE)))
(set! tile1 (car (gimp-drawable-transform-2d-default tile1 x0 y0 1 1 0 x1 y1 FALSE 0)))
(set! counter (+ counter 1))
)
)
(gimp-floating-sel-anchor tile1)
)
)
(set! inLayer (car (gimp-image-merge-down img newlayer EXPAND-AS-NECESSARY)))
(gimp-layer-set-mode inLayer mode)
(gimp-progress-end)
(gimp-image-undo-group-end img)
(gimp-displays-flush)
(gimp-context-pop)
)
)
(script-fu-register "script-fu-tile_shuffle"
"<Image>/Filters/Distorts/_Tile Shuffle..."
"Shuffles image tiles"
"Rob Antonishen"
"Rob Antonishen"
"Jan 2009"
"RGB* GRAY*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
SF-ADJUSTMENT "Tile X Size" (list 100 4 1000 1 10 0 SF-SLIDER)
SF-ADJUSTMENT "Tile Y Size" (list 100 4 1000 1 10 0 SF-SLIDER)
)
|
|
|
cut shapes out of digital paper |
Posted by: kbrown2509 - 10-04-2017, 11:18 PM - Forum: General questions
- Replies (1)
|
 |
Hi, I am very new to GIMP and I am wanting to use it for digital scrapbooking. I have downloaded some papers and elements and can add them to my photos to create a page. What I want to do now is to create a shape (flower) or trace an existing one and then cut it out of my exisiting digital papers. Can anyone advise how this can be done. Cheers
|
|
|
clone tool in xubuntu 16.04 |
Posted by: petter5 - 10-04-2017, 02:49 PM - Forum: General questions
- Replies (2)
|
 |
clone tool in xubuntu 16.04
Hi ! My first post to this forum. When using windows, the clone tool works as expected. Using Xubuntu 16.04 - the clone tool does not perform any clone operation after pressing ctrl+click as usual and start to clone - you can see the +is following, but the area to clone does not fill up with the cloned area.
According to google search "xubuntu show mouse position on Control" there could be due to a mouse pointer setting, but really - I have been unable to find any solution to get this to work. Since I prefer Linux 99% over windows, I would appreciate help to get this to work also under Ubuntu.
|
|
|
Cropping - Custom Crop Guides |
Posted by: SpiDeeWebb - 10-04-2017, 07:33 AM - Forum: General questions
- Replies (5)
|
 |
Hello All,
Bottom Line Up Front: I want to create a new cropping guide for passports.
I'm having a little trouble with terminology.
I can't figure out what the heck developers refer to these as.
I'm seeing under the presets they're just referred to simply as 'guide center-line' 'guide rule-of-thirds.'
I thought it'd be a simple matter of loading it up in GCC searching the right term, and playing around with it.
I just can't for the life of me find them to begin with.
|
|
|
|