




externalize-and-write-image gp image destination &key type if-exists errorp x-hot y-hot quality &allow-other-keys => result
A CAPI pane.
An image object.
A file namestring, a pathname or an open output stream with element type compatible with (unsigned-byte 8), i.e. base-char, (signed-byte 8) or (unsigned-byte 8).
One of the keywords :bmp, :jpg, :jpeg, :png and :tiff. Other keywords may be supported, depending on the platform.
One of the keywords :error, :new-version, :rename, :rename-and-delete, :overwrite, :append and :supersede, or nil.
A boolean.
A non-negative integer.
A non-negative integer.
An integer in the range [0,100].
The function externalize-and-write-image externalizes and writes an image object to a file or stream.
The bytes of 
image
 are written to 
destination
 as if by write-sequence.
The output image type can be specified by the argument type . If type is not supplied then the output image type is determined by the file type of destination .
If 
type
 is supplied, it must be a keyword which specifies a known type, as returned by list-known-image-formats with 
for-writing-too
 t. The types :bmp, :jpg, :png and :tiff are known on all platforms (except Motif). Additionally, :jpeg is an as alias for :jpg.
If type is not supplied, then the file extension of destination is used to "guess" the type. In general it is the extension uppercased and interned in the keyword package. It also recognizes some special cases:
Note:
 Image type :jpg2000 is implemented on Cocoa only.
errorp
 controls what happens if externalize-and-write-image does not recognize the type. If 
errorp
 is non-nil, it calls error, otherwise it returns nil. The default value of 
errorp
 is t.
if-exists
 controls what to do if 
destination
 already exists, in the same way as the 
if-exists
 argument to open. However, unlike open, the default value of 
if-exists
 is :supersede. 
x-hot
 and 
y-hot
 are used only when generating a CUR file, which is currently implemented on GTK+ only. They specify the hotspot coordinates when the image is used as a cursor (in a LispWorks application by load-cursor and (setf capi:simple-pane-cursor), or in other applications). Their values must be integers within the width/height of the image. The default value of both 
x-hot
 and 
y-hot
 is 0.
quality is used for writing a JPG image on GTK+. It must be an integer in the inclusive range [0,100]. High values generate better images and larger files.
result
 is 
destination
 on success, or nil for an unknown type when 
errorp
 is nil. It signals an error in other cases (for example, failure to open the file because of permissions). 
CAPI User Guide and Reference Manual (Windows version) - 3 Aug 2017