Next: , Previous: , Up: Images   [Contents][Index]


39.17.9 イメージの表示

自分でdisplayプロパティをセットアップしてイメージディスクリプタを使用できますが、このセクションの関数を使用するほうがより簡単です。

Function: insert-image image &optional string area slice

この関数はカレントバッファーのポイント位置にimageを挿入する。imageはイメージディスクリプタであること。これはcreate-imageによりリターンされた値、またはdefimageで定義されたシンボルの値を使用できる。引数stringはイメージを保持するためにバッファー内に配置するテキストを指定する。これが省略かnilなら、insert-imageはデフォルトで" "を使用する。

引数areaはマージン内にイメージを置くかどうかを指定する。これがleft-marginなら左マージンにイメージが表示され、right-marginなら右マージンを指定する。areanilか省略なら、イメージはバッファーのテキスト内のポイント位置に表示される。

引数sliceは挿入するイメージのスライスを指定する。slicenilか省略された場に合はイメージ全体が挿入される。それ以外では、sliceがリスト(x y width height)ならxyは位置、widthheightは挿入するイメージの領域を指定する。整数値はピクセル単位。0.0から1.0までの浮動小数点数はイメージ全体の幅や高さにたいする割合を指定する。

この関数は内部的にはバッファー内にstringを挿入して、imageを指定するdisplayプロパティにそれを渡す。Display Propertyを参照のこと。

Function: insert-sliced-image image &optional string area rows cols

この関数はinsert-imageと同様にカレントバッファー内にimageを挿入するが、イメージをrowscolsの同一サイズのスライスに分割する点が異なる。

Emacsは各スライスを個別のイメージとして表示して、(巨大な)イメージを表示するバッファーのページングの際にイメージ全体を上下にジャンプするのではなく、より直感的な上下スクロールが可能になる。

Function: put-image image pos &optional string area

この関数はカレントバッファー内のposの前にイメージimageを配置する。引数posは整数かマーカーであること。これはイメージが表示されるべきバッファー位置を指定する。引数stringは代替として表示されるべきデフォルトのイメージを保持するテキストであること。

引数imageはイメージディスクリプタでなければならず、それはcreate-imageがリターンされたか、あるいはdefimageにより格納されたイメージディスクリプタかもしれない。

引数areaはマージン内にイメージを置くかどうかを指定する。これがleft-marginなら左マージンにイメージが表示され、right-marginなら右マージンを指定する。areanilか省略なら、イメージはバッファーのテキスト内のポイント位置に表示される。

内部的には、この関数はオーバーレイを作成して、値がそのイメージであるようなdisplayプロパティをもつテキストを含む、before-stringプロパティをそのオーバーレイに与えている(なんと!)。

Function: remove-images start end &optional buffer

この関数はbufferの位置startendの間のイメージを削除する。bufferが省略かnilならカレントバッファーからイメージを削除する。

これはput-imageが行う方法でbufferに配置されたイメージだけを削除して、insert-imageや他の方法で挿入されたイメージは削除しない。

Function: image-size spec &optional pixels frame

この関数はペアー(width . height)としてイメージのサイズをリターンする。specはイメージspec。pixelsが非nilならピクセル単位、それ以外ならframeのデフォルトの文字サイズ単位で量ったサイズをリターンする(Frame Fontを参照)。frameはイメージが表示されるフレーム。framenilまたは省略された場合には選択されたフレームを使用する(Input Focusを参照)。

Variable: max-image-size

この変数はEmacsがロードするイメージの最大サイズを定義するために使用される。Emacsはこの制限より大きいイメージのロード(と表示)を拒絶するだろう。

値が整数ならピクセル単位で量ったイメージの最大の高さと幅を直接指定する。浮動小数点数ならフレームの高さと幅にたいする比率として、イメージの最大の高さと幅を指定する。値が数値でなければイメージサイズにたいする明示的な制限は存在しない。

この変数の目的は意図せずEmacsに不当に大きなイメージがロードされるとを防ぐことである。これはイメージの初回ロード時だけ効果がある。イメージが一度イメージキャッシュに置かれると、その後にmax-image-sizeの値が変更されても、そのイメージは常に表示可能である(Image Cacheを参照)。

上記の挿入関数で挿入されたイメージは、表示されたイメージを横断するテキスト(またはオーバーレイ)のプロパティ内にインストールされたローカルキーマップも取得します。このキーマップは以下のコマンドを定義します。

+

イメージサイズを拡大する(image-increase-size)。‘4’というプレフィクス値は40%のサイズ拡大を意味する。デフォルトは20%。

-

イメージサイズを縮小する(image-increase-size)。‘4’というプレフィクス値は40%のサイズ縮小を意味する。デフォルトは20%。

r

イメージを時計回りに90°ローテートする(image-rotate。プレフィスを与えるとかわりに反時計回りに90°ローテートすることを意味する。

o

イメージをファイルに保存する(image-save)。