Graphics ライブラリ


概要 - Abstract

VCSSL Graphics ライブラリ は、VCSSLで描画を扱うための標準ライブラリの一つです。

VCSSLにおける描画関連の標準ライブラリには、Graphics、Graphics2D、Graphics3D ライブラリの 3 つが存在します。
その中で、Graphics ライブラリは描画用リソースの管理機能を提供し、Graphics2D 及び Graphics3D ライブラリは実際の描画機能を提供します。

描画を行うためには、イメージやバッファ、ストリームなどのリソースが必要となります。
いくつかの(恐らく多くの)言語では、これらは独立なオブジェクトとして扱う事が多いですが、VCSSLではこれらを一つにまとめて「 グラフィックスデータ 」として扱います。
つまりVCSSLでは、アニメーションでリアルタイムに3DCGを描画するためのバッファ領域も、画像ファイルから読み込んだ固定的なイメージも、区別せずに「 グラフィックスデータ 」として扱います。

Graphics ライブラリが提供するのは、この「 グラフィックスデータ 」の生成や破棄、入出力、及び初等的な加工などの管理機能です。
例として、画像ファイル「 input.png 」を読み込み、黒色の部分を透明にして「 output.png 」に出力するには、以下のようにします。

int g1 = newGraphics("input.png"); // 画像ファイルからグラフィックスデータ g1 を生成
int g2 = newGraphics(g1, 0,0,0,255, 0,0,0,0); // g1 の黒色を透明にしたグラフィックスデータ g2 を生成
exportGraphics(g2, "output.png", "PNG"); // g2 を画像ファイルに出力
deleteGraphics(g1); // g1 を破棄
deleteGraphics(g2); // g2 を破棄

他にも、ラスタデータ(ピクセル配列)を直接操作して、初歩的な加工や描画などを行う機能が提供されます。
より高度な描画を行うには、Graphics2D 及び Graphics3D ライブラリを併せて使用してください。


目次 - Index

int newGraphics()
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。この関数で生成したグラフィックスデータは、サイズが0ピクセルのイメージを保持します。
int newGraphics( string filePath )
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。この関数で生成したグラフィックスデータは、画像ファイルから読み込んだイメージがあらかじめ描き込まれています。
int newGraphics( int red[ ][ ], int green[ ][ ], int blue[ ][ ], int alpha[ ][ ] )
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。この関数で生成したグラフィックスデータは、ピクセル配列から読み込んだイメージがあらかじめ描き込まれています。
int newGraphics( int rgba[ ][ ][ ] )
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。この関数で生成したグラフィックスデータは、ピクセル配列から読み込んだイメージがあらかじめ描き込まれています。
int newGraphics( int baseGraphics, int fromRed, int fromGreen, int fromBlue, int fromAlpha, int toRed, int toGreen, int toBlue, int toAlpha )
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。この関数で生成したグラフィックスデータは、別のグラフィックスデータの特定色を、別の色に変換したイメージがあらかじめ描き込まれています。
int newGraphics( int baseGraphics, int fromColor[ ], int toColor[ ] )
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。この関数で生成したグラフィックスデータは、別のグラフィックスデータの特定色を、別の色に変換したイメージがあらかじめ描き込まれています。
int newGraphics ( int baseGraphics, int width, int height, bool antialiasing )
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。この関数で生成したグラフィックスデータは、別のグラフィックスデータを拡大・縮小した内容があらかじめ描き込まれています。
int newGraphics ( int baseGraphics, int cropX, int cropY, int cropWidth, int cropHeight )
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。この関数で生成したグラフィックスデータは、別のグラフィックスデータの一部を抜き出した内容があらかじめ描き込まれています。
void deleteGraphics( int id )
グラフィックスデータを破棄します。
int getGraphicsWidth( int id )
グラフィックスデータが保持するイメージの幅(ピクセル数)を返します。
int getGraphicsHeight( int id )
グラフィックスデータが保持するイメージの高さ(ピクセル数)を返します。
void exportGraphics( int id, string name, string format )
グラフィックスデータが保持するイメージを、画像ファイルに変換して出力します。
void exportGraphics( int id, string name, string format, double quality )
グラフィックスデータが保持するイメージを、画像ファイルに変換して出力します。
void setGraphicsPixel( int id, int red[ ][ ], int green[ ][ ], int blue[ ][ ], int alpha[ ][ ] )
グラフィックスデータの保持するイメージを、指定されたピクセル配列で描きかえます。
void setGraphicsPixel( int id, int rgba[ ][ ][ ] )
グラフィックスデータの保持するイメージを、指定されたピクセル配列で描きかえます。
int[ ][ ][ ] getGraphicsPixel( int id )
イメージの全ピクセル色成分を格納する配列を返します。
int[ ][ ] getGraphicsPixelRed( int id )
イメージの全ピクセルについて、赤色成分のみを格納する配列を返します。
int[ ][ ] getGraphicsPixelGreen( int id )
イメージの全ピクセルについて、緑色成分のみを格納する配列を返します。
int[ ][ ] getGraphicsPixelBlue( int id )
イメージの全ピクセルについて、青色成分のみを格納する配列を返します。
int[ ][ ] getGraphicsPixelAlpha( int id )
イメージの全ピクセルについて、α値成分のみを格納する配列を返します。

