Commit e7968373 authored by Kim F. Storm's avatar Kim F. Storm

(image-type): New defun split out of create-image.

(create-image): Use it.
parent 15855f8f
...@@ -280,27 +280,14 @@ be determined." ...@@ -280,27 +280,14 @@ be determined."
;;;###autoload ;;;###autoload
(defun image-type-available-p (type) (defun image-type (file-or-data &optional type data-p)
"Return non-nil if image type TYPE is available. "Determine and return image type.
Image types are symbols like `xbm' or `jpeg'."
(and (fboundp 'init-image-library)
(init-image-library type image-library-alist)))
;;;###autoload
(defun create-image (file-or-data &optional type data-p &rest props)
"Create an image.
FILE-OR-DATA is an image file name or image data. FILE-OR-DATA is an image file name or image data.
Optional TYPE is a symbol describing the image type. If TYPE is omitted Optional TYPE is a symbol describing the image type. If TYPE is omitted
or nil, try to determine the image type from its first few bytes or nil, try to determine the image type from its first few bytes
of image data. If that doesn't work, and FILE-OR-DATA is a file name, of image data. If that doesn't work, and FILE-OR-DATA is a file name,
use its file extension as image type. use its file extension as image type.
Optional DATA-P non-nil means FILE-OR-DATA is a string containing image data. Optional DATA-P non-nil means FILE-OR-DATA is a string containing image data."
Optional PROPS are additional image attributes to assign to the image,
like, e.g. `:mask MASK'.
Value is the image created, or nil if images of type TYPE are not supported.
Images should not be larger than specified by `max-image-size'."
(when (and (not data-p) (not (stringp file-or-data))) (when (and (not data-p) (not (stringp file-or-data)))
(error "Invalid image file name `%s'" file-or-data)) (error "Invalid image file name `%s'" file-or-data))
(cond ((null data-p) (cond ((null data-p)
...@@ -319,6 +306,31 @@ Images should not be larger than specified by `max-image-size'." ...@@ -319,6 +306,31 @@ Images should not be larger than specified by `max-image-size'."
(error "Cannot determine image type")) (error "Cannot determine image type"))
(unless (symbolp type) (unless (symbolp type)
(error "Invalid image type `%s'" type)) (error "Invalid image type `%s'" type))
type)
;;;###autoload
(defun image-type-available-p (type)
"Return non-nil if image type TYPE is available.
Image types are symbols like `xbm' or `jpeg'."
(and (fboundp 'init-image-library)
(init-image-library type image-library-alist)))
;;;###autoload
(defun create-image (file-or-data &optional type data-p &rest props)
"Create an image.
FILE-OR-DATA is an image file name or image data.
Optional TYPE is a symbol describing the image type. If TYPE is omitted
or nil, try to determine the image type from its first few bytes
of image data. If that doesn't work, and FILE-OR-DATA is a file name,
use its file extension as image type.
Optional DATA-P non-nil means FILE-OR-DATA is a string containing image data.
Optional PROPS are additional image attributes to assign to the image,
like, e.g. `:mask MASK'.
Value is the image created, or nil if images of type TYPE are not supported.
Images should not be larger than specified by `max-image-size'."
(setq type (image-type file-or-data type data-p))
(when (image-type-available-p type) (when (image-type-available-p type)
(append (list 'image :type type (if data-p :data :file) file-or-data) (append (list 'image :type type (if data-p :data :file) file-or-data)
props))) props)))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment