VBスクリプト用グラフィック描画オブジェクト
Doodle2取り扱い説明書

For Version 1.3
copyright(c) SIGNAL9, 2001,2004,2005,2006

全般的解説
座標系−キャンバス−
Doodle2の座標系は、向かって左上が原点で、原点座標は(X=0,Y=0)です。単位は基本的にピクセル(ドット)単位ですが、フォントの大きさはポイント指定です。通常、メソッドでは(横位置、縦位置)形式で引数を指定します。以下のメソッド説明では 横=X 縦=Yと表現します。

Doodle2は「キャンバス」を作成して、それに描画を行います。 描画のための、<線を描くペン>と<面を描くブラシ>があります。ペン・ブラシの色や形を指定してキャンバスに描画する、というのがDoodle2の基本的な使い方です。

キャンバスをはみ出た分は、基本的にキャンパス内でクリッピングします。つまり、現在のキャンバスの大きさをはみ出るような座標を指定しても、キャンバス自体は大きくなりません。ただし、画像の追加ロードなどの時には適時キャンバス自体を拡張し、なるべく画面内に収めようとします。

キャンバスには、そのキャンバスが何色まで扱えるかの区別があります。Doodle2では、NewCanvasなどを実行した時にはデフォルトでは24ビットの色を扱えるようにキャンバスを準備します。ファイルやストリームから読み込んだ場合にはその元のファイルに合わせます。通常のフルカラーBMPやPNG,JPEGなどでは24ビットカラーが標準ですがGIFでは8ビットになります。

カラーコード
Doodle2では色の使い方は基本的に24ビットRGBですので、VBSなど一般的なWindowsアプリと同じです。世間一般では"RGB"(赤・緑・青)といわれますが、内部的には B, G, R の並びで数値化しています。
つまり、10進数/16進数で直接指定する場合には、

              R G B          B  G  R
      Color=(255,0,0)     -> 00 00 FF(16) -> 255(10)
      Color=(0,255,0)     -> 00 FF 00(16) -> 65280(10)
      Color=(0,0,255)     -> FF 00 00(16) -> 16711680(10)
      Color=(255,255,255) -> FF FF FF(16) -> 16777215(10)
となります。
実際にはパレットがありますのでPBGRですが、パレットオプションは現バージョンでは使用しませんので、0(16)〜FFFFFF(16)と考えてください。VBSには、vbBlack 、vbRed など、色を表す組み込み定数がいくつか用意されていますが、それと同じです(ただし、下記★注意★参照)。

一般的には"RGB"の方が直感的でしょうし、HTMLなどでもこの順でパラメータとして与えるようですので、RGBToColorメソッドでは、RGBの順で指定するようにしてあります。

RGBToColor( R, G, B, [P] )

R,G,Bはそれぞれ0〜255の数字が指定できます。

註:前述の如く、最後のPはパレットオプションです。

  1. 0 : システムパレット
  2. 1 : 現在のパレット
  3. 2 : 現在のDCの論理パレット
ただし現バージョンでは直接的にパレット関係の操作はサポートしていません。内部的には極力24ビットで扱おうとしますので、パレット部分は通常省略しておいてください(Pは省略可能、デフォルトを0にしてあります)。

要するに、
RGBToColor(255,0,0) -> 真っ赤
RGBToColor(0,0,255) -> 真っ青
というわけです。Doodle2ではRGBToColorで計算した結果をメソッドやプロパティに代入する・もしくは値を直接指定することで描画する線や面の色を変更できます。

★注意★
VBSの場合、16進で直接指定することは、暗黙の型指定があるのでお勧めできません。 例えば、VBSのマニュアルにはvbGreen = &hFF00 であると書かれていますが、VBS上で、単純に
a = &hFF00
b = vbGreen
としても、a=b にはなりません

