GDI+の対応フォーマット – 固定ページ 2 – プログラミング – Home

通知
すべてクリア

[解決済] GDI+の対応フォーマット

固定ページ 2 / 2

gak
 gak
(@gak)
ゲスト
結合: 21年前
投稿: 132
 

> RGB、BGR,点順次、線順次、面順次等もいろいろためしてだめでした
じゃ「トップダウン DIB とボトムアップ DIB」辺りで引っ掛かっているのかもしんない
http://msdn.microsoft.com/ja-jp/library/cc370952.aspx

// 473x356 の pixel data を用意
const bool botttom_up = true;
const SIZE size = { 473, 356 };
const int stride = ((24 * size.cx + 31) / 32) * 4;
std::vector<BYTE> buffer(stride * size.cy);
for (int y=0; y < size.cy; ++y) {
for (int x=0; x < size.cx; ++x) {
const int p = stride * (botttom_up ? (size.cy - 1) - y : y) + (3 * x);
buffer[p + 0] = (y & 0xff); // B
buffer[p + 1] = (x & 0xff); // G
buffer[p + 2] = 0x00; // R
}
}
// Gdiplus を使って HDC に描画
Gdiplus::Bitmap bitmap(
size.cx, size.cy,
(botttom_up ? -stride : stride),
PixelFormat24bppRGB,
&buffer[0] + (botttom_up ? stride * (size.cy - 1) : 0)
);
Gdiplus::Graphics graphics(HDC);
graphics.DrawImage(&bitmap, 0, 0);


返信引用
gak
 gak
(@gak)
ゲスト
結合: 21年前
投稿: 132
 

> 青(0,0,255)で埋めたメモリを渡しても、正しく青ベタで埋めてくれるときとそうでな
> いときがあります
正しく埋めてくれる時もあるのか…だとしたら先の回答は関係ないかも。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました