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 | キャンバス上のイメージを反転して,ソースを無視する |
3 | AND 論理演算子を使ってキャンバス上のイメージとコピー元のビットマップを結合する |
4 | 反転したコピー元ビットマップとキャンバス上のイメージを OR 論理演算子を使って結合する |
5 | 反転したコピー元ビットマップをキャンバスにコピーする |
6 | OR 論理演算子を使ってキャンバス上のイメージとコピー元のビットマップを結合して,その結果を反転する |
7 | コピー元の模様をキャンバスにコピーする |
8 | XOR 論理演算子を使ってコピー元の模様とキャンバス上のイメージを結合する |
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 | 入力がバイト配列ではない |
-2 | FileTypeが対象以外 |
|
SaveToStream(ToVar, [FileType], [TransParent, X1, Y1])
|
機能 |
キャンバスをバイト型バリアント配列に出力する。
|
引数 |
ToVar | セーブ先のバリアント配列変数 |
FileType | 省略可。セーブする形式を、"BMP" "GIF" "PNG" "JPG"のいずれかで指定。省略時"JPG" |
[TransParent, X1, Y1] | 透過処理を行う場合にはTrueにし、透過したい色の存在する座標を指定する。本パラメータはGIFのみ有効。 |
|
戻値 |
0 | 正常終了 |
-1 | キャンバスが空 |
-2 | FileTypeが対象以外 |
|
GetCanvas(ToVar, X1, Y1, X2, Y2)
|
機能 |
現在のキャンバスの指定矩形をそのまま(DIBとして)バイト型バリアント配列に出力する。
|
引数 |
ToVar | セーブ先のバリアント配列変数 |
X1,Y1,X2,Y2 | コピーしたい矩形の対角座標 |
|
戻値 |
|
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] | 読み込み時のコピーモード(別掲参照)。 |
|
戻値 |
|
SaveToClipboard
|
機能 |
キャンバスをクリップボードにセーブする。
|
引数 |
なし。
|
戻値 |
|
SetWallPaper([FileName],[SaveRegs])
|
機能 |
現在のキャンバス・もしくは指定したBMPファイルを壁紙に設定する。
|
引数 |
[FileName] | BMPファイルでなければならない(自動変換はしません)。省略すると、現在のキャンバスを、Windowsディレクトリに"Doodle2WallPaper.BMP"というファイル名でセーブし、それを壁紙にする。 |
[SaveRegs] | Trueだったら、変更をレジストリにセーブする。Falseならセーブしない。デフォルトはTrue。Falseの場合、すでに壁紙が設定されていないと動作しない場合がある。 |
|
戻値 |
0 | 正常終了 |
-1 | BMPファイルではない |
-2 | ファイルが見つからない |
|
CaptureWindow(WindowName, [appendload, X1, Y1, Cpmode])
|
機能 |
指定したSDIウィンドウをキャプチャし、キャンバスに読み込む。
|
引数 |
WindowName | 空白("")の場合、デスクトップ全体をキャプチャする。"@ACTIVE"の場合、現在のアクティブなウィンドウをキャプチャする。それ以外の場合はウィンドウのタイトルと見なす。対象が最小化(タスクバーに入っている)の場合、元サイズに開き、ウィンドウをアクティブ化する。 |
[appendload] | 現在のキャンバスを破棄しないで読む込む場合にはTrueをセットする。デフォルトはFalse。 |
[X1,Y1] | appendload=Trueの場合、読み込む先の座標(現在のキャンバスのどこに読み込むか)を指定する。読み込み先座標と読み込んだ画像の高さ・幅の合計が現在のキャンバスの大きさを上回る(はみ出る)場合、キャンバス自体の大きさを広げる。 |
[Cpmode] | 読み込み時のコピーモード(別掲参照)。 |
|
戻値 |
|
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 | 正常終了 |
-1 | Delay,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 | 正常終了 |
-1 | Delay,Loops,TX,TYのいずれかが負の数 |
-2 | キャンバスが1枚しかない |
|
Line X1, Y1, X2, Y2
|
機能 |
キャンバスに現在のペンで線を引く。
|
引数 |
|
戻値 |
なし
|
PixelSet X1,Y1,[PColor]
|
機能 |
キャンバスに点を打つ
|
引数 |
X1,Y1 | 点を打つ座標 |
[PColor] | 点のカラーコード。省略時は現在のペンで描画。 |
|
戻値 |
なし
|
PixelGet(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)
|
機能 |
引数で指定した文字列を現在のキャンバスに描画した時のおおよその高さを算出する。フォントの種類、フォント関連プロパティで文字装飾を指定した場合などには正確な値にはならない。
|
引数 |
|
戻値 |
計算したピクセル数
|
StringWidth(Value)
|
機能 |
引数で指定した文字列を現在のキャンバスに描画した時のおおよその幅を算出する。フォントの種類、フォント関連プロパティで文字装飾を指定した場合などには正確な値にはならない。
|
引数 |
|
戻値 |
計算したピクセル数
|
FontList(SortFlag, TTFOnlyFlag, VetFontFlag)
|
機能 |
システムに登録されているフォントの名称を配列にして返す。
|
引数 |
SortFlag | Trueにすると結果をソートする。 |
TTFOnlyFlag | TrueにするとTrueTypeフォントのみ返す。 |
VetFontFlag | Trueにすると縦書きフォント(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ビットに変換し計算する。
|
引数 |
GammaFlag | 1なら正方向ガンマ、2なら負方向ガンマ。 |
|
戻値 |
|
Contrast Value
|
機能 |
キャンバスのコントラストを調整する。もしPixelFormatが24ビットで
なければ、強制的に24ビットに変換し計算する。
|
引数 |
Value | −100〜100の範囲の割合(%)で変更する。0なら何もしない。 |
|
戻値 |
|
Gray( [vR, vG, vB] ) (ADD Ver1.3)
|
機能 |
キャンバスをグレイスケールにする。もしPixelFormatが24ビットで
なければ、強制的に24ビットに変換し計算する。
|
引数 |
vR, vG, vB | R/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 | 正常終了 |
-1 | Biasが範囲外 |
-2 | 実行中に何らかのエラー(例外)が発生した |
|
Mask MaskColor, [Reverse]
|
機能 |
MaskColorで指定したカラーコードを透過色と見なして、キャンバス
を白黒マスク化する。キャンバス自体を白黒に変換するので注意。
|
引数 |
MaskColor | 透過色とみなすカラーコード。 |
[Reverse] | Trueにすると白黒マスクを反転する。デフォルトはFalse。 |
|
戻値 |
なし
|
Reversal
|
機能 |
キャンバスを反転(ネガーポジ)する。
|
引数 |
なし
|
戻値 |
なし
|