出力する画像ファイルの種類によってのキャンバス・色への影響
前述の様に、GIFファイルというのは最大でも256色しか扱えません。
例えば、LoadFromFile("foo.gif")と実行すると、その時のキャンバスは8ビット幅(PixelFormatプロパティで3)になります。このキャンバスに256以上の色で操作をしようとすると、Doodleはなるべく適当な色で操作を実行しようとします。
また、キャンバス全体に対する効果(例えば、ガンマ補正・コントラスト調整、色平均を取る拡大縮小など)を実行すると、暗黙の内に内部フォーマットを24ビットに変更します。
このため、GIFや色数の少ないBMPを扱っていると、時として思いがけない色に変わったりするかもしれません。こういう場合は、色数を調整するとか、キャンバスへの書き込み順番を変更するなどの対処が必要となります。

例えば、Doodle2では画像の追加ロードをサポートしましたが、

      ret = d.LoadFromFile("foo.PNG") ' ←この時点でキャンバスは24ビット色
      〜なにかの処理〜
      ret = d.SaveToStream( foo, "BMP") '←24ビットのBMPとして変数に退避
      ret = d.LoadFromFile("bar.GIF")  ' ←この時点でキャンバスは8ビット色
      ret = d.LoadFromStream(foo, "BMP",true,0,0,10)'←24ビットのBMPとして変数から追加ロード

このように、少ない色数に多い色数を追加ロードすると、結果的に色情報が失われてしまい、意図どおりの結果にならない場合があります。この場合、GIFをロードした直後に
d.PixcelFormat = 6
として、GIFのキャンバスの色数を増やしてやることで対処できる場合があります。

そもそもこのような問題に直面したくない場合には、PNG/JPEGフォーマットの使用をお勧めします。

サーバサイドで使用した場合にGIFの色がヘンになるという現象(Ver1.3ドキュメントで追記)
本件はASPでお使いの方から数件御質問を受けました。

Doodle2ではカラーパレットを積極的に使用しておりません。
これを簡単にいうと、Doodle2で扱える色は、そのときのWindowsのデスクトップで扱える色数に左右される、ということです。

例えば、256色のデスクトップを使用しているときに、Doodle2で画像変換をかけると、結果的に色落ちして変換する場合があります。
これを防ぐには、デスクトップの色を24ビット以上のフルカラーにしていただく必要があります。


