나는 이미지가 포함된 텍스트를 자주 읽는데, 텍스트가 다음 페이지와 다음 페이지, 이전 페이지의 이미지에 대해 이야기하는 경우가 종종 발생하며, 앞뒤로 이동해야 하고 일반적으로 읽기를 멈췄던 부분을 잊어버립니다.
약 5개의 이미지를 포함할 수 있는 이미지 클립보드에 이미지를 저장하는 아이디어가 있습니다(예: 화면 영역의 작은 스크린샷 만들기). 읽는 동안 텍스트에 "그림 10.4(42페이지) 참조"라고 표시되고 몇 초 내에 "그림 10.2(40페이지)와 비교"가 표시되면 텍스트를 탐색하지 않고도 키보드 단축키를 누르고 원하는 이미지를 선택할 수 있습니다.
X 윈도우 시스템에서 이것이 가능합니까? 아니면 일부 스크립트를 사용합니까?
답변1
이것으로 뭔가를 할 수 있을 것입니다.
임시 디렉토리에 이미지를 수집할 수 있으며(이미지당 두 번의 마우스 클릭) scriptname -c
...탐색으로 쉽게 수행할 수 있는 경량 이미지 뷰어에 이미지를 표시할 수 있습니다. 커서 키는 scriptname -s
항상 최신 이미지로 표시되기 시작합니다. 실제로 5개로 제한하고 싶다면 스크립트를 조정할 수 있지만 스크립트는 /tmp에 있으며 종종 삭제됩니다. 선택한 단축키에 및 를 할당하기
만 하면 됩니다 . 단축키를 바인딩하는 데 사용합니다 .scriptname -c
scriptname -s
xbindkeys
#!/bin/bash
#
# Run $ script [-c | -s]
#
# Uses: grabc GRAB Colour - screen pixel colour
# Allows you to position amd click the mouse.
# The actual co-ordinates capture is done by xdotool.
# xdotool simulate X11 keyboard/mouse input
# scrot SCReen shOT - screen capture
# pnmtopng (from package 'netpbm') convert format
# display (from package 'imagemagick') display single image
# eog Eye Of Gnome - to display images forward and backwards
#
# Note: The area selection requires two distinct mouse clicks
# First click the top-left corner, then the bottom-right corner
# It is not a click-and-drag style of selection.
#
bname="$(basename "$0")"
oudir="/tmp/$USER/$bname"; [[ -d "$oudir" ]] || mkdir -p "$oudir"
case "$1" in
-s) # show images
eog "$(find "$oudir" -maxdepth 1 -type f -name 'screen.20[0-9][0-9]-*.png' \
|sort |tail -n 1)"
;;
*) # capture image and save to output dir
grabc 1>/dev/null 2>/dev/null; eval $(xdotool getmouselocation --shell); L=$X; T=$Y
grabc 1>/dev/null 2>/dev/null; eval $(xdotool getmouselocation --shell); R=$X; B=$Y
((R<L||B<T)) && { echo "ERROR: invalid rectangle selected" 1>&2; exit 1; }
scrot "$oudir/screen.pnm"
oupic="$oudir/screen.$(date '+%Y-%m-%d %H:%M:%S').png"
<"$oudir/screen.pnm" pnmcut -left $L -top $T -bottom $B -right $R \
| pnmtopng > "$oupic"
display "$oupic" # for a quick preview.
;;
esac
#
답변2
원래 X Window System에는 일반 텍스트인 X11 옵션만 있었습니다. 클립보드를 구현하는 다양한 확장 기능이 있지만 이를 사용하는 애플리케이션은 서로 완벽하게 호환되지 않습니다.
X11 클립보드를 사용하는 대신 Gimp를 클립보드로 사용할 수 있습니다. Gimp를 시작한 다음 gimp-remote를 호출하여 이미지를 로드할 수 있습니다. Gimps Paste 기능이 귀하의 애플리케이션과 호환되는지 확인할 수도 있습니다.
또한 Script-Fu 서버를 시작할 수 있습니다. 기본 포트는 10008입니다. 그런 다음 Script-Fu 명령을 서버에 보낼 수 있습니다. 예를 들어 다음은 새 이미지를 생성합니다.
CMD='(gimp-display-new (car (gimp-image-new 300 200 0)))'
echo -e $(printf 'G\\0000\\%0.4o%s' ${#CMD} "$CMD") | nc -q1 localhost 10008
이 접근 방식을 사용하려면 요청한 기능을 달성하기 위해 몇 가지 추가 프로그래밍이 필요합니다. 하지만 그것은 가능해야 합니다.
답변3
크라슬라프가 물었다:
이미지 클립보드에 이미지를 저장하고 싶은 생각이 있습니다.
[...]
X Window System에서 이것이 가능합니까?
유닉스 혐오자의 핸드북설명하다
ICCCM 준수는 X 도구 키트, 창 관리자 또는 간단한 응용 프로그램을 구현할 때 가장 복잡한 과제 중 하나입니다. 너무 어려워서 많은 혜택이 규정을 준수하는 번거로움을 감수할 가치가 없습니다. 한 프로그램이 이를 준수하지 않으면 다른 프로그램이 망가집니다.이것이 X에서 잘라내기 및 붙여넣기가 제대로 작동하지 않는 이유입니다.(직접 ASCII 텍스트를 잘라내어 붙여넣지 않는 한)
Unix를 싫어하는 사람들에게는 일리가 있습니다. 이런 종류의 일로 인해 Apple이 OSX에서 X-windows를 사용하지 않기로 결정하게 될 수도 있다고 생각합니다.