GNU/Linux >> Belajar Linux >  >> Ubuntu

Hasilkan Thumbnail Untuk Teks?

Saya perlu membuat thumbnail untuk beberapa file teks.
Jelas sekali sistem memiliki kemampuan untuk melakukan hal ini (lihat tangkapan layar). Apakah ada cara agar saya dapat mengakses gambar-gambar ini dan menyalinnya untuk digunakan nanti?

Atau ada perintah (alat) khusus untuk ini?

Saya melihat ini:
thumbnail baris perintah

Dan ini:
Bagaimana cara saya menginstruksikan Nautilus untuk membuat thumbnail terlebih dahulu?

Yang berguna tetapi tidak ada yang bisa menangani teks.

Jawaban yang Diterima:

Menggunakan Imagemagick untuk membuat ikon teks

Berdasarkan prinsip yang sama seperti di sini, skrip di bawah ini membuat ikon teks dari file teks dengan bantuan Imagemagick.

Warna gambar latar belakang bulat dan warna teks dapat diatur di kepala skrip (serta sejumlah properti lainnya).

Apa fungsinya
Ia membaca file teks, mengambil empat baris pertama (ditetapkan dalam n_lines = 4 ), tujuh karakter pertama (ditetapkan dalam n_chars = 10 ) dari setiap baris, dan membuat overlay di atas gambar berukuran, yang diatur dalam mis. psize = "100x100" .

Cara menggunakan

Script membutuhkan imagemagick yang akan dipasang:

sudo apt-get install imagemagick

Kemudian:

  1. Salin skrip ke file kosong
  2. Simpan sebagai create_texticon.py
  3. atur di bagian kepala:

    • warna latar belakang ikon
    • warna lapisan teks ikon
    • Ukuran ikon yang dibuat
    • Jumlah baris yang akan ditampilkan di ikon
    • Jumlah karakter (pertama) per baris untuk ditampilkan di ikon
    • Jalur tempat menyimpan gambar
  4. Jalankan dengan file teks Anda sebagai argumen:

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

Skrip

#!/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. Panduan Lengkap untuk Menggunakan AsciiDoc di Linux

  2. Ubah Surat Masuk Dari Teks/biasa Menjadi Teks/html?

  3. Cari Direktori Untuk File Dan Hasil Output Ke File Teks?

  1. Hasilkan Sidik Jari Hpkp Untuk Semua Rantai Sertifikat?

  2. Virtualbox 5.1.2 Untuk Ubuntu 14.04.5?

  3. Editor teks bergaya Windows, berbasis terminal, untuk linux

  1. 3 perintah Linux yang harus diketahui untuk manipulasi teks

  2. Bagaimana Cara Menentukan Mengapa Sublime-text 2 Tidak Lagi Mulai Untuk Saya?

  3. Pintasan Di Gvim?