GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Genera miniature per il testo?

Ho bisogno di generare miniature per alcuni file di testo.
Ovviamente il sistema in qualche modo ha la capacità di fare esattamente questo (vedi la schermata). C'è un modo per accedere a queste immagini e copiarle per un uso successivo?

O esiste un comando (strumento) speciale per questo?

Ho guardato questo:
miniatura della riga di comando

E questo:
Come posso istruire Nautilus a pre-generare le miniature?

Che erano utili ma nessuno poteva gestire il testo.

Risposta accettata:

Utilizzare Imagemagick per creare icone di testo

Basato sullo stesso principio di qui, lo script seguente crea un'icona di testo da un file di testo con l'aiuto di Imagemagick.

Il colore dell'immagine di sfondo arrotondata e il colore del testo possono essere impostati nell'intestazione di uno script (oltre a una serie di altre proprietà).

Cosa fa
Legge il file di testo, prende le prime quattro righe (impostate in n_lines = 4 ), i primi sette caratteri (impostati in n_chars = 10 ) di ciascuna linea e crea una sovrapposizione su un'immagine della dimensione, impostata ad es. psize = "100x100" .

Come si usa

Lo script necessita di imagemagick da installare:

sudo apt-get install imagemagick

Quindi:

  1. Copia lo script in un file vuoto
  2. Salva come create_texticon.py
  3. impostato nella sezione testa:

    • il colore dello sfondo dell'icona
    • il colore del livello di testo dell'icona
    • La dimensione dell'icona creata
    • Il numero di righe da mostrare nell'icona
    • Il numero di (primi) caratteri per riga da mostrare nell'icona
    • Il percorso in cui salvare l'immagine
  4. Eseguilo con il tuo file di testo come argomento:

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

Il copione

#!/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. 3 comandi Linux da conoscere per la manipolazione del testo

  2. Guida completa per l'utilizzo di AsciiDoc in Linux

  3. Genera impronte digitali Hpkp per tutta la catena di certificati?

  4. Virtualbox 5.1.2 per Ubuntu 14.04.5?

  5. Come determinare perché Sublime-text 2 non inizierà più per me?

Come installare Tig - Interfaccia in modalità testo per Git su Ubuntu 16.04

eSpeak NG – Un sintetizzatore di sintesi vocale per Linux

Micro:un editor di testo basato su riga di comando per Linux

Accesso di testo

Come generare CSR per SSL in cPanel?

Hardware del terminale di testo (per Linux)