| Allegro CL version 10.0 Significantly revised from 9.0. 9.0 version |
Arguments: pathname &key name pixmap-to-return (icon-index 0) make-unique-name use-gdi-plus
Loads a pixmap (pixel map) from a file and returns
a cg:pixmap
object. The
pixmap can then be drawn by calling copy-to-stream.
The file can be any of the various types of pixmap files that can be loaded by the underlying windowing system (Windows or GTK). On any platform these should include bmp, png, jpg, gif, and tiff files along with others. On Windows, icon files (.ico) can also be loaded.
The arguments are:
nil
, a unique
symbol based on the name of the file from which the pixmap was loaded
is created and used for the name.
nil
or an existing pixmap object to
re-use. If
nil
, a new pixmap object is created and
returned. If a pixmap, the pixmap is "filled in" with the information
read from the file and then returned. This argument may be useful for
updating a pixmap object from an edited (or alternate) file while
keeping the pixmap eq to the
former version of it.
See also save-pixmap (which creates .bmp files) and load-lisp-pixmap (which loads a Lisp file which will recreate a pixmap). cg-pixmaps.htm discusses pixmaps in general.
There is a known but unsolved problem with load-pixmap on the Mac. On the GTK platforms (Linux and Mac), load-pixmap simply passes the pixmap file path to a single GTK function, and GTK does all the work. But it seems to fail on the Mac even for pixmaps where it works on Linux. We suspect that something in the substrate of GTK on the Mac is not supporting this GTK function properly.
One possible workaround is to create pixmaps from Lisp arrays of pixel values, as described in cg-pixmaps.htm. But note if you're starting with BMP files, the only way to use that approach would be to use the function import-pixmaps on a Linux or Windows machine that is able to load the BMP files, and then take the file of Lisp source code that it writes over to your application on the Mac and load the Lisp file there. When building a standalone application, if you load the Lisp file at build time then the pixmaps will be built into the image file and so will not need to be loaded from separate files at run time.
Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page has had significant revisions compared to the 9.0 page.
Created 2019.8.20.
| Allegro CL version 10.0 Significantly revised from 9.0. 9.0 version |