構造体 - Structs

- なし - None -


変数 - Variables

- なし - None -


関数 - Functions

文法的定義
- Signature
int newGraphics()
関数名
- Name
newGraphics
役割
- Role
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。
この関数で生成したグラフィックスデータは、サイズが0ピクセルのイメージを保持します。
戻り値
- Return
(int型) 生成したグラフィックスデータに割り振られたグラフィックスデータID(識別番号)。
文法的定義
- Signature
int newGraphics( string filePath )
関数名
- Name
newGraphics
役割
- Role
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。
この関数で生成したグラフィックスデータは、画像ファイルから読み込んだイメージがあらかじめ描き込まれています。
引数
- Arguments
(string型) filePath : 画像ファイルの名称またはパス。
戻り値
- Return
(int型) 生成したグラフィックスデータに割り振られたグラフィックスデータID(識別番号)。
文法的定義
- Signature
int newGraphics( int red[ ][ ], int green[ ][ ], int blue[ ][ ], int alpha[ ][ ] )
関数名
- Name
newGraphics
役割
- Role
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。
この関数で生成したグラフィックスデータは、ピクセル配列から読み込んだイメージがあらかじめ描き込まれています。
引数
- Arguments
red[][] : ピクセルの赤色成分([Y][X]、0 ~ 255)。
green[][] : ピクセルの緑色成分([Y][X]、0 ~ 255)。
blue[][] : ピクセルの青色成分([Y][X]、0 ~ 255)。
alpha[][] : ピクセルのα値成分([Y][X]、0 ~ 255)。
戻り値
- Return
(int型) 生成したグラフィックスデータに割り振られたグラフィックスデータID(識別番号)。
文法的定義
- Signature
int newGraphics( int rgba[ ][ ][ ] )
関数名
- Name
newGraphics
役割
- Role
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。
この関数で生成したグラフィックスデータは、ピクセル配列から読み込んだイメージがあらかじめ描き込まれています。
引数
- Arguments
rgba[][][] : ピクセルの色成分([Y][X][色成分インデックス]、色成分インデックスは「0=赤 / 1=緑 / 2=青 / 3=α」、値の範囲は0 ~ 255)。
戻り値
- Return
(int型) 生成したグラフィックスデータに割り振られたグラフィックスデータID(識別番号)。
文法的定義
- Signature
int newGraphics( int baseGraphics, int fromRed, int fromGreen, int fromBlue, int fromAlpha, int toRed, int toGreen, int toBlue, int toAlpha )
関数名
- Name
newGraphics
役割
- Role
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。
この関数で生成したグラフィックスデータは、別のグラフィックスデータの特定色を、別の色に変換したイメージがあらかじめ描き込まれています。
引数
- Arguments
(int型) baseGraphics : 変換元のイメージを保持するグラフィックスデータのグラフィックスデータID。
(int型) fromRed : 変換対象の色の赤色成分(0 ~ 255)。
(int型) fromGreen : 変換対象の色の青色成分(0 ~ 255)。
(int型) fromBlue : 変換対象の色の緑色成分(0 ~ 255)。
(int型) fromAlpha : 変換対象の色のα値成分(0 ~ 255)。
(int型) toRed : 変換後の色の赤色成分(0 ~ 255)。
(int型) toGreen : 変換後の色の青色成分(0 ~ 255)。
(int型) toBlue : 変換後の色の緑色成分(0 ~ 255)。
(int型) toAlpha : 変換後の色のα値成分(0 ~ 255)。
戻り値
- Return
(int型) 生成したグラフィックスデータに割り振られたグラフィックスデータID(識別番号)。
文法的定義
- Signature
int newGraphics( int baseGraphics, int fromColor[ ], int toColor[ ] )
関数名
- Name
newGraphics
役割
- Role
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。
この関数で生成したグラフィックスデータは、別のグラフィックスデータの特定色を、別の色に変換したイメージがあらかじめ描き込まれています。
引数
- Arguments
(int型) baseGraphics : 変換元のイメージを保持するグラフィックスデータのID。
(int[]型) fromColor : 変換対象の色の成分を格納する配列。
(int[]型) toColor : 変換後の色の成分を格納する配列。
戻り値
- Return
(int型) 生成したグラフィックスデータに割り振られたグラフィックスデータID(識別番号)。
文法的定義
- Signature
int newGraphics ( int baseGraphics, int width, int height, bool antialiasing )
関数名
- Name
newGraphics
役割
- Role
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。
この関数で生成したグラフィックスデータは、別のグラフィックスデータを拡大・縮小した内容があらかじめ描き込まれています。
引数
- Arguments
(int型) baseGraphics : 元のイメージを保持するグラフィックスデータのID。
(int型) width : 生成するグラフィックスデータの幅(元のイメージをこの幅に拡大・縮小)
(int型) height : 生成するグラフィックスデータの高さ(元のイメージをこの高さに拡大・縮小)
(bool型) antialiasing : 拡大・縮小結果を滑らかにするかどうか。true を指定すると滑らかになりますが、処理時間が増加します。
戻り値
- Return
(int型) 生成したグラフィックスデータに割り振られたグラフィックスデータID(識別番号)。
文法的定義
- Signature
int newGraphics ( int baseGraphics, int cropX, int cropY, int cropWidth, int cropHeight )
関数名
- Name
newGraphics
役割
- Role
グラフィックスデータを生成し、それに固有の識別番号である「グラフィックスデータID」を割り振って返します。
この関数で生成したグラフィックスデータは、別のグラフィックスデータの一部を抜き出した内容があらかじめ描き込まれています。
引数
- Arguments
(int型) baseGraphics : 元のイメージを保持するグラフィックスデータのID。
(int型) cropX : 元の画像から抜き出す領域の左上頂点X座標
(int型) cropY : 元の画像から抜き出す領域の左上頂点Y座標
(int型) cropWidth : 元の画像から抜き出す領域の幅
(int型) cropHeight : 元の画像から抜き出す領域の高さ
戻り値
- Return
(int型) 生成したグラフィックスデータに割り振られたグラフィックスデータID(識別番号)。
文法的定義
- Signature
void deleteGraphics( int id )
関数名
- Name
deleteGraphics
役割
- Role
グラフィックスデータを破棄します。
引数
- Arguments
(int型) id : 対象グラフィックスデータのID。
戻り値
- Return
(void型)
文法的定義
- Signature
int getGraphicsWidth( int id )
関数名
- Name
getGraphicsWidth
役割
- Role
グラフィックスデータが保持するイメージの幅(ピクセル数)を返します。
引数
- Arguments
(int型) id : 対象グラフィックスデータのID。
対象グラフィックスデータの幅(ピクセル数)。 :
戻り値
- Return
(int型)
文法的定義
- Signature
int getGraphicsHeight( int id )
関数名
- Name
getGraphicsHeight
役割
- Role
グラフィックスデータが保持するイメージの高さ(ピクセル数)を返します。
引数
- Arguments
(int型) id : 対象グラフィックスデータのID。
対象グラフィックスデータの高さ(ピクセル数)。 :
戻り値
- Return
(int型)
文法的定義
- Signature
void exportGraphics( int id, string name, string format )
関数名
- Name
exportGraphics
役割
- Role
グラフィックスデータが保持するイメージを、画像ファイルに変換して出力します。
引数
- Arguments
(int型) id : 対象グラフィックスデータのID。
(string型) name : 出力ファイル名。
(string型) format : 出力ファイルの形式。"JPEG" または "PNG"、もしくは "BMP" を指定します。
戻り値
- Return
(void型)
文法的定義
- Signature
void exportGraphics( int id, string name, string format, double quality )
関数名
- Name
exportGraphics
役割
- Role
グラフィックスデータが保持するイメージを、画像ファイルに変換して出力します。
引数
- Arguments
(int型) id : 対象グラフィックスデータのID。
(string型) name : 出力ファイル名。
(string型) format : 出力ファイルの形式。"JPEG" または "PNG"、もしくは "BMP" を指定します。
(double型) quality : 画質(0.0 ~ 100.0)。JPEG の場合に有効です。大きいほど高画質です。
戻り値
- Return
(void型)
文法的定義
- Signature
void setGraphicsPixel( int id, int red[ ][ ], int green[ ][ ], int blue[ ][ ], int alpha[ ][ ] )
関数名
- Name
setGraphicsPixel
役割
- Role
グラフィックスデータの保持するイメージを、指定されたピクセル配列で描きかえます。
引数
- Arguments
(int型) id : 対象グラフィックスデータのID。
red[][] : ピクセルの赤色成分([Y][X]、0 ~ 255)。
green[][] : ピクセルの緑色成分([Y][X]、0 ~ 255)。
blue[][] : ピクセルの青色成分([Y][X]、0 ~ 255)。
alpha[][] : ピクセルのα値成分([Y][X]、0 ~ 255)。
戻り値
- Return
(void型)
文法的定義
- Signature
void setGraphicsPixel( int id, int rgba[ ][ ][ ] )
関数名
- Name
setGraphicsPixel
役割
- Role
グラフィックスデータの保持するイメージを、指定されたピクセル配列で描きかえます。
引数
- Arguments
(int型) id : 対象グラフィックスデータのID。
rgba[][][] : ピクセルの色成分([Y][X][色成分インデックス]、色成分インデックスは「0=赤 / 1=緑 / 2=青 / 3=α」、値の範囲は0 ~ 255)。
戻り値
- Return
(void型)
文法的定義
- Signature
int[ ][ ][ ] getGraphicsPixel( int id )
関数名
- Name
getGraphicsPixel
役割
- Role
イメージの全ピクセル色成分を格納する配列を返します。
引数
- Arguments
(int型) id : 対象グラフィックスデータのID。
戻り値
- Return
(int[][][]型) ピクセルの色成分([Y][X][色成分インデックス]、色成分インデックスは「0=赤 / 1=緑 / 2=青 / 3=α」、値の範囲は0 ~ 255)。
文法的定義
- Signature
int[ ][ ] getGraphicsPixelRed( int id )
関数名
- Name
getGraphicsPixelRed
役割
- Role
イメージの全ピクセルについて、赤色成分のみを格納する配列を返します。
引数
- Arguments
(int型) id : 対象グラフィックスデータのID。
戻り値
- Return
(int[][]型) ピクセルの赤色成分([Y][X]、値の範囲は0 ~ 255)。
文法的定義
- Signature
int[ ][ ] getGraphicsPixelGreen( int id )
関数名
- Name
getGraphicsPixelGreen
役割
- Role
イメージの全ピクセルについて、緑色成分のみを格納する配列を返します。
引数
- Arguments
(int型) id : 対象グラフィックスデータのID。
戻り値
- Return
(int[][]型) ピクセルの緑色成分([Y][X]、値の範囲は0 ~ 255)。
文法的定義
- Signature
int[ ][ ] getGraphicsPixelBlue( int id )
関数名
- Name
getGraphicsPixelBlue
役割
- Role
イメージの全ピクセルについて、青色成分のみを格納する配列を返します。
引数
- Arguments
(int型) id : 対象グラフィックスデータのID。
戻り値
- Return
(int[][]型) ピクセルの青色成分([Y][X]、値の範囲は0 ~ 255)。
文法的定義
- Signature
int[ ][ ] getGraphicsPixelAlpha( int id )
関数名
- Name
getGraphicsPixelAlpha
役割
- Role
イメージの全ピクセルについて、α値成分のみを格納する配列を返します。
引数
- Arguments
(int型) id : 対象グラフィックスデータのID。
戻り値
- Return
(int[][]型) ピクセルのα値成分([Y][X]、値の範囲は0 ~ 255)。


