web-dev-qa-db-fra.com

Redimensionner le calque pour l’adapter à la toile - Gimp

J'utilise actuellement Gimp pour redimensionner certaines images. Je suis un développeur Web, mais je n'utilise pas beaucoup de logiciels de manipulation d'images, car la plupart des images sont fournies par des concepteurs, de sorte que l'outil Gimp m'est très inconnu. J'ai parcouru tous les tutoriels et guides d'aide sur le site Gimp mais je ne trouve pas de réponse à la plus simple des questions:

Comment redimensionner un calque pour l'adapter au canevas actuel tout en conservant les proportions?

Je fixe essentiellement une taille fixe sur mon canevas et importe une image en tant que calque dans mon projet. Ce que je souhaite ensuite faire est de réduire cette image beaucoup plus grande afin qu’elle puisse tenir dans le canevas avec le rapport de format préservé. J'ai trouvé un moyen d'adapter le canevas à un calque, mais ce n'est pas ce que je recherche.

Toute aide serait grandement appréciée.

14
jezzipin

C'est facile à faire, mais parmi les centaines d'options possibles à intégrer à l'interface utilisateur du programme, il n'a pas été "élu" pour y être.

La solution consiste à utiliser les fonctionnalités de script du programme pour effectuer l'action: Ce qu'il faut déterminer par programme, c'est si le rapport image/calque est plus grand Sur la largeur ou la hauteur, et utiliser ce rapport pour l'échelle. tha couche, puis centrez la couche.

Pour votre commodité, j’ai écrit le code Python correspondant à cela sur une seule ligne. Vous pouvez simplement copier et coller sur la console Python (filters-> python-> console) pour appliquer l’effet Sur la couche supérieure de la dernière image ouverte.

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)

Comme cela peut être fait, mais que ce n’est pas pratique, encore plus parce que cela ne vous permet pas de choisir l’image ou le calque à redimensionner, je l’a formaté en tant que script python pour GIMP également. éditez-> préférences-> dossiers-> plug-ins pour votre répertoire de plug-ins, collez le contenu ci-dessous en tant que fichier (si sous Windows, le fichier doit avoir l'extension ".py". Sous Linux et Mac OS, n’importe quelle extension fonctionnerait, mais vous devez donner au fichier La propriété "exectuable").

Après avoir redémarré GIMP, la nouvelle commande sera située dans votre menu Calque:

#! /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()

Notez qu'il s'agit du même code que ci-dessus, mais "img" et "layer" sont maintenant fournis par GIMP Lors du choix de l'action dans le menu, et il y a deux appels supplémentaires de sorte que "en une seule action - le code restant est simplement une plaque de chaudière pour enregistrer la fonction avec GIMP

10
jsbueno

Cette fonctionnalité n'est pas dans Gimp pour une raison quelconque. Une alternative sans script est:

Layer -> Scale Layer
10
Weston Ganger

Après avoir réduit ma toile à l'aide de Image -> Canvas (et centré les calques à votre guise), le Layer -> Layer to Image Size a fait l'affaire (sans redimensionner l'image). Ceci est avec gimp 2.8.16

7
duanev
  1. Dans votre boîte à outils, choisissez le calque d'échelle
  2. Cliquez sur l'image/couche que vous souhaitez mettre à l'échelle
  3. Sur l'option de gauche pour les calques, choisissez la sélection au lieu de calques/chemin
  4. Puis redimensionnez l'échelle.
  5. Choisissez OK après avoir redimensionné.
  6. Cliquez avec le bouton droit sur l'image et sélectionnez Image> Ajuster l'image à la sélection.
  7. Cliquez à nouveau avec le bouton droit de la souris, choisissez Calque> Ajuster le calque à la sélection.
0
Denshio