PDA

Vollständige Version anzeigen : Automatisieren: Auswahl-Ausschneiden-Zuschneiden-Skalieren-Kopieren


Knys
11.04.2009, 00:11
Hallo zusammen. Ich bin ganz neuer Gimp-User und habe ein großes Projekt vor. Ich möchte mir ein grosses Bild aus ganz vielen kleinen Photoausschnitten zusammensetzen. Dafür habe ich mir jetzt erstmal das Grundbild samt magnetischem Raster gemacht, in dass ich die ganzen kleinen photos (49x49 mm - 300/300 PPI) reinfüge un positioniere. Mein Arbeitsschritt ist immer genau der gleiche: Ich öffe ein gewisses Bild 1. dann mache ich eine quadratische Auswahl 2. dann klicke ich -Auf Auswahl zuschneiden 3. dann klicke ich -Bild Skalieren -------------------in dem Menü muss ich dann immer auf 49,02, 49,02 stellen und manchmal auch die PPI nochmal 4. dann klicke ich auf-Ausschneiden und füge dass dann im grossen Bild ein Gibt es denn die Möglichkeit die Schritte nach der Auswahl, sprich 2-4 irgendwie mit nem Macro oder so zu automatisieren? Wäre super und würde mir unheimlich viel Arbeit sparen :) Bind üfr jeden Tip dankbar, frohe Ostern, Knys

Spell
11.04.2009, 00:30
Für sowas gibts es Skripte. Ein Tutorial findest du hier (http://wiki.gimpforum.de/wiki/Skript-Fu).

PKHG
11.04.2009, 09:08
Es gibt in Gimp die Guillotine!

Man zieht die Hilfslinien von oben nach unten und von links nach rechts om ein 'Raster' von Rechtecken zu bekommen!
Dann gehe zu Bild -> Transformation-> Guillotine

Ein Bild wird in 'viele' kleine zerschnitten

Vielleicht hilfts?

Knys
11.04.2009, 11:00
@Spell
Ok, dann werde ich mich wohl mal daran machen müssen, dankeschön.


@PKHG
Mit der Guillotine wäre der Arbeitschritt grade flaschrum, ich will ja ein großes Bild aus vielen kleinen zusammensetzen, die ich aus verschiedenen Photos rausschneide.

PKHG
11.04.2009, 12:02
Bah, da hab ich mal wieder schlecht gelesen.

Als 'Anfänger' da ein Script schreiben ist nicht so einfach ....

Du hast also n * m (rechteckige) Bilder, alle gleich groß?
Und wie müssten die geordnet werden?
Sind die nummeriert 1.jpg 2.jpg.
Weißt du die Größe des Ergebnisses 'vorher'?

Ein script um mehrere Bilder laden zu lassen hab ich nämlich (schon) ... und die dann an der richtigen Stelle einkleben sollte auch nicht allzu schwer sein ...

Knys
11.04.2009, 15:22
Ne, die Bilder habe ich noch nicht, also zumindest noch nicht die Auswahl aus den Bildern.

Ich öffne nach belieben die Bilder die alle auf meiner Festplatte sind, und wenn ich ein passendes finde lade ich dass ebenfalls in Gimp. Das Endbild (in das ich also all die kleinen quadratischen Bilder einfüge ((alle 49x49mm)) ) hab ich schon geöffnet währenddessen.
Wenn ich dann also ein passendes finde vollziehe ich immer die gleichen (obigen) drei Schritte. Und diese drei Schritte hätte ich gerne als Skript, weil ich sie wie gesagt bei jedem Bild vollziehe.

PKHG
12.04.2009, 08:33
Ein Anfang?
Zum probieren:
1. Lade dein grosses Bild
2. Lade ein anderes Bild und benutze das Rechtecktool um etwas auszuschneiden
2a (vielleicht das Rechtecktool doppelt klicken und dafür sorgen, dass du nur quadratische auswählen kannst (wegen 49 x 49 )!! Fixed aspect ratio!
3. Öffne die Script Fu Konsole (über Menu Scripts)
4 Kopiere das ganze Script (hier unten!) und klebe es (als ganzes) unten in die Eingabezeile der Konsole (Return!) dann muss darüber das Script zusehen sein und ganz unten cutAndScale,,,, das zeigt dir, dass eine neue Funktion erstellt ist
5 Imagenummer ablesen von dem Bild in dem das Quadrat ausgewählt wurde, steht in der obersten Zeile des Bildes (z.B meinbild.png-4.0 und dann wäre 4 die Zahl die du benutzen müsstest)
6 Tipp in die Eingabezeile der Konsole: (cutAndScale 4) (4 natürlich durch DEINE Zahl ersetzen!)

Resultat, du siehst den Ausschnitt als ausgeschnittenes und skaliertes Bild und außerdem kannst du im großen Bild mit <Strg>c das 49.02 x 49.02 skalierte Bild kopieren und die richtige Stelle schieben und verankern!





file:///C:/Users/Peter/AppData/Local/Temp/moz-screenshot.jpg(define (cutAndScale image)
(let* ((selection (cdr (gimp-selection-bounds image)))
(x1 (car selection))
(y1 (cadr selection))
(x2 (caddr selection))
(y2 (cadddr selection))
(width (- x2 x1))
(height (- y2 y1))
(xoffset x1)
(yoffset y1))
(gimp-image-crop image width height xoffset yoffset)
(gimp-image-scale image 49.02 49.02)
(gimp-edit-copy-visible image)))

Knys
12.04.2009, 11:22
Wow, zunächst mal vielen Dank das Du Dich hier so einsetzt!! Werde es sobald wie möglich probieren und Bericht erstatten.

Frohe Ostern, Knys

Knys
12.04.2009, 14:52
> file:///C:/DSC00075.JPG(define (cutAndScale image)
(let* ((selection (cdr (gimp-selection-bounds image)))
(x1 (car selection))
(y1 (cadr selection))
(x2 (caddr selection))
(y2 (cadddr selection))
(width (- x2 x1))
(height (- y2 y1))
(xoffset x1)
(yoffset y1))
(gimp-image-crop image width height xoffset yoffset)
(gimp-image-scale image 49.02 49.02)
(gimp-edit-copy-visible image)))
Error: eval: unbound variable: file:///C:/DSC00075.JPG


