2

キャンバスにグラフィック画像を表示する正しい方法は何ですか?私はオブジェクトaImageを持っています:

(ImageReader fromFile: 'clockface.jpg') image.

GUIBuilder(新しいキャンバス->インストール)を介して、ClockWindowという新しいクラスを作成しました。

 (...)superclass: #{UI.ApplicationModel}(...)

およびメソッドの初期化:

initialize
|img  gc|
img:=(ImageReader fromFile: 'clockface.jpg') image.
img convertForGraphicsDevice: Screen default.
gc := ScreenGraphicsContext new.
img displayOn: gc.
gc displayOn: self.

しかし、エラーが発生しました:messageNotUnderstood:representImage:anImage forMedium:medium in line: "img displayOn:gc。"

4

1 に答える 1

0

最も簡単な方法は、画像付きのラベルを使用することです。方法は次のとおりです。

  1. 画像を返すclockFaceというクラスメソッドを定義します
clockFace
  <resource: #image>
  ^(ImageReader fromFile: 'clockface.jpg') image
  1. UIにラベルを追加する

  2. 「ラベルは画像」をクリックします

  3. メッセージには、#clockFaceを使用します

常にファイルから文字盤画像をロードするのは遅くなります。これを修正するには、clockFaceメソッドに移動し、[編集]を選択してから、ImageEditorで[インストール]を使用します。これにより、ファイルから画像を読み込むコードが、画像をメソッドに保存する同等のメソッドに置き換えられます。

追加のブラウニーポイントについては、別のクラスメソッドを作成してCachedImageを提供できます。CachedImageは、表示するたびに画像を画面のパレットに変換する必要がないため、UIでの再表示が速くなります。次のように、clockFaceCachedImageというクラスメソッドを作成するだけです。

clockFaceCachedImage
  ^CachedImage on: self clockFace

これで、clockFaceCachedImageをラベルのメッセージとして使用できます。

于 2012-11-06T05:14:53.190 に答える