スポンサーリンク



この階層の目次
お知らせ

各ソフトウェアをアップデート、リニアングラフのコマンド拡張やVCSSLの英語対応など
2024/02/05 - 各ソフトの一斉アップデートの内容をお知らせします。今回は、リニアングラフのコマンド機能を大幅拡張したのがメインです。また、VCSSLのメッセージ類の英語対応も行いました。

Vnano の Ver.1.1 で実装した反復計算高速化の内側
2024/01/17 - 前回のお知らせ記事の続編です。スクリプトエンジン Vnano の Ver.1.1 において実施した高速化を、エンジン内部の実装面から掘り下げて解説します。

スクリプトエンジン Vnano の Ver.1.1 を公開、同じ内容の反復実行が劇的に高速化
2023/12/22 - スクリプトエンジン Vnano の最新版を公開しました。同じ計算式やスクリプトを反復実行する速さが、大幅に向上しました。次期版リニアングラフ3D内での活用例を交えつつ、詳しく解説します。

新着
[公式ガイドサンプル] 各種の図形や画像を描画する

「VCSSL 2DCG開発ガイド」内のサンプルコードです。図形や画像などを描画します。
2022-12-16
角度の「度」とラジアンとを相互変換し、図示もするツール

45度などの「度」の値と、ラジアンの値とを相互に変換できるツールです。対応する角度の図示もできます。
2022-11-22
[公式ガイドサンプル] 立体モデルを回転させるアニメーション

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを、アニメーションで回転させ続けます
2022-11-18
[公式ガイドサンプル] 立体モデルを回転させる

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを、指定した角度だけ回転させます。
2022-11-17
[公式ガイドサンプル] 四則演算の計算順序や、カッコを使った順序指定

「VCSSLスタートアップガイド」内のサンプルコードです。四則演算が計算される順序や、カッコを使って順序を指定する方法を例示します。
2022-10-31