;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313\314\315& \207" [require cl-generic custom-declare-variable image-converter funcall function #[0 "\300\207" [nil] 1] "Type of the external image converter to use.\nThe value should a symbol, either `imagemagick', `graphicsmagick',\nor `ffmpeg'.\nIf nil, Emacs will try to find one of the supported converters\ninstalled on the system." :group image :type symbol :version "27.1"] 10) #@69 A regexp that matches the file name suffixes that can be converted. (defvar image-converter-regexp nil (#$ . 858)) #@44 List of supported image converters to try. (defvar image-converter--converters '((graphicsmagick :command ("gm" "convert") :probe ("-list" "format")) (ffmpeg :command "ffmpeg" :probe "-decoders") (imagemagick :command "convert" :probe ("-list" "format"))) (#$ . 979)) #@290 Return `image-convert' if SOURCE is an image that can be converted. SOURCE can either be a file name or a string containing image data. In the latter case, DATA-P should be non-nil. If DATA-P is a string, it should be a MIME format string like "image/gif". (fn SOURCE &optional DATA-P) (defalias 'image-convert-p #[513 "\204\302 \210\203 \204\303!\211\203\304\305!\306Q\210\205K\211\204-\307 \"\204J\211\205K\2119\205K\307\310\311!\"\205K\307 \312\313!P\"\205K\314\207" [image-converter image-converter-regexp image-converter--find-converter image-converter--probe "\\." regexp-opt "\\'" string-match "/" symbol-name "foo." image-converter--mime-type image-convert] 7 (#$ . 1254)]) #@492 Convert IMAGE file to the PNG format. IMAGE can either be a file name or image data. To pass in image data, IMAGE should a string containing the image data, and IMAGE-FORMAT should be a symbol with a MIME format name like "image/webp". For instance: (image-convert data-string 'image/bmp) IMAGE can also be an image object as returned by `create-image'. This function converts the image to PNG, and the converted image data is returned as a string. (fn IMAGE &optional IMAGE-FORMAT) (defalias 'image-convert #[513 "\204\301 \210\204\302\303!\210\211\203#\304\305!\306\"G\307U\204#\302\310!\210\311\312!r\211q\210\313\314\315\316\317!\320\"\307$\216\321\322!\210\323<\203I\324A\325\"\202J<\203X\324A\326\"\202Y#\211\203c\302\327\"\210\210<\203\251\330\331\332 \333\334A\322\211\211\211:\203\241\262\211A\262\242\262@\262\335=\204\231\336D!\244\262AA\262\202v\211\237\266\205%\202\253\332 *\207" [image-converter image-converter--find-converter error "No external image converters available" split-string symbol-name "/" 2 "IMAGE-FORMAT should be a symbol like `image/png'" generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] set-buffer-multibyte nil image-converter--convert plist-get :file :data-p "%s" apply create-image buffer-string png t :type reverse] 16 (#$ . 1970)]) #@67 Return the value of ELEM of image converter TYPE. (fn TYPE ELEM) (defalias 'image-converter--value #[514 "\301\236A\"\211;\203\211C\202\211\207" [image-converter--converters plist-get] 5 (#$ . 3372)]) (byte-code "\300\301\302\303\302\304%\210\300\301\302\305\302\306%\210\300\301\302\307\302\310%\207" [cl-generic-define-method image-converter--probe nil ((type (eql graphicsmagick))) #[257 "\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216\311\312\"\313\314@!\205Z\315\316@\313\317\313\320A\311\f\321\"\"&\303U\205Zeb\210\322\323\313\324#\203X\325y\210\322\326\313\324#\203X\327\325!\227B\262\202E\211\237\266\202*\207" [generate-new-buffer #1=" *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 image-converter--value :command nil executable-find apply call-process (t nil) append :probe re-search-forward "^-" t 1 "^ *\\([A-Z0-9]+\\) +. +r" match-string] 15 "Check whether the system has GraphicsMagick installed.\n\n(fn TYPE)"] ((type (eql imagemagick))) #[257 "\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216\311\312\"\313\314@!\2033\315\316@\313\317\313\320A\311\f\321\"\"&\210eb\210\322\323\313\324#\203T\325y\210\322\326\313\324#\203T\327\325!\227B\262\202A\211\237\266\202*\207" [generate-new-buffer #1# make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 image-converter--value :command nil executable-find apply call-process (t nil) append :probe re-search-forward "^-" t 1 "^ *\\([A-Z0-9]+\\)\\*?\\(?: +[A-Z0-9]+\\)? +r" match-string] 15 "Check whether the system has ImageMagick installed.\n\n(fn TYPE)"] ((type (eql ffmpeg))) #[257 "\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216\311\312\"\313\314@!\205Y\315\316@\313\317\313\320A\311\f\321\"\"&\303U\205Yeb\210\322\323\313\324#\203W\325y\210\322\326\313\324#\203W\327\325!B\262\202E\211\237\266\202*\207" [generate-new-buffer #1# make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 image-converter--value :command nil executable-find apply call-process (t nil) append :probe re-search-forward "^ *-" t 1 "^ *V[^ ]+ +\\([a-z0-9_]+\\)" match-string] 15 "Check whether the system has ffmpeg installed.\n\n(fn TYPE)"]] 6) #@36 Find an installed image converter. (defalias 'image-converter--find-converter #[0 "\3032-\211\205*\211@\304@!\211\203\"@\305\306!\307Q\310\303 \"\210\210A\266\202\202\2620\207" [image-converter--converters image-converter image-converter-regexp done image-converter--probe "\\." regexp-opt "\\'" throw] 6 (#$ . 5664)]) (byte-code "\300\301\302\303\302\304%\210\300\301\302\305\302\306%\207" [cl-generic-define-method image-converter--convert nil ((type (eql graphicsmagick)) source image-format) #[771 "\300#\207" [image-converter--convert-magick] 7 "Convert using GraphicsMagick.\n\n(fn TYPE SOURCE IMAGE-FORMAT)"] ((type (eql imagemagick)) source image-format) #[771 "\300#\207" [image-converter--convert-magick] 7 "Convert using ImageMagick.\n\n(fn TYPE SOURCE IMAGE-FORMAT)"]] 6) #@21 (fn IMAGE-FORMAT) (defalias 'image-converter--mime-type #[257 "\2119\205 \300\301!\302\"A@\207" [split-string symbol-name "/"] 4 (#$ . 6473)]) #@33 (fn TYPE SOURCE IMAGE-FORMAT) (defalias 'image-converter--convert-magick #[771 "\300\301\"\203'c\210\302\303ed@\304\211\305\306 A\307\310\311!\"\312D\"&\202;\302\313@\305\304\305\306A\314 !\312D\"&\315U?\205C\316 \207" [image-converter--value :command apply call-process-region t nil append format "%s:-" image-converter--mime-type "png:-" call-process expand-file-name 0 buffer-string] 18 (#$ . 6626)]) (byte-code "\300\301\302\303\302\304%\210\305\306!\207" [cl-generic-define-method image-converter--convert nil ((type (eql ffmpeg)) source image-format) #[771 "\300\301\"\203'c\210\302\303ed@\304\305\306\307 A\310\311\312\313\314\315\311\257\"&\202A\302\316@\306\317\306\307A\310\320\f!\312\313\314\315\311\257\"&\321U?\205H\322\207" [image-converter--value :command apply call-process-region t (t nil) nil append "-i" "-" "-c:v" "png" "-f" "image2pipe" call-process (t nil) expand-file-name 0 "ffmpeg error when converting"] 21 "Convert using ffmpeg.\n\n(fn TYPE SOURCE IMAGE-FORMAT)"] provide image-converter] 6)