HCI プログラミング 5 回目ウィンドウに画像を表示してみよう 今日の講義で学ぶ内容 画像の表示 画像のエフェクト 画像のビューポート指定 画像の表示 1 画像を表示してみましょう 画像の表示はクラス ImageView により管理されます ソースファイル名 :Sample5_1.java //

Similar documents
ウィンドウの構成ウィンドウはタイトルバーとウィンドウ枠からなります タイトルバーには最小化 / 最大化ボタンや閉じるボタンがあります また ウィンドウはクライアント領域をもちます クライアント領域にはボタンなど GUI 部品が配置されます GUI 部品配置 ( レイアウト ) ウィンドウ ( ステー

ラベルを管理するクラス Label ラベルはクラス Label により管理され 各種設定を行うメソッドが準備されています ラベルの生成 new Label("1. 通常のラベルです "); ラベルのサイズ setprefsize(200,100); ラベル文字が 1. 通常のラベルです で横 200

Assignment9_1.java

HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなど

// ステージを設定します stage.setscene(scene); stage.settitle(" キャンバス "); // ステージを表示します stage.show(); public static void main(string[] args) launch(args); キャンバス

HCI プログラミング 10 回目テキストフィールドとキーイベント 今日の講義で学ぶ内容 テキストフィールドの利用 キーイベントの処理 テキストフィールドの利用 1 テキストフィールドを配置してみましょう テキストフィールドを用いることにより 数値や文字列などのデータ入力が可能になります ソースファ

JavaプログラミングⅠ

MyEventHandler actionhandler = new MyEventHandler(); m.addeventhandler(actionevent.any, actionhandler); // レイアウト BorderPane を生成 / 設定します BorderPane bp

JavaプログラミングⅠ

プログラミング基礎I(再)

JavaプログラミングⅠ

JavaプログラミングⅠ

Microsoft PowerPoint - chap10_OOP.ppt

Microsoft PowerPoint ppt

Prog2_9th

Prog2_11th

Microsoft PowerPoint - OOP.pptx

GUIプログラムⅣ

Microsoft PowerPoint - OOP.pptx

教材ドットコムオリジナル教材 0から始めるiアフ リ リファレンス i アプリ簡易リファレンス ver i アプリ Java 独自のメソッド (1)iアプリの命令を使えるようにする import com.nttdocomo.ui.*; (2) 乱数を使う import java.u

手書認識 グラフ描画 Step2-2 手書認識 : 認識結果を PaintPanel で描画する < 属性付き文字列 AttributedString> 標準出力では分かりにくいうえに認識結果を使えないので 認識するごとに PaintPanel に文字を描画することにする ここで 数式はただの文字列

Prog1_12th

ToDo: 今回のタイトル

JAVA入門

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

Javaプログラムの実行手順

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

PowerPoint プレゼンテーション

JavaプログラミングⅠ

Prog1_12th

Taro-twokansu3.jtd

Microsoft PowerPoint - lec06 [互換モード]

11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS デザインパターンとは? デザインパターン 過去のソフトウェア設計者が生み出したオブジェクト指向設計に関して, ノウハウを蓄積し 名前をつけ 再利用しやすいようにカタログ化したもの 各デ


<4D F736F F F696E74202D AC C8899E D834F E >

ガイダンス

JavaプログラミングⅠ

PowerPoint プレゼンテーション

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

Microsoft PowerPoint - prog03.ppt

JavaプログラミングⅠ

Prog1_3rd

ガイダンス

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

Microsoft PowerPoint ppt

PowerPoint プレゼンテーション

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

JavaプログラミングⅠ

2

< F2D825282CC947B909482CC A815B83682E6A>

Microsoft Word - A05_AndroidプログラミングJUMP_画面800×1280

Prog2_10th

Java言語 第1回

PowerPoint プレゼンテーション

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先

10/31 Java AWTの基本構造(Frameクラスの継承) 演習課題資料

PowerPoint Presentation

Java言語 第1回

10K

ブロック崩し Step1 矢印キーで左右に動かせるパドルを描画する < パドルの表現方法 > パドルは java.awt パッケージの Rectangle という Java が用意しているクラスを使う これは四角形を表すクラスで 左上の点の座標と幅 高さをもっている (x, y) Rectangle

Assignment_.java /////////////////////////////////////////////////////////////////////// // 課題 星の画像がマウスカーソルを追従するコードを作成しなさい 次 ///////////////////

Prog2_12th

< F2D82B682E182F182AF82F12E6A7464>

GUIプログラムⅤ

JavaプログラミングⅠ

スライド 1

< F2D92DE82E8914B82CC977088D32E6A7464>

PowerPoint Presentation

できるプログラマーを本気で育てる Java 超 Webプログラマーへの第 歩 第 2 回オブジェクト指向 テクノロジックアート 瀬 嘉秀

MasterDetailFlow SettingsActivity 2. Android Lint Checks 以前のバージョンよりコンパイルのチェックが厳しくなりました このような厳しいチェックを Android Lint Checks と言います Abdroid プログラミング Bible で

ガイダンス

以下に java.awt.graphics クラスの主なメソッドを示す (Graphics クラスの ) メソッド drawline(int x1, int y1, int x2, int y2) drawrect(int x, int y, int width, int height) fillr

Microsoft PowerPoint ppt

メディプロ1 Javaプログラミング補足資料.ppt

教材ドットコムオリジナル教材 0から始めるiアプリ (4) 0 から始める i アプリ (4) i アプリをプログラミングする際に必要なのは Java というプログラミング言語の基礎知識です 独自の命令や駆使してプログラミングをするわけですが Java というベースになっている言語を知らないでプログ

Javaの作成の前に

ガイダンス

課題

Microsoft PowerPoint - prog12.ppt

Prog1_15th

PowerPoint プレゼンテーション

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

人工知能入門

ガイダンス

のようにする 上の例では GeneralPath を new するときに コンストラクタに何も指定していないが 直線を表す Line, 四角形を表す Rectangle などを引数に与えてもよい 矢印を作成するメソッドの引数矢印を表す GeneralPath を生成するために getarrowpat

Prog1_10th

Prog2_10th

JavaプログラミングⅠ

基本情報STEP UP演習Java対策

Prog1_13th

< F2D B838A835882CC8CF68EAE2E6A7464>

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

piyo0702a.rtfd

Web プログラミング 1 JavaScript (3) (4 章 ) 2013/7/3( 水 ) 日時 講義内容 4/10 ( 水 ) ガイダンス Web (1 章 ) 4/17 ( 水 ) HTML+CSS (1) (2 章 ) 4/24 ( 水 ) HTML+CSS (2) (2 章 ) 5/

Prog2_9th

Java言語 第1回

Prog2_10th

Transcription:

HCI プログラミング 5 回目ウィンドウに画像を表示してみよう 今日の講義で学ぶ内容 画像の表示 画像のエフェクト 画像のビューポート指定 画像の表示 1 画像を表示してみましょう 画像の表示はクラス ImageView により管理されます ソースファイル名 :Sample5_1.java // 画像の表示 public class Sample5_1 extends Application // 画像を生成 / 設定します ImageView iv = new ImageView("Sunset.jpg"); lst.add(iv); 1 / 15

画像の表示を管理するクラス ImageView 画像の表示はクラス ImageView により管理され 表示を処理するメソッドが準備されています 画像のオープン new ImageView("Sunset.jpg"); ファイル Sunset.jpg がオープンされ オブジェクトに読み込まれます 画像ファイルの相対パス指定と絶対パス指定 ファイルの相対パス指定 new ImageView("Book/Sunset.jpg"); ファイルの絶対パス指定( ドライブの指定があります ) new ImageView("file:///C:/Book/Sunset.jpg"); ファイルの絶対パス指定( ドライブ C: のルートとみなされます ) new ImageView("/Book/Sunset.jpg"); ネットワーク上のファイルの指定 new ImageView("http://www.test.co.jp/Book/Sunset.jpg"); レイアウト HBox に画像を配置するには ボタンなどの GUI 部品と同じように 画像をレイアウトに配置できます コード例 1. // レイアウトの生成 2. // GUI 部品リストの取得 3. lst.add(iv); // 画像の追加 ImageView クラスのオブジェクト iv を GUI 部品リストに追加します 利用したクラスの一覧 ImageView クラス Node クラス Object クラス ImageView(String s) 画像ファイル s をオープンします ( コンストラクタ ) ObservableList<Node> インタフェース boolean add(node e) 新しい部品 e を GUI 部品リストに追加します boolean addall(node[] e) 新しい部品群 e を GUI 部品リストに追加します GUI 部品リストが更新されたら true が戻ります Node クラスは ImageView クラスのスーパークラスです 2 / 15

2 画像のサイズを調べてみましょう 画像はクラス Image により表現されます Image クラスのメソッドにより画像情報を取得できます ソースファイル名 :Sample5_2.java // 画像のサイズの表示 public class Sample5_2 extends Application // 画像を生成 / 設定します ImageView iv = new ImageView("Sunset.jpg"); // 画像の属性を取得します Image img = iv.getimage(); double width = img.getwidth(); double height = img.getheight(); System.out.println(" 画像のサイズ幅 ="+width+" 高さ ="+height); lst.add(iv); 実行結果 画像のサイズ幅 =320.0 高さ =240.0 3 / 15

画像を管理するクラス Image 画像はクラス Image により管理され 画像情報を取得するメソッドが準備されています 画像の横の長さ( ピクセル ) の取得 getwidth(); 画像の縦の長さ( ピクセル ) の取得 getheight(); この他 画像の形式情報や画素情報を取得するメソッドが準備されています 利用したクラスの一覧 ImageView クラス Node クラス Object クラス Image getimage() Image クラス型の画像オブジェクトを取得します Image クラス Object クラス double getwidth() 画像の横の長さ ( ピクセル ) を取得します double getheight() 画像の縦の長さ ( ピクセル ) を取得します 4 / 15

3 画像のレイアウト枠を変更してみましょう (1) 画像が描画されるレイアウト枠のサイズを変更することができます ソースファイル名 :Sample5_3.java // 画像を指定サイズへフィット public class Sample5_3 extends Application // 画像を生成 / 設定します ImageView iv = new ImageView("Sunset.jpg"); iv.setfitwidth(200); iv.setfitheight(300); lst.add(iv); レイアウト枠のサイズを変更するには ImageView クラスにレイアウト枠を指定するメソッドが準備されています レイアウト枠の横サイズ( ピクセル ) を指定 setfitwidth(200); レイアウト枠の縦サイズ( ピクセル ) を指定 setfitheight(300); 横が 200 ピクセル 縦が 300 ピクセルのレイアウト枠になります 画像はこの枠に収まるように引き伸 ばされ または縮められて描画されます 5 / 15

4 画像のレイアウト枠を変更してみましょう (2) 画像の縦横比を維持したままレイアウト枠のサイズを変更することができます ソースファイル名 :Sample5_4.java // 画像を縦横比を固定したまま指定サイズへフィット public class Sample5_4 extends Application // 画像を生成 / 設定します ImageView iv = new ImageView("Sunset.jpg"); iv.setpreserveratio(true); iv.setfitwidth(200); lst.add(iv); レイアウト枠の縦横比を固定するには ImageView クラスにレイアウト枠の縦横比を固定するメソッドが準備されています レイアウト枠の縦横比の固定 setpreserveratio(true); レイアウト枠の縦横比が固定された場合は その横の長さまたは縦の長さの一方を設定します 6 / 15

利用したクラスの一覧 ImageView クラス Node クラス Object クラス void setfitwidth(double v) レイアウト枠の横の長さ ( ピクセル ) を v にします void setfitheight(double v) レイアウト枠の縦の長さ ( ピクセル ) を v にします void setpreserveratio(boolean b) 引数が true の場合 レイアウト枠の縦横比を固定します 7 / 15

5 複数の画像を表示してみましょう 複数の ImageView オブジェクトを準備して複数の画像を表示できます ソースファイル名 :Sample5_5.java // 複数の画像の表示 public class Sample5_5 extends Application // 4 枚の画像を生成 / 設定します ImageView[] ivs = new ImageView[4]; ivs[0] = new ImageView("Sunset.jpg"); ivs[1] = new ImageView("Beach.jpg"); ivs[2] = new ImageView("Cafe.jpg"); ivs[3] = new ImageView("Food.jpg"); lst.addall(ivs); 8 / 15

画像のエフェクト 6 画像にセピアやぼかしのエフェクトをつけてみましょう エフェクトを表現するクラスを用いて 画像に様々なエフェクトをつけることができます ソースファイル名 :Sample5_6.java // 画像のエフェクト ( セピアとぼかし ) public class Sample5_6 extends Application // 4 枚の画像を生成 / 設定します ImageView[] ivs = new ImageView[4]; ivs[0] = new ImageView("Sunset.jpg"); ivs[1] = new ImageView("Sunset.jpg"); ivs[2] = new ImageView("Cafe.jpg"); ivs[3] = new ImageView("Cafe.jpg"); // エフェクトを生成し 画像に適用します SepiaTone spa = new SepiaTone(); spa.setlevel(0.9); ivs[1].seteffect(spa); GaussianBlur gb = new GaussianBlur(); gb.setradius(10.0); ivs[3].seteffect(gb); lst.addall(ivs); 9 / 15

セピア ( エフェクト ) を表現するクラス SepiaTone セピアはクラス SepiaTone で表現されます エフェクトの強さなどの設定を行うことができます セピアエフェクトの生成 new SepiaTone(); エフェクトの強さ設定 setlevel(0.9); セピアエフェクトを生成し 強さを 0.9 に設定します 強さは最大 1.0 から最小 0.0 で設定します 強さ 0.2 強さ 0.5 強さ 0.8 ぼかし ( エフェクト ) を表現するクラス GaussianBlur ぼかしはクラス GaussianBlur で表現されます エフェクトの強さなどの設定を行うことができます ぼかしエフェクトの生成 new GaussianBlur(); ぼかし半径の設定 setradius(10.0); ぼかしエフェクトを生成し ぼかし半径を 10.0 にします 半径は最大 63.0 から最小 0.0 で設定します ぼかし半径 2.0 ぼかし半径 8.0 ぼかし半径 32.0 画像にエフェクトをつけるにはクラス ImageView には各種エフェクトをつけるメソッドが準備されています 画像にエフェクトを設定 seteffect( ); 引数にエフェクトを表現するクラスのオブジェクトを渡すと そのエフェクトが画像に施されます 10 / 15

利用したクラスの一覧 ImageView クラス Node クラス Object クラス void seteffect(effect e) エフェクト e を画像に適用します クラス Effect はクラス SepiaTone とクラス GaussianBlur のスーパークラスです SepiaTone クラス Effect クラス Object クラス SepiaTone() セピアエフェクトを生成します ( コンストラクタ ) void setlevel(double v) セピアの強さ (0.0 ~ 1.0) を設定します GaussianBlur クラス Effect クラス Object クラス GaussianBlur() ぼかしエフェクトを生成します ( コンストラクタ ) void setradius(double v) ぼかし半径 (0.0 ~ 63.0) を設定します 11 / 15

7 画像にインナシャドーや輝きのエフェクトをつけてみましょう エフェクトを表現するクラスを用いて 画像に様々なエフェクトをつけることができます ソースファイル名 :Sample5_7.java // 画像のエフェクト ( インナシャドーと輝き ) public class Sample5_7 extends Application // 4 枚の画像を生成 / 設定します ImageView[] ivs = new ImageView[4]; ivs[0] = new ImageView("Sunset.jpg"); ivs[1] = new ImageView("Sunset.jpg"); ivs[2] = new ImageView("Cafe.jpg"); ivs[3] = new ImageView("Cafe.jpg"); // エフェクトを生成し 画像に適用します InnerShadow ins = new InnerShadow(); ins.setoffsetx(4); ins.setoffsety(4); ivs[1].seteffect(ins); Glow gw = new Glow(); gw.setlevel(0.6); ivs[3].seteffect(gw); lst.addall(ivs); 12 / 15

インナシャドー ( エフェクト ) を表現するクラス InnerShadow インナシャドーはクラス InnerShadow で表現されます 影の大きさなどの設定を行うことができます インナシャドーエフェクトの生成 new InnerShadow(); 影の長さ(X 軸方向 ) setoffsetx(4); 影の長さ(Y 軸方向 ) setoffsety(4); X 軸方向 4 ピクセル Y 軸方向 4 ピクセルの長さの影を生成します X=2, Y=2 X=8, Y=8 X=2, Y=8 輝き ( エフェクト ) を表現するクラス Glow 輝きはクラス Glow で表現されます エフェクトの強さなどの設定を行うことができます 輝きエフェクトの生成 new Glow(); 輝きの強さの設定 setlevel(0.6); 輝きエフェクトを生成し 強さを 0.6 に設定します 強さは最大 1.0 から最小 0.0 で設定します 強さ 0.2 強さ 0.5 強さ 0.8 利用したクラスの一覧 InnerShadow クラス Effect クラス Object クラス InnerShadow() インナシャドーエフェクトを生成します ( コンストラクタ ) void setoffsetx(double v) 影の X 軸方向の長さ ( ピクセル ) を v に設定します void setoffsety(double v) 影の Y 軸方向の長さ ( ピクセル ) を v に設定します Glow クラス Effect クラス Object クラス Glow() 輝きエフェクトを生成します ( コンストラクタ ) void setlevel(double v) 輝きの強さ (0.0 ~ 1.0) を v に設定します 13 / 15

画像のビューポート指定 8 画像の部分を切り出してみましょう ビューポートを用いて 画像の一部分を切り出すことができます ソースファイル名 :Sample5_8.java // 画像のビューポート指定 public class Sample5_8 extends Application // 画像を生成 / 設定します ImageView iv = new ImageView("Sunset.jpg"); // ビューポートを生成し 画像に適用します Rectangle2D rt = new Rectangle2D(50, 50, 150, 150); iv.setviewport(rt); lst.add(iv); 14 / 15

ビューポートとは ビューポートは画像を切り出す矩形です 矩形の中に入る画像が切り出され表示されます ビューポートはクラス Rectangle2D により表現されます ビューポートの指定 new Rectangle2D(50, 50, 150, 150); 始点座標 (50,50) から幅 150 ピクセル 高さ 150 ピクセルの矩形 ( ビューポート ) が生成されます 画像にビューポートを指定するにはクラス ImageView にビューポートを指定するメソッドが準備されています ビューポートの指定 setviewport( ); 引数にビューポートを表す Rectangle2D クラスのオブジェクトを渡します 指定した大きさの矩形で画 像が切り出されます 利用したクラスの一覧 ImageView クラス Node クラス Object クラス void setviewport(rectangle2d r) ビューポート r を画像に設定します Rectangle2D クラス Object クラス Rectangle2D(double minx, double miny, double width, double height) 指定された大きさの矩形を生成します ( コンストラクタ ) 15 / 15