メソッド一覧
[]で括られた引数は省略可能です。
NewCanvas(NewWidth, NewHeight, AddCanvas) (CHANGE Ver1.3)
機能 NewWidth,NewHeightで指定したサイズで、新たにキャンバスを作成する。以前のキャンバスは破棄する。ピクセルフォーマットは24ビット長で初期化する。
Ver1.3での変更
AddCanvas 引数を追加。
引数
NewWidth 横幅(ピクセル数)
Newheight 縦幅(ピクセル数)
AddCanvas = 0 のとき:カレントCIサイズ設定.現在の描画は破棄
> 0 のとき:新しいキャンバスを追加
複数キャンバスを追加した場合、Doodle2の廃棄時(Set Nothingしてメモリから消えるとき)に一括してキャンバスを廃棄する。つまり、特定のキャンバスだけを削除するようなメソッドは現バージョンではサポートしていない(いらないよね?)ことに注意。
戻値
0 正常終了
-1 NewWidth/Newheightが不正な値
LoadFromFile(FileName, [appendload], [X1], [Y1], [Cpmode])
機能 画像ファイルをキャンバスに読み込む。
引数
FileName 読む込むファイル名。BMP/JPG/JPEG/GIF/PNGのいずれかの拡張子でなければならない。
[appendload] 現在のキャンバスを破棄しないで読む込む場合にはTrueをセットする。デフォルトはFalse。
[X1,Y1] appendload=Trueの場合、読み込む先の座標(現在のキャンバスのどこに読み込むか)を指定する。読み込み先座標と読み込んだ画像の高さ・幅の合計が現在のキャンバスの大きさを上回る(はみ出る)場合、キャンバス自体の大きさを広げる。
[Cpmode]
読み込み時のコピーモード。
1キャンバス上のコピー先の四角形を黒色で塗りつぶす
2キャンバス上のイメージを反転して,ソースを無視する
3AND 論理演算子を使ってキャンバス上のイメージとコピー元のビットマップを結合する
4反転したコピー元ビットマップとキャンバス上のイメージを OR 論理演算子を使って結合する
5反転したコピー元ビットマップをキャンバスにコピーする
6OR 論理演算子を使ってキャンバス上のイメージとコピー元のビットマップを結合して,その結果を反転する
7コピー元の模様をキャンバスにコピーする
8XOR 論理演算子を使ってコピー元の模様とキャンバス上のイメージを結合する
9反転したコピー元ビットマップとその模様を OR 論理演算子を使って結合する。この演算結果とキャンバスイメージを OR 論理演算子を使って結合する
10キャンバス上のイメージとコピー元のビットマップを AND 論理演算子を使って結合する
11コピー元のビットマップをキャンバスにコピーする
12キャンバス上のイメージを反転し,その結果とコピー元ビットマップを AND 論理演算子を使って結合する
13キャンバス上のイメージとコピー元のビットマップをXOR 論理演算子を使って結合する
14キャンバス上のイメージとコピー元ビットマップのピクセルを OR 論理演算子を使って結合する
15キャンバス上のコピー先の四角形を白色で塗りつぶす
戻値
0正常終了
-1入力ファイルが見つからない
-2ファイル名の拡張子が対象以外
SaveToFile(FileName, [TransParent, X1, Y1])
機能 キャンバスをファイルに出力する。
引数
FileName書き出すファイル名。BMP/JPG/JPEG/GIF/PNGのいずれかの拡張子でなければならない。
[TransParent, X1, Y1]透過処理を行う場合にはTrueにし、透過したい色の存在する座標を指定する。本パラメータはGIFのみ有効。
戻値
0正常終了
-1キャンバスが空
-2ファイル名の拡張子が対象以外
LoadFromStream(FromVar, [FileType], [appendload], [X1, Y1], [Cpmode])
機能 バイト型バリアント配列からキャンバスに画像を読み込む
引数
FromVarロード元のバリアント配列変数
[FileType]セーブする形式を、"BMP" "GIF" "PNG" "JPG"のいずれかで指定。省略時"JPG"
[appendload]現在のキャンバスを破棄しないで読む込む場合にはTrueをセットする。デフォルトはFalse。
[X1,Y1]appendload=Trueの場合、読み込む先の座標(現在のキャンバスのどこに読み込むか)を指定する。読み込み先座標と読み込んだ画像の高さ・幅の合計が現在のキャンバスの大きさを上回る(はみ出る)場合、キャンバス自体の大きさを広げる。
[Cpmode]読み込み時のコピーモード(別掲参照)。
戻値
0正常終了
-1入力がバイト配列ではない
-2FileTypeが対象以外
SaveToStream(ToVar, [FileType], [TransParent, X1, Y1])
機能 キャンバスをバイト型バリアント配列に出力する。
引数
ToVarセーブ先のバリアント配列変数
FileType省略可。セーブする形式を、"BMP" "GIF" "PNG" "JPG"のいずれかで指定。省略時"JPG"
[TransParent, X1, Y1]透過処理を行う場合にはTrueにし、透過したい色の存在する座標を指定する。本パラメータはGIFのみ有効。
戻値
0正常終了
-1キャンバスが空
-2FileTypeが対象以外
GetCanvas(ToVar, X1, Y1, X2, Y2)
機能 現在のキャンバスの指定矩形をそのまま(DIBとして)バイト型バリアント配列に出力する。
引数
ToVarセーブ先のバリアント配列変数
X1,Y1,X2,Y2コピーしたい矩形の対角座標
戻値
0正常終了
-1キャンバスが空
-2座標指定異常
PutCanvas(FromVar, X1, Y1, [CPmode])
機能 GetCanvasしたバイト型バリアント配列をキャンバスに描く。
引数
FromVarロード元のバリアント配列変数
X1,Y1書き込み先座標
[Cpmode]読み込み時のコピーモード(別掲参照)。
戻値
0正常終了
-1書き込み先キャンバスが空
-2座標指定異常
ConvertFile(FromFilePath, ToFilePath, [FileType], [ReWidth], [ReHeight], [GammaFlag], [Contrast], [StretchHiQuality],[PureStretch],[SharpFlag],[DullFlag])
機能 LoadFromFile→SaveToFileの一括処理。ただし、こちらは入力ファイル名にフォルダ名・ワイルドカードが指定できる。
引数
FromFilePath入力ファイル名・フォルダ名・ワイルドカード。
ToFilePath出力先フォルダ名・ファイル名。
[FileType]省略可。セーブする形式を、"BMP" "GIF" "PNG" "JPG"のいずれかで指定。省略時"JPG"
[ReWidth][ReHeight]出力サイズ
[GammaFlag]ガンマ補正フラグ
[Contrast]コントラスト調整の割合(−100〜100%)
[StretchHiQuality]拡大縮小モードフラグ。Stretchメソッドの項参照。
[PureStretch]単純拡大縮小フラグ。Stretchメソッドの項を参照。
[SharpFlag]Sharpを実行するかしないか(True/False)。Sharpメソッドの項を参照。
[SharpFlag]Dull(ぼかし)を実行するかしないか(True/False)。Dullメソッドの項を参照。
戻値
0正常終了
-1入力ファイルが見つからない
-2入力ディレクトリが見つからない
-3出力ディレクトリが見つからない
-4ファイル名の拡張子が対象以外
-5入力が単一ファイルでないのに、出力先が単一ファイル
LoadFromClipboard([ClearFlag], [appendload], [X1], [Y1], [CPmode])
機能 クリップボードから画像をロードする
引数
[ClearFlag]Trueにするとロード後にクリップボードから削除する。
[appendload]現在のキャンバスを破棄しないで読む込む場合にはTrueをセットする。デフォルトはFalse。
[X1,Y1]appendload=Trueの場合、読み込む先の座標(現在のキャンバスのどこに読み込むか)を指定する。読み込み先座標と読み込んだ画像の高さ・幅の合計が現在のキャンバスの大きさを上回る(はみ出る)場合、キャンバス自体の大きさを広げる。
[Cpmode]読み込み時のコピーモード(別掲参照)。
戻値
0正常終了
-1クリップボードに画像がない
SaveToClipboard
機能 キャンバスをクリップボードにセーブする。
引数 なし。
戻値
0正常終了
-1キャンバスが空
SetWallPaper([FileName],[SaveRegs])
機能 現在のキャンバス・もしくは指定したBMPファイルを壁紙に設定する。
引数
[FileName]BMPファイルでなければならない(自動変換はしません)。省略すると、現在のキャンバスを、Windowsディレクトリに"Doodle2WallPaper.BMP"というファイル名でセーブし、それを壁紙にする。
[SaveRegs]Trueだったら、変更をレジストリにセーブする。Falseならセーブしない。デフォルトはTrue。Falseの場合、すでに壁紙が設定されていないと動作しない場合がある。
戻値
0正常終了
-1BMPファイルではない
-2ファイルが見つからない
CaptureWindow(WindowName, [appendload, X1, Y1, Cpmode])
機能 指定したSDIウィンドウをキャプチャし、キャンバスに読み込む。
引数
WindowName空白("")の場合、デスクトップ全体をキャプチャする。"@ACTIVE"の場合、現在のアクティブなウィンドウをキャプチャする。それ以外の場合はウィンドウのタイトルと見なす。対象が最小化(タスクバーに入っている)の場合、元サイズに開き、ウィンドウをアクティブ化する。
[appendload]現在のキャンバスを破棄しないで読む込む場合にはTrueをセットする。デフォルトはFalse。
[X1,Y1]appendload=Trueの場合、読み込む先の座標(現在のキャンバスのどこに読み込むか)を指定する。読み込み先座標と読み込んだ画像の高さ・幅の合計が現在のキャンバスの大きさを上回る(はみ出る)場合、キャンバス自体の大きさを広げる。
[Cpmode]読み込み時のコピーモード(別掲参照)。
戻値
0正常終了
-1ウィンドウが見つからない
RGBToColor(R, G, B, [P])
機能 引数で渡した色情報を内部カラーコードに変換する。
引数
R,G,Bそれぞれ赤・緑・青の3原色を0〜255の範囲で指定
[P]パレットを0〜2の範囲で指定。デフォルトは0。
戻値 変換したカラーコード
SaveAniGIFToFile(FileName, Delay, Loops, [Transparent, TX, TY]) (ADD Ver1.3)
機能 現在の複数キャンバスの内容をアニメーションGIFファイルとしてFileNameに出力する。
引数
FileName出力先のファイル名
Delayアニメーションの遅延(絵と絵の表示間隔)。指定はミリ秒(1000分の1秒)単位だが、精度的にはせいぜい100分の1秒程度。デフォルトは100(0.1秒)
Loops繰り返し回数。0なら無限に繰り返す
[TransParent, TX, TY]透過処理を行う場合にはTrueにし、透過したい色の存在する座標を指定する。
戻値
0正常終了
-1Delay,Loops,TX,TYのいずれかが負の数
-2キャンバスが1枚しかない
SaveAniGIFToStream(ToVar, Delay, Loops, [Transparent, TX, TY]) (ADD Ver1.3)
機能 現在の複数キャンバスの内容をアニメーションGIFファイルとしてバリアント変数ToVarに出力する。
引数
ToVar出力先のバリアント変数
Delayアニメーションの遅延(絵と絵の表示間隔)。指定はミリ秒(1000分の1秒)単位だが、精度的にはせいぜい100分の1秒程度。デフォルトは100(0.1秒)
Loops繰り返し回数。0なら無限に繰り返す
[TransParent, TX, TY]透過処理を行う場合にはTrueにし、透過したい色の存在する座標を指定する。
戻値
0正常終了
-1Delay,Loops,TX,TYのいずれかが負の数
-2キャンバスが1枚しかない
Line X1, Y1, X2, Y2
機能 キャンバスに現在のペンで線を引く。
引数
X1,Y1開始座標
X2,Y2終了座標
戻値 なし
PixelSet X1,Y1,[PColor]
機能 キャンバスに点を打つ
引数
X1,Y1点を打つ座標
[PColor]点のカラーコード。省略時は現在のペンで描画。
戻値 なし
PixelGet(X1,Y1)
機能 キャンバスの指定座標のカラーコードを返す。
引数
X1,Y1キャンバスの座標
戻値 カラーコード
Arc X1, Y1, X2, Y2, X3, Y3, X4, Y4, [Chord], [FillFlag]
機能 四角形に内接する円弧を描く。弧は,座標(X1, Y1)および(X2, Y2)と境界を接する楕円の縁と交差し、楕円の縁にそって始点から終点まで反時計回りに描画される。

