関数 create-image、defimage、find-image
は、画像記述子を手軽に作成するための手段を提供します。
この関数は、file-or-data のデータを使用する画像記述子を作成して返します。file-or-data にはファイル名または画像データを含む文字列を指定でき、data-p は前者の場合は nil、後者の場合は nil 以外とする必要があります。file-or-data
が相対ファイル名である場合、関数は image-load-path
で指定されたディレクトリ内からそれを検索します。
オプション引数 type は、画像タイプを指定するシンボルです。type が省略されているか、あるいは nil、create-image の場合は、ファイルの先頭数バイト、またはファイル名から画像タイプを判定しようとします。
残りの引数 props では、追加の画像プロパティを指定します—例えば、
(create-image "foo.xpm" 'xpm nil :mask 'heuristic)
サポートされているプロパティの一覧については、画像記述子を参照してください。一部のプロパティは特定の画像タイプに固有のものであり、それらのタイプ専用のサブセクションで説明されています。
この関数は、この種類の画像がサポートされていない場合は nil
を返します。それ以外の場合は、画像記述子を返します。
このマクロは、symbol を画像名として定義します。引数 specs は、画像の表示方法を指定するリストです。第3引数 doc は、任意のドキュメント文字列です。
specs 内の各引数はプロパティリストの形式をとり、それぞれ少なくとも :type プロパティと、:file または :data のいずれかのプロパティを指定する必要があります。:type の値は画像タイプを指定するシンボル、:file
の値は画像を読み込むファイル、:data
の値は実際の画像データを含む文字列である必要があります。以下に例を示します。
(defimage test-image ((:type xpm :file "~/test1.xpm") (:type xbm :file "~/test1.xbm")))
defimage
は各引数を一つずつ検証し、使用可能かどうか(すなわち、型がサポートされており、かつファイルが存在するか)を判定します。最初に使用可能と判定された引数を用いてイメージ記述子が作成され、symbol に格納されます。
いずれの代替案も機能しない場合は、symbolはnilとして定義されます。
property の値を image
に返します。プロパティは setf を使用して設定できます。プロパティを nil に設定すると、画像からそのプロパティが削除されます。
この関数は、画像仕様のリスト specs のいずれかを満たす画像を手軽に検索する手段を提供します。
specs
内の各仕様はプロパティリストであり、その内容は画像タイプによって異なります。すべての仕様には、少なくともプロパティ :type type と、:file file または :data data
のいずれかが含まれている必要があります。ここで、type は画像タイプを指定するシンボル(例:xbm)、file は画像を読み込むファイル、data は実際の画像データを含む文字列です。リスト内の仕様のうち、type がサポートされており、かつ file
が存在する最初の仕様が、返される画像仕様の構築に使用されます。条件を満たす仕様がない場合は、nil
が返されます。
画像は image-load-path 内で検索されます。
この変数の値は、画像ファイルを検索対象とする場所のリストです。要素が文字列であるか、あるいは値が文字列である変数シンボルである場合、その文字列は検索対象のディレクトリ名とみなされます。要素が値がリストである変数シンボルである場合、それは検索対象のディレクトリリストとみなされます。
デフォルトでは、data-directoryで指定されたディレクトリのimagesサブディレクトリ、次にdata-directoryで指定されたディレクトリ、そして最後にload-path内のディレクトリが検索対象となります。サブディレクトリは自動的に検索対象に含まれないため、画像ファイルをサブディレクトリに配置した場合は、そのサブディレクトリを明示的に指定する必要があります。例えば、data-directory内の画像images/foo/bar.xpmを探す場合は、次のように画像を指定します。
(defimage foo-image '((:type xpm :file "foo/bar.xpm")))
この関数は、Lispパッケージ library で使用される画像に適した検索パスを返します。
この関数は、まず image-load-path を用いて image を検索し(data-directory/images は除外)、次に load-path で検索し、続いて library
に適したパス(ライブラリファイル自体を基準として ../../etc/images と ../etc/images を含む)を検索し、最後に data-directory/images で検索します。
この関数は、imageが見つかったディレクトリを先頭とし、続いてload-pathの値を並べたディレクトリの一覧を返します。pathが指定されている場合は、load-pathの代わりにそれが使用されます。
no-error が nil
ではなく、適切なパスが見つからない場合は、エラーを通知しないでください。代わりに、従来通りディレクトリの一覧を返しますが、イメージディレクトリの代わりに
nil が表示されるようにしてください。
image-load-path-for-library の使用例を以下に示します。
(defvar image-load-path) ; shush compiler
(let* ((load-path (image-load-path-for-library
"mh-e" "mh-logo.xpm"))
(image-load-path (cons (car load-path)
image-load-path)))
(mh-tool-bar-folder-buttons-init))
画像は、image-scaling-factor
変数に基づいて作成される際に自動的にスケーリングされます。この値は、浮動小数点数(1
より大きい値はサイズを大きくし、小さい値はサイズを小さくすることを意味します)、またはフォントのピクセルサイズに基づいてスケーリング係数を算出するシンボル
auto のいずれかです。画像記述子 を参照してください。