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

この階層の目次
お知らせ

Vnanoの公式サイトがオープン、チュートリアルやAPI仕様書等も掲載
2019年08月07日 - オープンソースのアプリケーション組み込み用スクリプトエンジン「 Vnano 」の公式サイトを開設しました。チュートリアルや、スクリプトエンジンのAPI仕様書などが参照できます。その概要をお知らせします。

リニアングラフ3D/2Dが連番ファイルのアニメーションに標準で対応
2019年07月17日 - リニアングラフ3D/2Dでは、7月17日公開の最新版より、連番ファイルを連続的に読み込みながらアニメーション描画するプログラムを同梱し、メニューから標準で使用可能になりました。その概要をお知らせします。

Vnanoのスクリプトエンジンアーキテクチャ解説2: コンパイラ
2019年07月03日 - オープンソースで開発中のスクリプトエンジン「 Vnano 」のアーキテクチャを解説する連載の第2回です。今回は、スクリプトを中間コードへと変換する、コンパイラ部分の内部をクローズアップして解説します。

新着
[公式ガイドサンプル] ユーザーのGUI操作に対して処理を行う

「VCSSL GUI開発ガイド」内のサンプルコードです。ユーザーがGUIを操作した際に行う処理を実装します。
2019年07月28日
[公式ガイドサンプル] 各種GUIコンポーネントを画面上に配置する

「VCSSL GUI開発ガイド」内のサンプルコードです。色々な種類のGUI部品を画面上に配置します。
2019年07月28日
連番ファイルから3Dグラフをアニメーション描画するツール

フォルダ内の連番データファイルを読み込み、3Dグラフを高速で連続描画して、アニメーションさせるツールです。グラフを連番の画像ファイルに保存する事もできます。
2019年06月03日
連番ファイルから2Dグラフをアニメーション描画するツール

フォルダ内の連番データファイルを読み込み、2Dグラフを高速で連続描画して、アニメーションさせるツールです。グラフを連番の画像ファイルに保存する事もできます。
2019年05月24日
[公式ガイドサンプル] 立体モデルを生成して3D空間に配置する

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを生成し、3D空間に配置します。
2019年05月21日
開発元Twitterアカウント