始点は,楕円の中心点と座標(X3, Y3)によって指定される線と楕円との交点で指定する。

終点は,楕円の中心点と座標(X4, Y4)によって指定される線と楕円との交点で指定する。

[Chord] を True にすると、弧の両端で結合する弧と直線で定義される図形を作成する(いわゆるパイ型のような閉じた弧)。

弓形は,座標(X1, Y1)および(X2, Y2)と境界を接する楕円の一部で構成され、楕円は,座標(X3, Y3)および(X4, Y4)の間を通過する線によって 2 等分する。

弓形は(X3, Y3)から始まり,反時計回りに楕円にそって(X4, Y4)を通り,まっすぐ(X3, Y3)に戻ります。(X3, Y3)および(X4, Y4)が楕円上にない場合は,弓形の対応する角は線と交差する縁上で最も近い座標とする。弓形のアウトラインは 現在のペン の値で描画。

引数
X1,Y1外接四角形の左上座標
X2,Y2外接四角形の右下座標
X3,Y3始点座標
X4,Y4終点座標
[Chord]上記機能解説参照
[FillFlag]Trueにすると現在のブラシで内部の塗りつぶしを行う。デフォルトはFalse。
戻値 なし
Ellipse X1, Y1, X2, Y2, [FillFlag]
機能 (X1,Y1) (X2,Y2) で対角を指定した四角形に外接する楕円を描く。
引数
X1,Y1内接四角形の左上座標
X2,Y2内接四角形の右下座標
[FillFlag]Trueにすると現在のブラシで内部の塗りつぶしを行う。デフォルトはFalse。
戻値 なし
Circle X1, Y1, R1, [FillFlag]
機能 (X1,Y1)を中心とした半径R1の真円を描く。
引数
X1,Y1中心点座標
R1半径(ピクセル)
[FillFlag]Trueにすると現在のブラシで内部の塗りつぶしを行う。デフォルトはFalse。
戻値 なし
Box X1, Y1, X2, Y2, [FillFlag]
機能 (X1,Y1) (X2,Y2) で対角を指定した四角形を描く
引数
X1,Y1対角座標
X2,Y2対角座標
[FillFlag]Trueにすると現在のブラシで内部の塗りつぶしを行う。デフォルトはFalse。
戻値 なし
FloodFill X1, Y1, C1 [BorderFlag]
機能 (X1, Y1)で指定した座標から、C1で指定したカラーコードを境界とし た不定形領域を現在のブラシで塗りつぶす。
引数
X1,Y1塗りつぶし開始座標
C1境界色カラーコード
[BorderFlag] BorderFlag=をTrueとした場合、C1で指定した色を持つすべての領域を塗りつぶす。別の色に達した場合は塗りつぶしを中止する。

