GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Générer des vignettes pour le texte ?

J'ai besoin de générer des vignettes pour certains fichiers texte.
De toute évidence, le système a en quelque sorte la capacité de faire exactement cela (voir la capture d'écran). Existe-t-il un moyen d'accéder à ces images et de simplement les copier pour une utilisation ultérieure ?

Ou existe-t-il une commande spéciale (outil) pour cela ?

J'ai regardé ceci :
miniature de la ligne de commande

Et ceci :
Comment puis-je demander à Nautilus de pré-générer des vignettes ?

Qui étaient utiles mais aucun ne pouvait traiter le texte.

Réponse acceptée :

Utiliser Imagemagick pour créer des icônes de texte

Basé sur le même principe qu'ici, le script ci-dessous crée une icône texte à partir d'un fichier texte à l'aide d'Imagemagick.

La couleur de l'image d'arrière-plan arrondie et la couleur du texte peuvent être définies dans l'en-tête d'un script (ainsi qu'un certain nombre d'autres propriétés).

Ce qu'il fait
Il lit le fichier texte, prend les quatre premières lignes (définies dans n_lines = 4 ), les sept premiers caractères (définis dans n_chars = 10 ) de chaque ligne, et crée une superposition sur une image de la taille, définie par ex. psize = "100x100" .

Comment utiliser

Le script a besoin de imagemagick à installer :

sudo apt-get install imagemagick

Ensuite :

  1. Copiez le script dans un fichier vide
  2. Enregistrez-le sous create_texticon.py
  3. défini dans la section d'en-tête :

    • la couleur de fond de l'icône
    • la couleur du calque de texte de l'icône
    • La taille de l'icône créée
    • Le nombre de lignes à afficher dans l'icône
    • Le nombre de (premiers) caractères par ligne à afficher dans l'icône
    • Le chemin où enregistrer l'image
  4. Exécutez-le avec votre fichier texte comme argument :

    python3 /path/to/create_texticon.py </path/to/textfile.txt>
    

Le scénario

#!/usr/bin/env python3
import subprocess
import sys
import os
import math

temp_dir = os.environ["HOME"]+"/"+".temp_iconlayers"
if not os.path.exists(temp_dir):
    os.mkdir(temp_dir)

# --- 
bg_color = "#DCDCDC"                                # bg color
text_color = "black"                                # text color
psize = [64, 64]                                    # icon size
n_lines = 4                                         # number of lines to show
n_chars = 9                                         # number of (first) characters per line
output_file = "//eadn-wc01-5196795.nxedge.io/path/to/output/icon.png"            # output path here (path + file name)
#---

temp_bg = temp_dir+"/"+"bg.png"; temp_txlayer = temp_dir+"/"+"tx.png"
picsize = ("x").join([str(n) for n in psize]); txsize = ("x").join([str(n-8) for n in psize])

def create_bg():
    work_size = (",").join([str(n-1) for n in psize])
    r = str(round(psize[0]/10)); rounded = (",").join([r,r])
    command = "convert -size "+picsize+' xc:none -draw "fill '+bg_color+
              ' roundrectangle 0,0,'+work_size+","+rounded+'" '+temp_bg
    subprocess.call(["/bin/bash", "-c", command])

def read_text():
    with open(sys.argv[1]) as src:
        lines = [l.strip() for l in src.readlines()]
        return ("n").join([l[:n_chars] for l in lines[:n_lines]])

def create_txlayer():
    subprocess.call(["/bin/bash", "-c", "convert -background none -fill "+text_color+
                      " -border 4 -bordercolor none -size "+txsize+" caption:"+'"'+read_text()+'" '+temp_txlayer])

def combine_layers():
    create_txlayer(); create_bg()
    command = "convert "+temp_bg+" "+temp_txlayer+" -background None -layers merge "+output_file
    subprocess.call(["/bin/bash", "-c", command])

combine_layers

Ubuntu
  1. Guide complet d'utilisation d'AsciiDoc sous Linux

  2. Générer des empreintes digitales Hpkp pour toute la chaîne de certificats ?

  3. Modifier un courrier entrant de Text/plain à Text/html ?

  4. Virtualbox 5.1.2 pour Ubuntu 14.04.5 ?

  5. Raccourcis dans Gvim ?

Comment installer Tig - Interface en mode texte pour Git sur Ubuntu 16.04

eSpeak NG - Un synthétiseur de synthèse vocale pour Linux

Micro - Un éditeur de texte basé sur la ligne de commande pour Linux

Connexion texte

Comment générer des CSR pour SSL dans cPanel ?

Matériel de terminal texte (pour Linux)