it-swarm.com.de

Ändern Sie die Größe der Ebene, um sie an die Leinwand anzupassen - Gimp

Ich verwende derzeit Gimp, um die Größe einiger Bilder zu ändern. Ich bin ein Webentwickler, verwende aber nicht wirklich Bildbearbeitungssoftware, da die meisten Bilder von Designern zur Verfügung gestellt werden. Daher ist das Gimp-Tool für mich sehr ungewohnt. Ich habe alle Tutorials und Hilfehandbücher auf der Gimp-Site durchgesehen, kann jedoch keine Antwort auf die einfachsten Fragen finden:

Wie können Sie die Größe einer Ebene ändern, um sie unter Beibehaltung des Seitenverhältnisses in die aktuelle Leinwand einzupassen?

Ich setze im Wesentlichen eine feste Größe in meinem Canvas ein und importiere ein Bild als Ebene in mein Projekt. Was ich dann tun möchte, ist, dieses viel größere Bild zu verkleinern, so dass es mit der Beibehaltung des Seitenverhältnisses in die Leinwand passt. Ich habe einen Weg gefunden, den Canvas an eine Ebene anzupassen, aber dies ist nicht das, wonach ich suche.

Jede Hilfe wäre sehr dankbar.

14
jezzipin

Dies ist einfach zu bewerkstelligen, aber unter den Hunderten von möglichen Optionen, die auf die Programmoberfläche gesetzt werden können, wurde es nicht "gewählt", dort zu sein.

Der Ausweg besteht darin, die Skriptfunktionen des Programms zu verwenden, um die Aktion auszuführen: Was programmatisch zu bestimmen ist, ist, ob das Verhältnis von Bild/Ebene größer ist als Auf Breite oder Höhe und Verwendung Dieses Verhältnis skaliert die Ebene und zentriert die Ebene.

Um Ihnen die Arbeit zu erleichtern, habe ich in einer einzigen Zeile Python-Code geschrieben. Sie können einfach in die Python-Konsole kopieren und einfügen (Filter-> Python-> Konsole), um den Effekt Oben anzuwenden Ebene des zuletzt geöffneten Bildes.

img = gimp.image_list()[0]; layer = img.layers[0]; factor = min (float(img.width) / layer.width, float(img.height) / layer.height); layer.scale(int(layer.width * factor), int(layer.height * factor)); layer.set_offsets((img.width - layer.width) / 2, (img.height - layer.height) / 2)

Da dies möglich ist, aber nicht praktikabel ist, umso mehr, weil es Ihnen nicht Erlaubt, das Bild oder die Ebene zur Größenänderung auszuwählen, habe ich es auch als Python-Skript für GIMP formatiert. Überprüfen Sie einfach Ihr Bearbeiten-> Voreinstellungen-> Ordner-> Plug-Ins für Ihr Plug-In-Verzeichnis. Fügen Sie den Inhalt unten als Datei ein (wenn unter Windows die Datei ".py" enthalten muss) Erweiterung: Unter Linux und Mac OS würde jede Erweiterung funktionieren, aber Sie müssen der Datei die "exectuable" -Eigenschaft geben).

Nach dem Neustart von GIMP befindet sich der neue Befehl bequem in Ihrem Ebenenmenü:

#! /usr/bin/env python
# coding: utf-8

from gimpfu import *

def scale_layer_to_canvas_size(img, layer):
    pdb.gimp_image_undo_group_start(img)
    factor = min (float(img.width) / layer.width,
                 float(img.height) / layer.height)

    layer.scale(int(layer.width * factor), int(layer.height * factor))
    layer.set_offsets((img.width - layer.width) / 2,
        (img.height - layer.height) / 2)
    pdb.gimp_image_undo_group_end(img)

register("scale-layer-to-canvas-size",
    "Scale layer to canvas size",
    "Scales the layer to canvas size, keeping the aspect ratio",
    "João S. O. Bueno", "Public domain", "2014",
    N_("Scale layer to canvas size..."),
    "*",
    [(PF_IMAGE, "image",       "Input image", None),
     (PF_DRAWABLE, "layer", "Input drawable", None), ], [],
    scale_layer_to_canvas_size,  menu="<Image>/Layer/",
    )

main()

Beachten Sie, dass es sich um den gleichen Code wie oben handelt, aber "img" und "layer" werden jetzt von GIMP Übernommen, wenn Sie die Aktion aus dem Menü auswählen. Es gibt zwei zusätzliche Aufrufe, so dass Beide scalignand Zentrieren wird als einzelne Aktion "rückgängig gemacht" - Der verbleibende Code wird dann erst auf der Kesselplatte eingestellt, um die Funktion mit GIMP zu registrieren

10
jsbueno

Diese Funktion ist aus irgendeinem Grund nicht in Gimp. Eine Alternative ohne Skripte ist:

Layer -> Scale Layer
10
Weston Ganger

Nachdem ich meine Leinwand mit Image -> Canvas verkleinert hatte (und die Ebenen nach Wunsch zentriert), erledigte Layer -> Layer to Image Size den Trick (ohne das Bild zu skalieren). Dies ist mit Gimp 2.8.16

7
duanev

Ab GIMP 2.10 ist dies standardmäßig in GIMP unter Layer -> Layer to Image Size Enthalten.

0
setholopolus
  1. Wählen Sie in Ihrer Toolbox die Skalierungsebene
  2. Klicken Sie auf das Bild/die Ebene, die Sie skalieren möchten
  3. Auf der linken Seite Option für Layer wählen Sie Auswahl statt Layer/Pfad
  4. Dann skalieren Sie die Skala.
  5. Klicken Sie nach der Größenänderung auf OK.
  6. Klicken Sie mit der rechten Maustaste auf das Bild und wählen Sie Bild> Bild an Auswahl anpassen.
  7. Klicken Sie erneut mit der rechten Maustaste, und wählen Sie Ebene> Ebene an Auswahl anpassen.
0
Denshio