FalseならC1で指定した色以外の色を持つすべての領域を塗りつぶす。

C1で指定した色に達した場合は塗りつぶしを中止する。

戻値 なし
RoundBox X1, Y1, X2, Y2, X3, Y3, [FillFlag]
機能 角丸め四角形を描く。(X1, Y1)(X2, Y1)(X2, Y2)(X1, Y2)で 定義した四角形を描くが、その角を幅 X3,高さ Y3 の楕円として丸め る。
引数
X1,Y1対角座標
X2,Y2対角座標
X3,Y3丸め座標
[FillFlag]Trueにすると現在のブラシで内部の塗りつぶしを行う。デフォルトはFalse。
戻値 なし
BezierLine X1, Y1, X2, Y2, X3, Y3, X4, Y4
機能 3次のベジエ曲線を描く。始点(X1,Y1)、終点(X4,Y4)の直線を、 (X2,Y2)(X3,Y3)を制御点としてベジエ曲線とする。
引数
X1,Y1始点座標
X2,Y2制御座標1
X3,Y3制御座標2
X4,Y4終点座標
戻値 なし
StringWrite X1, Y1, Str, [BackTrans]
機能 座標(X1、Y1)から、Strで指定した文 字列を描画する。描画時にはフォント関連プロパティで指定した内容を 使用する。
引数
X1,Y1描画開始座標
Str書き込みたいUnicode文字列
[BackTrans]Falseにすると現在のブラシで背景塗りつぶす。Trueの場合は、ブラシをbsClearとして取り扱う。デフォルトはTrue。
戻値 なし
StringHeight(Str)
機能 引数で指定した文字列を現在のキャンバスに描画した時のおおよその高さを算出する。フォントの種類、フォント関連プロパティで文字装飾を指定した場合などには正確な値にはならない。
引数
StrUnicode文字列
戻値 計算したピクセル数
StringWidth(Value)
機能 引数で指定した文字列を現在のキャンバスに描画した時のおおよその幅を算出する。フォントの種類、フォント関連プロパティで文字装飾を指定した場合などには正確な値にはならない。
引数
StrUnicode文字列
戻値 計算したピクセル数
FontList(SortFlag, TTFOnlyFlag, VetFontFlag)
機能 システムに登録されているフォントの名称を配列にして返す。
引数
SortFlagTrueにすると結果をソートする。
TTFOnlyFlagTrueにするとTrueTypeフォントのみ返す。
VetFontFlagTrueにすると縦書きフォント(1文字目が@のもの)も含めて返す。
戻値 文字列型のバリアント配列。
Stretch NewWidth, NewHeight, [HiQuality], [PureStretch]
機能 キャンバスを指定したサイズに拡大・縮小する。要するに簡易的な 画像の拡大・縮小を行う。キャンバス自体のサイズを変更するので 注意。
引数
NewWidth新しい横幅(ピクセル)。
NewHeight新しい縦幅(ピクセル)。
[HighQuality]TrueかFalse。デフォルトはFalse。
Falseの場合、
  • 単純なピクセル補完(WindowsAPIのStretchDIBits相当)で実行する。
