C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

バイト列からのBMPファイル生成

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■83489 / inTopicNo.1)  バイト列からのBMPファイル生成
  
□投稿者/ 山丸 (10回)-(2017/03/24(Fri) 19:13:54)

分類:[.NET 全般] 

いつもお世話になっております。

この度は、バイト列からのBMPファイル生成についてお伺いします。
ビット数で1画素をあらわすデータの並び(構成の画素を左から右へ主走査、上から下へ副走査する)
のデータ配列(16進のbyte配列)から、BMPファイルが復元できるのか。
どのようにすれば実現可能かを悩んでおります。

識者の方々、ご教示のほどよろしくお願いいたします。

引用返信 編集キー/
■83493 / inTopicNo.2)  Re[1]: バイト列からのBMPファイル生成
□投稿者/ 魔界の仮面弁士 (1221回)-(2017/03/24(Fri) 20:27:31)
No83489 (山丸 さん) に返信
> ビット数で1画素をあらわすデータの並び(構成の画素を左から右へ主走査、上から下へ副走査する)
ここまで分かるのですが、

> のデータ配列(16進のbyte配列)から、BMPファイルが復元できるのか。
ここが分かりませんでした。

「16進」のbyte配列があるのなら、
「10進」のbyte配列もあるのでしょうか。
(データ的にどういう違いがあるのかイメージできない…)


あと、生成される Bitmap の縦横の解像度は明確になっていますか?


> この度は、バイト列からのBMPファイル生成についてお伺いします。
「16進」という表現は見なかったものとして:

(案1) ビットマップヘッダーを手動で付与した上で、new Bitmap(BinaryStream) のコンストラクタに渡す。

(案2) unsafe C# にて、Bitmap.LockBits メソッドから、Scan0 ポインタに画素情報を転記する。
引用返信 編集キー/
■83494 / inTopicNo.3)  Re[2]: バイト列からのBMPファイル生成
□投稿者/ 魔界の仮面弁士 (1222回)-(2017/03/24(Fri) 20:42:55)
No83493 (魔界の仮面弁士) に追記
> (案1) ビットマップヘッダーを手動で付与した上で、new Bitmap(BinaryStream) のコンストラクタに渡す。
ヘッダー情報についての資料を紹介しておきます。
http://www.setsuki.com/hsp/ext/bmp.htm

>> ビット数で1画素をあらわすデータの並び(構成の画素を左から右へ主走査、上から下へ副走査する)
ヘッダー上は、高さ情報が負数で記録されていれば OK ですね。


画像のサイズと色数が事前に明確になっている場合、ヘッダーの内容は
常に同じものになるはずなので、画像ソフトなどで同サイズのファイルを
作成しておき、それのヘッダーを流用するのが手っ取り早いかも知れません。
引用返信 編集キー/
■83540 / inTopicNo.4)  Re[3]: バイト列からのBMPファイル生成
□投稿者/ 山丸 (11回)-(2017/03/27(Mon) 16:48:03)
魔界の仮面弁士さま

ご教示くださり、ありがとうございます。
頂いた情報をもとに、ちょっと考えてみます。
また、質問させていただくことがあるかもしれませんが、
どうぞよろしくお願いいたします。



No83494 (魔界の仮面弁士 さん) に返信
> ■No83493 (魔界の仮面弁士) に追記
>>(案1) ビットマップヘッダーを手動で付与した上で、new Bitmap(BinaryStream) のコンストラクタに渡す。
> ヘッダー情報についての資料を紹介しておきます。
> http://www.setsuki.com/hsp/ext/bmp.htm
>
> >> ビット数で1画素をあらわすデータの並び(構成の画素を左から右へ主走査、上から下へ副走査する)
> ヘッダー上は、高さ情報が負数で記録されていれば OK ですね。
>
>
> 画像のサイズと色数が事前に明確になっている場合、ヘッダーの内容は
> 常に同じものになるはずなので、画像ソフトなどで同サイズのファイルを
> 作成しておき、それのヘッダーを流用するのが手っ取り早いかも知れません。
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