★転送元画像と座標★


まずは転送元になる画像と2D画像の座標について説明します。


使用する画像ファイルについて


このシステムで使用できる画像ファイルは以下の通りです。

形式拡張子
ビットマップbmp
JPEGjpg, jpeg
PNGpng
DDSdds
DIBdib
Targatga

また、画像の幅や高さには以下の制限があります。

幅と高さは同一の正方形でなければならない

一辺は2のn乗でなければならない

※2016/12/21のシステムアップデートで制限が変わりました。

グラフィックボードが対応していれば、画像のサイズはフリー

対応していなければ、縦横ともに2の累乗にしなければならない

2の累乗にする場合、正方形で無くとも良い

対応しているかどうかは実行時にエラーメッセージが出るので、それを見て判断してください。

2の累乗とは、「1」「2」「4」「8」「16」「32」「64」「128」・・・です。

2の累乗とは言え上限があり、グラフィックボードの性能によって異なります。

※「さめがめ」までは古いシステムで作成していますので、2の累乗の正方形で画像を作成しています。


今回、最初からリソースとして用意している画像が↓です。

画像自体は「320×240ピクセル」の画像ですが、2の累乗に合わせるため「512×512ピクセル」にしています。

※2016/12/21のシステムアップデートで、グラフィックボードが対応していれば「320×240ピクセル」のまま読み込めるようになっています。

白い部分は無駄になっているように見えますが、ゲームで使用する他の画像を入れておく事も出来ます。


画像の座標について


2D画像はピクセル(画素)の集まりであり、2次元座標(X,Y)を使ってピクセルを指定する事が出来ます。

座標の原点は画像の左上であり「0」から始まります。

上の画像だと、X座標は左端が「0」で右端が「511」になります。

ただし画像の転送を行う場合、右端を+1して「512」と指定します。


転送用座標について


画像の転送を行う際には、このX、Y座標が必要になります。

転送に必要な座標は左、上、右、下の4つです。

上の画像の写真部分を例に説明します。

写真部分の大きさは「320×240ピクセル」です。

写真自体は画像の左上に配置されていますので、

 左の座標は「0」です。

 上の座標は「0」です。

 右の座標は「320」です。

 下の座標は「240」です。

転送するための座標はRECT構造体と言う構造体に格納します。

RECT構造体に値をセットするため、SetRect関数が用意されています。

上の画像の座標を、SetRect関数を使ってRECT構造体にセットする例を書きます。

RECT sour;

SetRect(&sour, 0, 0, 320, 240);

引数は左から順に、RECT構造体のアドレス、左の座標、上の座標、右の座標、下の座標です。

RECT構造体の名前は「source(転送元)」を省略して「sour」にしました。


次回は転送先について説明します。


次へ

戻る

目次へ