Trueの場合
  • キャンバスのPixelFormatを強制的に24ビットに変更する。
  • ピクセルの平均化などを行い、なるべく現画像の状態を残して(つまり「より綺麗に」)圧縮しようとする。
Trueの場合、メモリ消費量が大きくなり速度も遅くなるので注意。Webサムネイル化の目的で、JPEGの自然画像を縮小するような場合にはFalseで充分だと思います。
[PureStretch] TrueかFalse。デフォルトはFalse。

Trueの場合、

現画像の縦横比を意識せず、指定サイズに合わせて拡大縮小を行う(=つまり縦横比率を維持する場合にはあらかじめ現画像のHeight/Widthを取得して、同じ縮小拡大率を掛けた上で呼び出す必要がある)。例えば元画像が(400,100)のサイズで、出力サイズが(150,150)だと、単純に元画像をツブした(?)画像になる。

Falseの場合(デフォルト)

いわゆるサムネイル風に、元画像の縦横比率を保持して縮小する。例えば元画像が(400,100)のサイズで、出力サイズが(150,150)だと、(150,150)の台紙の中央に収まるように、4:1の縦横比を保持したまま縮小を行う。台紙の色(背景色)はその時のブラシの色を採用する。

戻値 なし
Gamma GammaFlag
機能 キャンバスをガンマ補正する。もしPixelFormatが24ビットでなけれ ば、強制的に24ビットに変換し計算する。
引数
GammaFlag1なら正方向ガンマ、2なら負方向ガンマ。
戻値
0正常終了
-1引数の値が異常
Contrast Value
機能 キャンバスのコントラストを調整する。もしPixelFormatが24ビットで なければ、強制的に24ビットに変換し計算する。
引数
Value−100〜100の範囲の割合(%)で変更する。0なら何もしない。
戻値
0正常終了
-1引数の値が異常
Gray( [vR, vG, vB] ) (ADD Ver1.3)
機能 キャンバスをグレイスケールにする。もしPixelFormatが24ビットで なければ、強制的に24ビットに変換し計算する。
引数
vR, vG, vBR/G/Bの各要素の加減算値を−255〜255の範囲で指定する。省略時はすべて0で、白黒になる。例えば(255,0,0)だとR(赤)が強調され、赤っぽい白黒画像(^^;)になる。(30,0,-30)ぐらいだと、「赤ちょっと強め、青ちょっと弱め」でセピア色っぽくなる。
戻値
0正常終了
-1引数の値が異常(-255〜255の範囲外)
Sharp (ADD Ver1.3)
機能 キャンバスにシャープネス処理を施す。もしPixelFormatが24ビットで なければ、強制的に24ビットに変換し計算する。
引数
なし。本処理は内部的に、CustomFilterを、(-1,-1,-1 -1,24,-1, -1,-1,-1, 0, 16)の引数でコールしている
戻値
0正常終了
-2実行中に何らかのエラー(例外)が発生した
Dull (ADD Ver1.3)
機能 キャンバスにぼかし処理を施す。もしPixelFormatが24ビットで なければ、強制的に24ビットに変換し計算する。
引数
なし。本処理は内部的に、CustomFilterを、(1,1,1, 1,1,1, 1,1,1, 0, 9)の引数でコールしている
戻値
0正常終了
-2実行中に何らかのエラー(例外)が発生した
CustomFilter([B0, B1, B2, B3, B4, B5, B6, B7, B8, Bias, Divis]) (ADD Ver1.3)
機能 引数で指定された3×3の一次微分フィルタをキャンバスに施す。もしPixelFormatが24ビットで なければ、強制的に24ビットに変換し計算する。
引数
B0〜B8フィルタ用のマスクビットを指定する。
Bias加算オフセット値(0〜255)。
Divis除算値。
戻値
0正常終了
-1Biasが範囲外
-2実行中に何らかのエラー(例外)が発生した
Mask MaskColor, [Reverse]
機能 MaskColorで指定したカラーコードを透過色と見なして、キャンバス を白黒マスク化する。キャンバス自体を白黒に変換するので注意。
引数
MaskColor透過色とみなすカラーコード。
[Reverse]Trueにすると白黒マスクを反転する。デフォルトはFalse。
戻値 なし
Reversal
機能 キャンバスを反転(ネガーポジ)する。
引数 なし
戻値 なし