Das kommt dabei raus. Aber wenn ich das richtig verstehe müsste dann bei jeder Anwendung auch der Pfad des Bildes geändert werden, order?
Gäbe es denn auch eine Möglichkeit, dem Skript einfach zu sagen:

"Führe dies bei dem momentan geöffneten Bild aus" ?

PKHG
12.04.2009, 17:00
> file:///C:/DSC00075.JPG<<<<<<<DIES darf nicht da sein!!!
(define (cutAndScale image)
(let* ((selection (cdr (gimp-selection-bounds image)))
(x1 (car selection))
(y1 (cadr selection))
(x2 (caddr selection))
(y2 (cadddr selection))
(width (- x2 x1))
(height (- y2 y1))
(xoffset x1)
(yoffset y1))
(gimp-image-crop image width height xoffset yoffset)
(gimp-image-scale image 49.02 49.02)
(gimp-edit-copy-visible image)))
Error: eval: unbound variable: file:///C:/DSC00075.JPG
Das kommt dabei raus. Aber wenn ich das richtig verstehe müsste dann bei jeder Anwendung auch der Pfad des Bildes geändert werden, order?
Gäbe es denn auch eine Möglichkeit, dem Skript einfach zu sagen:

"Führe dies bei dem momentan geöffneten Bild aus" ?

Siehe oben <<<< Die Ursache der Fehlermeldung.
Ab (define ...) bis zu image))) muss in die Eingabezeile kommen.

Und dann ist de Zahl im Gimp Bild ganz oben was man benutzen kann bzw. muss!

Knys
12.04.2009, 17:51
> cutAndScale 3
#<CLOSURE>3


Habe jetzt dass Skript erfolgreich erstell, aber es entfalltet keine Wirkung. Wenn ich "CutAndScale 3" eingebe kommt nur obiger Code, das Bild bleibt wie es ist.

PKHG
12.04.2009, 18:59
> cutAndScale 3
#<CLOSURE>3


Habe jetzt dass Skript erfolgreich erstell, aber es entfalltet keine Wirkung. Wenn ich "CutAndScale 3" eingebe kommt nur obiger Code, das Bild bleibt wie es ist.
Genau nachmachen!
(cutAndScale 3)
muss in die Eingabezeile!

Knys
12.04.2009, 19:03
Wow, klapp hervorragend bis auf die Kleinigkeit das es 49x49 Pixel sind und nicht mm, aber das werde ich wohl irgendwie hinbekommen. Vielen vielen Dank für Deine Hilfe!

PKHG
12.04.2009, 19:33
OK, fein,
49,2 mm = 139 pixel (im Script anpassen) ;-)

JanKardel
12.04.2009, 19:50
OK, fein,
49,2 mm = 139 pixel (im Script anpassen) ;-)

Je nach Auflösung. Bei 72 Pixel/in mag das stimmen, aber wenn er es ausdrucken will und z.B. 300 Pixel/in einstellt sind das 579 Pixel.

PKHG
13.04.2009, 08:03
Je nach Auflösung. Bei 72 Pixel/in mag das stimmen, aber wenn er es ausdrucken will und z.B. 300 Pixel/in einstellt sind das 579 Pixel.
Das mit der Auflösung habe ich im Script-Fu Funktion nicht finden können ..

aber muss das original dann nicht auch irgendwie mit den ppi stimmen?

Das ist ein Gebiet auf dem ich noch blutiger Anfänger bin :|