답변:
이러한 기능은 패키지에 의해 제공됩니다.
썸네일 버퍼에 점이 있으면 RET(
image-dired-display-thumbnail-original-image
)를 입력하여 크기가 다른 버전을 다른 창에 표시 할 수 있습니다 . 창 크기에 맞게 이미지 크기를 조정합니다.
ImageMagick의 convert
명령을 사용합니다 .
image-dired-external-viewer
문제를 방지하고와 같은 외부 이미지 뷰어에 이미지를 표시 하는 데 사용할 수도 있습니다 feh
.
(add-hook 'image-mode-hook 'eimp-mode)
mogrify
ImageMagick 의 유틸리티를 사용하여 실제 변환을 수행합니다.
(kbd "+") 'eimp-increase-image-size
(kbd "-") 'eimp-decrease-image-size
(kbd "<") 'eimp-rotate-image-anticlockwise
(kbd ">") 'eimp-rotate-image-clockwise
(kbd "B +") 'eimp-blur-image
(kbd "B -") 'eimp-sharpen-image
(kbd "B E") 'eimp-emboss-image
(kbd "B G") 'eimp-gaussian-blur-image
(kbd "B R") 'eimp-radial-blur-image
(kbd "C B +") 'eimp-increase-image-brightness
(kbd "C B -") 'eimp-decrease-image-brightness
(kbd "C C +") 'eimp-increase-image-contrast
(kbd "C C -") 'eimp-decrease-image-contrast
(kbd "F ^") 'eimp-flip-image
(kbd "F >") 'eimp-flop-image
(kbd "F <") 'eimp-flop-image
(kbd "N") 'eimp-negate-image
; Commands most relevant to you:
(kbd "S f") 'eimp-fit-image-to-window
(kbd "S h") 'eimp-fit-image-height-to-window
(kbd "S w") 'eimp-fit-image-width-to-window
(kbd "<right>") 'eimp-roll-image-right
(kbd "<left>") 'eimp-roll-image-left
(kbd "<up>") 'eimp-roll-image-up
(kbd "<down>") 'eimp-roll-image-down
(kbd "<down-mouse-1>") 'eimp-mouse-resize-image
(kbd "<S-down-mouse-1>") 'eimp-mouse-resize-image-preserve-aspect
(kbd "C-c C-k") 'eimp-stop-all
eiv
-또한 제공해야하는 ImageMagick 패키지를 사용합니다 mogrify
.
전체 명령 목록 :
eiv-fit-image-to-window
- 현재 창 크기로 이미지 크기를 조정합니다.eiv-rotate-current-image
-현재 이미지를 90도 회전시킵니다. eiv-dec-or-inc-image
-현재 창 크기로 이미지 크기를 조정합니다. eiv-diaporama
-나무에서 디아 포 라마를 시작하십시오. eiv-viewer
- emacs-image-viewer
. dir과 subdir의 트리를 탐색 할 수 있습니다.이것을 작성하기 위해 소스 코드를 사용 lisp/image-mode.el
했습니다. 이미지 버퍼에서이 함수를 호출하면 이미지와 창 높이 / 폭 비율에 따라 너비 나 높이에 맞게 크기가 조정됩니다.
이 기능이 작동하려면 다음 두 가지가 필요합니다.
libjpeg
로더는 jpg
이미지 를 처리하는 데 사용됩니다 . 이 답변의 다음 부분에 표시된 핵은 emacs가 imagemagick
로더 를 사용하도록 강제하는 데 사용됩니다 .(defun modi / image-transform-fit-to-window ()) "이미지와 창 비율에 따라 너비 나 높이에 맞게 이미지 크기를 조정하십시오. 이 기능을 실행하려면 Imagemagick이 필요합니다. " (대화식) (let * ((img-size (이미지 표시 크기 (image-get-display-property) t)) (img- 폭 (car img- 크기)) (img- 높이 (cdr img- 크기)) (img-h / w- 비 (/ (float img-height)) (float img-width)) (가로 폭 (-(nth 2 (창 안쪽 픽셀 가장자리))) (n 번째 0 (창 안쪽 픽셀 가장자리)))) (win-height (-(n 번째 3 (윈도우 내부 픽셀 가장자리))) (n 번째 1 (내부 픽셀 가장자리)))) (win-h / w-ratio (/ (float win-height) (float win-width)))) ;; 창의 가로 / 세로 비율이 이미지의 가로 / 세로 비율보다 크면 이미지를 너비에 맞 춥니 다. (경우 (> win-h / w-ratio img-h / w-ratio) (폭에 이미지 변환 적합) ;; 다른 신장에 맞게 (이미지 변환 적합 높이))))
imagemagick
이미지 로딩 에 사용하도록 강요이맥스의 버그 리포트를 통해 다음과 같은 후 #18797
, #10746
그리고 #10112
, 다음과 같은 솔루션은 이미지로드에있는 Imagemagick 강제 근무; 당신의 어딘가에 넣으십시오 init.el
:
내가 사용하는 이맥스를 강제 imagemagick
나에게 익숙한 파일에만 이미지 : png
, tiff
, jpg/jpeg
와 svg
; 나머지는 기본값으로 유지됩니다. gif
emacs 24.4가 멀티 프레임 이미지보기에 대한 지원을 향상 시켰기 때문에 기본 로더가 파일을 열 도록 허용했습니다 . 전체 정규 표현식은에서 가져옵니다 lisp/image.el
.
(setq image-type-header-regexps
`(
("\\`/[\t\n\r ]*\\*.*XPM.\\*/" . xpm)
("\\`P[1-6]\\\(?:\
\\(?:\\(?:#[^\r\n]*[\r\n]\\)?[[:space:]]\\)+\
\\(?:\\(?:#[^\r\n]*[\r\n]\\)?[0-9]\\)+\
\\)\\{2\\}" . pbm)
("\\`GIF8[79]a" . gif)
;; ("\\`\x89PNG\r\n\x1a\n" . png) ;; Uncomment this (and comment the below line) to enable inline png images in org-mode
("\\`\x89PNG\r\n\x1a\n" . imagemagick) ; png
("\\`[\t\n\r ]*#define \\([a-z0-9_]+\\)_width [0-9]+\n\
#define \\1_height [0-9]+\n\\(\
#define \\1_x_hot [0-9]+\n\
#define \\1_y_hot [0-9]+\n\\)?\
static \\(unsigned \\)?char \\1_bits" . xbm)
;; ("\\`\\(?:MM\0\\*\\|II\\*\0\\)" . tiff)
("\\`\\(?:MM\0\\*\\|II\\*\0\\)" . imagemagick) ; tiff
("\\`[\t\n\r ]*%!PS" . postscript)
;; ("\\`\xff\xd8" . jpeg) ;; Uncomment this (and comment the below line) to enable inline jpg images in org-mode
("\\`\xff\xd8" . imagemagick) ; jpeg
("\\`\377\330" . imagemagick) ; jpeg
(,(let* ((incomment-re "\\(?:[^-]\\|-[^-]\\)")
(comment-re (concat "\\(?:!--" incomment-re "*-->[ \t\r\n]*<\\)")))
(concat "\\(?:<\\?xml[ \t\r\n]+[^>]*>\\)?[ \t\r\n]*<"
comment-re "*"
"\\(?:!DOCTYPE[ \t\r\n]+[^>]*>[ \t\r\n]*<[ \t\r\n]*" comment-re "*\\)?"
"[Ss][Vv][Gg]"))
;; . svg) ;; Uncomment this (and comment the below line) to enable inline svg images in org-mode
. imagemagick) ; svg
))
imagemagick
은에 인라인 이미지로 표시되지 않습니다 org-mode
.image-transform-set-scale
당신이 찾고있는 것일 수 있습니다. 그러나 Imagemack 지원으로 Emacs를 컴파일해야합니다.
A는 주석도 있습니다 image-transform-mode
에서 image-mode.el
라고 표시된 "아직 구현되지 않았습니다."
Does Emacs use imagemagick? yes
실행할 때 참조하십시오 ./configure
. 그래서 그것은 imagemagick으로 컴파일되었습니다. 스틸 이미지 변환이 작동하지 않습니다. (emacs 24.4 x86_64-unknown-linux-gnu에서) 나는 또한 다음과 같은 것을 가지고 있습니다 config.log
: | #define HAVE_IMAGEMAGICK 1
| #define HAVE_MAGICKEXPORTIMAGEPIXELS 1
| #define HAVE_MAGICKMERGEIMAGELAYERS 1
.
다음은 텍스트 배율, Cx C- = 및 Cx C--에 사용되는 것과 동일한 키를 사용하여 확대 및 축소 할 수있는 솔루션입니다.
(defun scale-image ()
"Scale the image by the same factor specified by the text scaling."
(image-transform-set-scale
(expt text-scale-mode-step
text-scale-mode-amount)))
(defun scale-image-register-hook ()
"Register the image scaling hook."
(add-hook 'text-scale-mode-hook 'scale-image))
(add-hook 'image-mode-hook 'scale-image-register-hook)
eimp
파일 을 수정 한다는 점에 유의해야 합니다. 읽기 전용 이미지에서는 작동하지 않습니다.