プロパティ一覧
特記ない場合は読み書き可
Height
内容 キャンバスの高さ(ピクセル数)。
Width
内容 キャンバスの幅(ピクセル数)。
CurrentCanvasIndex (ADD Ver1.3)
内容 現在のキャンバスのインデックス番号。
LBound (ADD Ver1.3)
内容 キャンバスのインデックス番号の最小値。
UBound (ADD Ver1.3)
内容 キャンバスのインデックス番号の最大値。
BkColor
内容 現在のキャンバスの背景色(カラーコード)
BkColor
内容 現在のキャンバスの背景モード(0:標準 1:透過モード)
PixelFormat
内容 内容 現在のキャンバスの1ピクセルあたりのメモリ割当の方法
  • 0 ディスプレイドライバの設定による
  • 1 1ビット幅
  • 2 4ビット幅
  • 3 8ビット幅(256色)
  • 4 15ビット幅
  • 5 16ビット幅
  • 6 24ビット幅
  • 7 32ビット幅
  • 8 その他カスタム

NewCanvasした時には6(24ビット)
Load〜したときはそれぞれの画像フォーマットの指示
等のタイミングでPixelFormatは変化する。
例えばGIFは3(8ビット)前提である。
ガンマ補正・コントラスト調整・StretchHiQuality=Trueの拡大縮小では24ビットに満たない場合は強制的に24ビットに変更する。

