2017-06-03 2 views
0

Mon objectif est de mettre à l'échelle une image en utilisant la bibliothèque python-fu pour gimp de manière uniforme. Cela signifie que spécifier la largeur/hauteur devrait être suffisant pour la mise à l'échelle. Gimp devrait changer la hauteur/largeur en conséquence.Calque uniformément l'image en utilisant python-fu dans Gimp

Dans l'interface graphique Gimp il est mis à la bascule marquée:

enter image description here

J'utilise la ligne suivante à l'échelle des images

pdb.gimp_layer_scale(visibleLayer, 435, 100, True) 

quelles échelles la couche à la largeur et la hauteur spécifiées.

Ne pourrait pas une autre manière de le faire uniformément comme spécifié ci-dessus.

Répondre

0

Utilisé le code suivant pour calculer la hauteur cible à l'échelle de et cela a fonctionné.

def calculateHeight(logoLayer): 
     if logoLayer.width < TARGET_LAYER_WIDTH: 
      return round(logoLayer.height * (TARGET_LAYER_WIDTH * 1.0/logoLayer.width)) 
     return logoLayer.height 
0

Pour conserver le même rapport d'aspect, vous venez de faire un peu de maths:

newHeight = oldHeight * (newWidth/oldWidth) 

ou au ralenti

  • lorsque vous définissez une nouvelle largeur, ce qui définit un facteur d'agrandissement égal à newWidth/oldWidth
  • puis vous appliquez ce facteur d'agrandissement à la hauteur en utilisant la formule ci-dessus.