텍스트 축소판을 생성 하시겠습니까?


10

일부 텍스트 파일의 축소판을 생성해야합니다. 분명히 시스템은 어떻게 든 정확하게 이것을 할 수 있습니다 (스크린 샷 참조). 이 이미지에 액세스하여 나중에 사용하기 위해 복사 할 수있는 방법이 있습니까?

아니면 이것에 대한 특별한 명령 (도구)이 있습니까?

somefolder.png

나는 이것을 보았다 : 커맨드 라인 썸네일

그리고 이것은 : 노틸러스가 미리보기 이미지를 미리 생성하도록 지시하려면 어떻게해야합니까?

어느 것이 유용했지만 텍스트를 다룰 수 없었습니다.


@Rmano, 아이콘의 크기는 얼마입니까?
Jacob Vlijm

@JacobVlijm 아이디어는 썸네일 러를 만드는 것입니다. 기본 형태는 script -s width input_url output_file노틸러스에서 사용하는 형식입니다. 예를 들어 rlog.rgtti.com/2011/11/24/… 및 링크 된 페이지를 참조하십시오.
Rmano

답변:


5

Imagemagick을 사용하여 텍스트 아이콘 만들기

here 과 동일한 원칙에 따라 아래 스크립트는 Imagemagick의 도움으로 텍스트 파일에서 텍스트 아이콘을 만듭니다.

둥근 배경 이미지의 색상과 텍스트 색상은 스크립트 헤드 (및 기타 여러 속성)에서 설정할 수 있습니다.

여기에 이미지 설명을 입력하십시오

그것은 무엇을
그것의 TEXTFILE를 읽고 (에 세트를 일 처음 네 줄 소요 n_lines = 4(의 집합을) 처음 7 문자를 n_chars = 10각 줄의), 그리고 예에서 설정 한 크기의 이미지 위에 오버레이를 생성합니다 psize = "100x100".

사용하는 방법

스크립트 imagemagick를 설치 해야 합니다 :

sudo apt-get install imagemagick

그때:

  1. 스크립트를 빈 파일로 복사
  2. 다른 이름으로 저장 create_texticon.py
  3. 헤드 섹션에서 설정 :

    • 아이콘의 배경색
    • 아이콘의 텍스트 레이어의 색
    • 생성 된 아이콘의 크기
    • 아이콘에 표시 할 줄 수
    • 아이콘에 표시 할 줄당 (첫 번째) 문자 수
    • 이미지를 저장할 경로
  4. 텍스트 파일을 인수로 사용하여 실행하십시오.

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

스크립트

#!/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 = "/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

이 솔루션은 지속적입니까?
αғsнιη

지속적이란 무엇입니까? 스크립트가 아이콘을 만들거나 질문을 오해 했습니까?
Jacob Vlijm

1
@Kasiya 썸네일 러로 사용하려면 rlog.rgtti.com/2011/11/24/…rlog.rgtti.com/2010/11/28/adding-a-gnomenautilus-thumbnailer를 참조하십시오 --- 노틸러스가 업데이트합니다 자동으로. 좋은 생각; 이제 pygment구문 강조 에 사용하는 것에 대해 생각 하면 완벽합니다. 감사!
Rmano 2019

2
@JacobVlijm이 필요하지 않습니다. 스크립트를 올바른 위치에 놓고 /usr/share/thumbnailers/...파일을 쓰면 아이콘이 자동으로 나타나고 시스템에 의해 관리 (캐시, 파일 변경 등 업데이트)
Rmano

1
@JacobVlijm 무엇이든 --- 아이디어가 있습니다. 나는 그 대답만으로도 충분하다고 생각합니다. 유감스럽게도 우리는 시스템 방식을 활용할 수 없지만 일부 저수준 라이브러리에 하드 코딩되어 있다고 가정합니다.
Rmano

1

아이디어 :

에 텍스트 파일을 변환 PDF 및 사용 pdfdraw썸네일을 생성 할 수 있습니다.

unoconv는 OpenOffice office suite가 이해하는 다양한 문서를 변환하는 소프트웨어입니다.

이 방법의 장점 : 거의 모든 문서에 대한 대량 썸네일은 스크립트를 생성하여 쉽게 생성 할 수 있습니다.

단계는 요점 을 참조 하십시오.

  1. OpenOffice 헤드리스 패키지 설치

    sudo apt-get install  openoffice.org-headless  openoffice.org-java-common  openoffice.org-writer  openoffice.org-calc  openoffice.org-impress
    
  2. UNO 파이썬 라이브러리 설치

    sudo apt-get install python-uno unoconv
    
  3. 필요한 글꼴 설치 (특히 국제 언어의 경우)

    글꼴을 복사 한 /usr/share/fonts/truetype/다음 실행fc-cache

  4. OpenOffice를 서비스로 실행

    soffice -headless -nofirststartwizard -accept="socket,host=localhost,port=8100;urp;StarOffice.Service"
    
  5. unoconv 명령을 사용하여 문서를 PDF로 변환

    unoconv -f pdf __[filename]__
    
  6. MuPDF 도구를 사용하여 PDF 축소판 만들기

    pdfdraw -r 100 -o __[output-thumbnail]__ __[pdf-file]__ 1  
    

SO에 대한 비슷한 질문


1
흠 ... 텍스트 파일은 워드 프로세서 파일이 아닙니다. 여기에는 아주 기본적인 오해가 있습니다. 텍스트 파일은 프로그램 소스, 로그, ".txt"파일 등입니다. Office 문서와 PDF에는 축소판 그림이 제대로 작동합니다.
Rmano

@Rmano : PDF를 통한 이동은 로그 파일과 같이 아무도 PDF로 변환하지 않는 형식의 경우에도 미리보기를 생성 할 때 ECM 소프트웨어에서 자주 사용하는 기술입니다. 그래서 이것은 좋은 생각입니다.
Nicolas Raoul
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.