GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Thumbnails für Text generieren?

Ich muss Thumbnails für einige Textdateien generieren.
Offensichtlich hat das System irgendwie die Fähigkeit, genau das zu tun (siehe Screenshot). Gibt es eine Möglichkeit, auf diese Bilder zuzugreifen und sie einfach zur späteren Verwendung zu kopieren?

Oder gibt es dafür einen speziellen Befehl (Tool)?

Ich habe mir das angesehen:
Befehlszeilen-Thumbnails

Und dies:
Wie kann ich Nautilus anweisen, Thumbnails vorab zu generieren?

Welche nützlich waren, aber keiner konnte mit Text umgehen.

Akzeptierte Antwort:

Mit Imagemagick Textsymbole erstellen

Basierend auf dem gleichen Prinzip wie hier erstellt das folgende Skript mit Hilfe von Imagemagick ein Textsymbol aus einer Textdatei.

Die Farbe des gerundeten Hintergrundbildes und die Textfarbe können im Kopf eines Skripts eingestellt werden (sowie eine Reihe anderer Eigenschaften).

Was es tut
Es liest die Textdatei, nimmt die ersten vier Zeilen (eingestellt in n_lines = 4 ), die ersten sieben Zeichen (festgelegt in n_chars = 10 ) jeder Zeile und erstellt eine Überlagerung über einem Bild der Größe, die z. psize = "100x100" .

Verwendung

Das Skript benötigt imagemagick zu installieren:

sudo apt-get install imagemagick

Dann:

  1. Kopieren Sie das Skript in eine leere Datei
  2. Speichern Sie es als create_texticon.py
  3. im Head-Bereich gesetzt:

    • die Hintergrundfarbe des Symbols
    • die Farbe der Textebene des Symbols
    • Die Größe des erstellten Symbols
    • Die Anzahl der Zeilen, die im Symbol angezeigt werden sollen
    • Die Anzahl der (ersten) Zeichen pro Zeile, die im Symbol angezeigt werden sollen
    • Der Pfad, wo das Bild gespeichert werden soll
  4. Führen Sie es mit Ihrer Textdatei als Argument aus:

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

Das Skript

#!/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 unverzichtbare Linux-Befehle zur Textbearbeitung

  2. Vollständiges Handbuch zur Verwendung von AsciiDoc unter Linux

  3. Hpkp-Fingerabdrücke für alle Zertifikatsketten generieren?

  4. Eine eingehende Mail von Text/plain zu Text/html ändern?

  5. Virtualbox 5.1.2 für Ubuntu 14.04.5?

So installieren Sie Tig - Textmodus-Schnittstelle für Git unter Ubuntu 16.04

eSpeak NG – Ein Text-to-Speech-Synthesizer für Linux

Micro – Ein befehlszeilenbasierter Texteditor für Linux

Textanmeldung

Wie generiert man CSRs für SSL in cPanel?

Textterminal-Hardware (für Linux)