PenColor
内容 現在のペンの色(カラーコード)
PenStyle
内容 現在のペンの形。
  • 0 実線
  • 1 破線
  • 2 点線
  • 3 一点鎖線
  • 4 二点鎖線
  • 5 透明(現在のペンを使って図形の周囲にアウトラインを描画する線を省略するのに使う)
  • 6 実線。ただし PenWidth が 1 より大きい場合には中間色を使う場合がある。
Windows の制限により、Pen.Width に 2 以上を指定したときは、0 と 5 以外の PenStyle は無効。
PenWidth
内容 現在のペンの幅(ピクセル)
BrushColor
内容 現在のブラシの色(カラーコード)
BrushStyle
内容 現在のブラシの形。
  • 0 塗りつぶし
  • 1 透明
  • 2 水平網掛け
  • 3 垂直網掛け
  • 4 右下がり斜め45度の網掛け
  • 5 右上がり斜め45度の網掛け
  • 6 2と3の合成
  • 7 4と5の合成
FontColor
内容 現在のフォントの色(カラーコード)
FontName
内容 現在のフォント名(文字列)
FontSize
内容 現在のフォントサイズ(ポイント)
FontBold
内容 強調表示するか(True/False)
FontItalic
内容 斜体表示するか(True/False)
FontStrikeOut
内容 取り消し表示するか(True/False)
FontUnderLine
内容 アンダーライン表示するか(True/False)
JPEGCompressionQuality
内容 JPEGの圧縮率(1〜100)。
デフォルトは100。
JPEGProgressiveEncoding
内容 プログレッシブエンコードするか(True/False)
デフォルトはFalse。
GIFCompressionMode (ADD Ver1.3)
内容 GIF圧縮時のアルゴリズム指定(0=RLE か 1=LZW)
デフォルトは0(RLE)。
PNGCompressionLevel (ADD Ver1.3)
内容 PNG圧縮時の強度指定(0〜9)。数が小さいほど圧縮率を犠牲にして圧縮速度を早くする。数が大きければ圧縮率を優先にする。
デフォルトは7(ほどほど)。
Vectorの作者ページ
作者連絡先