Faisons une image LGTM avec GIMP! (Python-fu)

introduction

Le travail à distance augmente et les révisions de code se terminent par des échanges de commentaires. .. .. Solitaire: sanglot: Les images LGTM ajoutent de la couleur à ces revues de code! Cette fois, je vais créer une image LGTM en utilisant python-fu du logiciel d'édition d'image gratuit GIMP!

environnement

Livrables

Le formulaire rempli ressemble à ceci

Avant de modifier Après l'édition
before after

<détails>

source </ summary>

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

from gimpfu import *
import os

def plugin_main(image, layer, dir_path):
  if (not type(dir_path) == type("") or not len(dir_path)):
    gimp.message("Veuillez sélectionner un dossier")
    return

  add_lgtm(image, layer, dir_path)

def draw_text(image, size, text):
  layer = pdb.gimp_text_layer_new(image, text, "Hiragino Sans", size, 0)
  image.add_layer(layer)
  #Faites-le blanc
  pdb.gimp_text_layer_set_color(layer, (255, 255, 255, 1.0))
  return layer

def draw_shadow(image, text_layer):
  #Sélection de gamme
  pdb.gimp_selection_none(image)
  pdb.gimp_image_select_item(image, 0, text_layer)

  #Réglage de la couleur du dessin
  maskcolor = (0, 0, 0, 1.0)
  pdb.gimp_context_set_foreground(maskcolor)

  opacity = 15 #le rendre mince
  shadow_layer = gimp.Layer(image, "shadow", image.width, image.height, RGB_IMAGE, opacity, NORMAL_MODE)
  image.add_layer(shadow_layer, 1) #Ajouter au dos du texte

  #Ajouter un canal alpha
  pdb.gimp_layer_add_alpha(shadow_layer)
  pdb.gimp_edit_clear(shadow_layer)
  shadow_layer.fill(TRANSPARENT_FILL)

  #Développer la sélection
  pdb.gimp_selection_grow(image, 2)
  #remplir
  pdb.gimp_edit_fill(shadow_layer, FOREGROUND_FILL)
  
def cal_font_size(image):
  width = image.width / 4
  height = image.height
  max_font_size = 160
  return min([width, height, max_font_size])

def save_file(image, layer, dir_path, file_name): 
  file_path = dir_path + '/' + file_name
  #Enregistrer l'image
  pdb.file_png_save(image, layer, file_path, file_path, 1.0, 0, 0, 0, 0, 0, 0)

def add_lgtm(image, layer, dir_path): 
  font_size = cal_font_size(image)
  text_layer = draw_text(image, font_size, 'LGTM')

  #Alignement central haut et bas
  x = image.width/2 - text_layer.width/2
  y = image.height/2 - text_layer.height/2
  text_layer.set_offsets(x, y)

  draw_shadow(image, text_layer)

  #Intégration de couche
  flatten_layer = pdb.gimp_image_flatten(image)

  #sauvegarder
  file_name = 'lgtm.png'
  save_file(image, flatten_layer, dir_path, file_name)

register(
  "python_fu_add_lgtm",
  "Add LGTM",
  "Add LGTM text",
  "am",
  "am",
  "2020/5/11",
  "<Image>/Filters/Languages/Python-Fu/AddLGTM", 
  "RGB*, GRAY*", 
  [
  (PF_DIRNAME, "directory_path", "Save directoryPath", ""),
  ],
  [], 
  plugin_main) 

main()

Copiez la source ci-dessus, accordez des autorisations, stockez-la dans le dossier suivant et démarrez GIMP.

Library/Application Support/GIMP/2.10/plug-ins
python-fu

AddLGTM est ajouté à Filter (R) → Python-Fu comme indiqué dans l'image.

Comment utiliser

L'image avec «LGTM» ajouté sera enregistrée dans le dossier sélectionné dans la procédure ci-dessous.

  1. Ouvrez l'image avec GIMP
  2. Filtre (R) → Python-Fu → Ajouter une sélection LGTM
  3. Sélectionnez la destination d'enregistrement
  4. OK

Comment faire

Veuillez vous référer à cet article que j'ai écrit plus tôt pour savoir comment créer python-fu. Écrire sur la façon de créer un script GIMP (python-fu)? : poinçon :: poinçon:

Étant donné que j'ai dû utiliser diverses procédures telles que l'ajout de caractères et l'ajout de bordures de caractères pour celle que j'ai créée cette fois, je vais décrire comment rechercher des procédures.

Cet article a été très utile. Correction du niveau par lots des images avec GIMP (Python-Fu)

Comment trouver une procédure

  1. Recherchez la fonction correspondante dans GIMP (programme d'édition d'images GNU)
  2. Utilisez l'Aide GIMP (H) → Navigateur de procédures (B) pour rechercher la fin de l'URL de la page concernée.

Par exemple, si vous souhaitez sélectionner une chaîne LGTM et rechercher une procédure pour étendre cette sélection.

Il existe une page appelée 4.12. Développer la sélection ... L'URL est la suivante. https://docs.gimp.org/ja/gimp-selection-grow.html Si vous recherchez gimp-selection-grow dans l'aide de GIMP (H) → Navigateur de procédures (B), ce qui suit sera frappé.

procedure

Vous pouvez étendre la sélection de 2px en faisant pdb.gimp_selection_grow (image, 2): clap:

à la fin

J'ai essayé de le faire parce que je voulais utiliser GIMP depuis longtemps, mais c'est gênant de l'ouvrir avec GIMP pour ajouter LGTM: confus: Je pense qu'il existe de nombreux autres services pour créer des images LGTM, vous pouvez donc les rechercher: rolling_eyes: Le script a des commentaires, donc si vous ne l'aimez pas, veuillez le réécrire et l'utiliser! Produisons en masse des images LGTM ensemble et ajoutons de la couleur à la révision du code: feu:

Recommended Posts

Faisons une image LGTM avec GIMP! (Python-fu)
Créez un lot d'images et gonflez avec ImageDataGenerator
Créez des jeux avec Pygame
Créer un filtre avec scipy
Centrer l'image avec python-pptx
LGTM --Composez des images LGTM avec des vidéos et des photos et produisez une animation GIF
Créez une API Web capable de fournir des images avec Django
Télécharger automatiquement des images avec grattage
Images en bordure avec python Partie 1
Créer un environnement avec virtualenv
Créer une API avec Django
Créer / rechercher / créer une table avec PynamoDB
Créer un gif 3D avec python3
Enregistrez des images avec le web scraping
tracé Créer un graphique avec un bouton
Créer une page d'accueil avec django
Créer une visionneuse d'images avec Tkinter
Créez des règles personnalisées avec ElastAlert
Combinez deux images avec Django
Créer un répertoire avec python
Créer un fichier xlsx avec XlsxWriter
Commencez dans 5 minutes GIMP Python-Fu
Créez un programme qui peut générer votre image préférée avec Selenium