GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Generar miniaturas para texto?

Necesito generar miniaturas para algunos archivos de texto.
Obviamente, el sistema de alguna manera tiene la capacidad de hacer exactamente esto (vea la captura de pantalla). ¿Hay alguna forma de acceder a estas imágenes y simplemente copiarlas para usarlas más adelante?

¿O hay un comando especial (herramienta) para esto?

Miré esto:
miniaturas de línea de comando

Y esto:
¿Cómo puedo indicarle a Nautilus que genere miniaturas previamente?

Que fueron útiles pero ninguno podía tratar con texto.

Respuesta aceptada:

Usando Imagemagick para crear íconos de texto

Basado en el mismo principio que aquí, el siguiente script crea un icono de texto a partir de un archivo de texto con la ayuda de Imagemagick.

El color de la imagen de fondo redondeada y el color del texto se pueden establecer en el encabezado de un script (así como una serie de otras propiedades).

Qué hace
Lee el archivo de texto, toma las primeras cuatro líneas (establecidas en n_lines = 4 ), los primeros siete caracteres (establecidos en n_chars = 10 ) de cada línea y crea una superposición sobre una imagen del tamaño establecido, p. psize = "100x100" .

Cómo usar

El script necesita imagemagick a instalar:

sudo apt-get install imagemagick

Entonces:

  1. Copie el script en un archivo vacío
  2. Guardarlo como create_texticon.py
  3. establecido en la sección principal:

    • el color del fondo del icono
    • el color de la capa de texto del icono
    • El tamaño del icono creado
    • El número de líneas a mostrar en el icono
    • El número de (primeros) caracteres por línea para mostrar en el icono
    • La ruta donde guardar la imagen
  4. Ejecútelo con su archivo de texto como argumento:

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

El guión

#!/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 comandos de Linux imprescindibles para la manipulación de texto

  2. Guía completa para usar AsciiDoc en Linux

  3. ¿Generar huellas dactilares Hpkp para toda la cadena de certificados?

  4. ¿Cómo determinar por qué Sublime-text 2 ya no se iniciará para mí?

  5. ¿Buscar archivos en un directorio y enviar el resultado a un archivo de texto?

Cómo instalar Tig - Interfaz de modo de texto para Git en Ubuntu 16.04

eSpeak NG:un sintetizador de texto a voz para Linux

Micro:un editor de texto basado en la línea de comandos para Linux

Inicio de sesión de texto

¿Cómo generar CSR's para SSL en cPanel?

Hardware de terminal de texto (para Linux)