## Tcl9.0.3/Tk9.0.3 Documentation > Tk C API > GetImage

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    Tk_GetImage, Tk_RedrawImage, Tk_SizeOfImage, Tk_FreeImage — use an image in a widget
  SYNOPSIS
    #include <tk.h>
    Tk_Image
    Tk_GetImage(interp, tkwin, name, changeProc, clientData)
    Tk_RedrawImage(image, imageX, imageY, width, height, drawable, drawableX, drawableY)
    Tk_SizeOfImage(image, widthPtr, heightPtr)
    Tk_FreeImage(image)
  引数 ARGUMENTS
    Tcl_Interp *interp (入力in)
    Tk_Window tkwin (入力in)
    const char *name (入力in)
    Tk_ImageChangedProc *changeProc (入力in)
    void *clientData (入力in)
    Tk_Image image (入力in)
    int imageX (入力in)
    int imageY (入力in)
    int width ((in))
    int height ((in))
    Drawable drawable (入力in)
    int drawableX (入力in)
    int drawableY (入力in)
    int widthPtr (出力out)
    int heightPtr (出力out)
  説明 DESCRIPTION
  SEE ALSO
  KEYWORDS

### NAME

Tk_GetImage, Tk_RedrawImage, Tk_SizeOfImage, Tk_FreeImage — use an image in a widget

### SYNOPSIS

#include <tk.h>
Tk_Image
Tk_GetImage(interp, tkwin, name, changeProc, clientData)
Tk_RedrawImage(image, imageX, imageY, width, height, drawable, drawableX, drawableY)
Tk_SizeOfImage(image, widthPtr, heightPtr)
Tk_FreeImage(image)

### 引数 ARGUMENTS

Tcl_Interp *interp (入力in)
  不都合伝言文を残す場所｡　 Place to leave error message.

Tk_Window tkwin (入力in)
  そこで映像が使われる窓｡　 Window in which image will be used.

const char *name (入力in)
  映像の名前｡　 Name of image.

Tk_ImageChangedProc *changeProc (入力in)
  何時であれ映像内容又は寸法が変化した時に起動する Tk に関する手続き関数｡　 Procedure for Tk to invoke whenever image content or size changes.

void *clientData (入力in)
  changeProc に手渡す為の Tk に関する一語値｡　 One-word value for Tk to pass to changeProc.

Tk_Image image (入力in)
  映像即値の字句; 以前の Tk_GetImage への呼出しによって予め返されていなければならない｡　 Token for image instance; must have been returned by a previous call to Tk_GetImage.

int imageX (入力in)
  再表示すべき映像の左上隅のX-座標(映像の左上隅から画素単位で測られる)｡　 X-coordinate of upper-left corner of region of image to redisplay (measured in pixels from the image's upper-left corner).

int imageY (入力in)
  再表示すべき映像の左上隅のY-座標(映像の左上隅から画素単位で測られる)｡　 Y-coordinate of upper-left corner of region of image to redisplay (measured in pixels from the image's upper-left corner).

int width ((in))
  再表示すべき映像の領域の巾｡　 Width of region of image to redisplay.

int height ((in))
  再表示すべき映像の領域の高さ｡　 Height of region of image to redisplay.

Drawable drawable (入力in)
  映像を表示する場所｡Tk_GetImage に指定された窓､若しくは､その窓と互換の画素地図でなければならない｡　 Where to display image. Must either be window specified to Tk_GetImage or a pixmap compatible with that window.

int drawableX (入力in)
  これは､描写可能な x-coordinate であって､其処は､表示されるべき映像の x-座標 imageX である｡ Where to display image in drawable: this is the x-coordinate in drawable where x-coordinate imageX of the image should be displayed.

int drawableY (入力in)
  これは､描写可能な y-coordinate であって､其処は､表示されるべき映像の y-座標 imageY である｡ Where to display image in drawable: this is the y-coordinate in drawable where y-coordinate imageY of the image should be displayed.

int widthPtr (出力out)
  映像の巾(画素単位)をここに保存する｡　 Store width of image (in pixels) here.

int heightPtr (出力out)
  映像の高さ(画素単位)をここに保存する｡　 Store height of image (in pixels) here.

### 説明 DESCRIPTION

これ等の手続函数は影像の表示を望む部品によって起動される｡ Tk_GetImage は初めに影像の表示を決めた部品に起動される｡ name は望ましい影像の名前を与え､ tkwin は影像が表示される窓を識別する｡Tk_GetImage は既存の影像の表から影像を捜索し､影像の新しい実現値の為の字句を返す｡もし影像が存在しない場合､ Tk_GetImage は NULL を返し､不都合伝言文を解釈実行機能内の解釈実行機能の結果に残す｡ These procedures are invoked by widgets that wish to display images. Tk_GetImage is invoked by a widget when it first decides to display an image. name gives the name of the desired image and tkwin identifies the window where the image will be displayed. Tk_GetImage looks up the image in the table of existing images and returns a token for a new instance of the image. If the image does not exist then Tk_GetImage returns NULL and leaves an error message in interpreter interp's result.

部品が実際影像を表示することを望む時､Tk_RedrawImage を呼び､影像(image)と､再表示する為の影像の内部の領域(imageX, imageY, width, and height)と､影像を表示する場所(drawable, drawableX, and drawableY)を識別しなくてはならない｡ Tk は適切な影像管理譜を起動する､それは返る前に影像の要求された部位を表示する｡ When a widget wishes to actually display an image it must call Tk_RedrawImage, identifying the image (image), a region within the image to redisplay (imageX, imageY, width, and height), and a place to display the image (drawable, drawableX, and drawableY). Tk will then invoke the appropriate image manager, which will display the requested portion of the image before returning.

部品は Tk_SizeOfImage を呼出して影像の寸法を見付ることができる: 巾と高さは夫々 widthPtr と heightPtr によって与えられた場所に保存される｡ A widget can find out the dimensions of an image by calling Tk_SizeOfImage: the width and height will be stored in the locations given by widthPtr and heightPtr, respectively.

部品が影像について終了した時(譬えば､部品が削除されるか､現在のものの代りに違う影像を使おうとしている)､影像実現値を解放する為に Tk_FreeImage を呼ばなくてはならない｡部品は Tk_FreeImage に渡した後に影像字句を再び使うことはない｡それぞれの Tk_GetImage への呼出しについて Tk_FreeImage への呼出しが厳密に１回なければならない｡ When a widget is finished with an image (e.g., the widget is being deleted or it is going to use a different image instead of the current one), it must call Tk_FreeImage to release the image instance. The widget should never again use the image token after passing it to Tk_FreeImage. There must be exactly one call to Tk_FreeImage for each call to Tk_GetImage.

もし影像の変更の寸法の内容が変化すると､それ自身が再表示できる様に影像を使うどの部品も変更に関して見付ける必要がある｡ Tk_GetImage への changeProc と clientData 引数はこの目的に使われる｡ changeProc は何時であれ影像に変化が生じた時に Tkによって呼出される; それは次の原型に合致しなければならない: If the contents or size of an image changes, then any widgets using the image will need to find out about the changes so that they can redisplay themselves. The changeProc and clientData arguments to Tk_GetImage are used for this purpose. changeProc will be called by Tk whenever a change occurs in the image; it must match the following prototype:

    typedef void Tk_ImageChangedProc(
            void *clientData,
            int x,
            int y,
            int width,
            int height,
            int imageWidth,
            int imageHeight);

changeProc への clientData 引数は Tk_GetImage への clientData 引数と同じである｡それは通常､部品についての部品記録か､部品に管理されている何か他のデータ構造か､へのポインターである｡引数 x, y, width, and height は再表示されるべき影像内部の領域を識別する; それは画素で指定され､影像の左上隅から測定される｡引数 imageWidth と imageHeight は影像の(新しい)寸法を与える｡ The clientData argument to changeProc is the same as the clientData argument to Tk_GetImage. It is usually a pointer to the widget record for the widget or some other data structure managed by the widget. The arguments x, y, width, and height identify a region within the image that must be redisplayed; they are specified in pixels measured from the upper-left corner of the image. The arguments imageWidth and imageHeight give the image's (new) size.

### SEE ALSO

Tk_CreateImageType

### KEYWORDS

images, redisplay
Copyright © 1994 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.