BMPの幅高さを指定して保存する方法

解決


Andy  2006-02-04 23:28:02  No: 93969

BMPファイルには幅、高さの1m当たりのピクセル数の情報がそれぞれ「&H26」と「&H2A」に4バイトづつ記録されているようですがこの情報指定して書き込んで保存する方法があるのでしょうか?
それとも一度SavePictureで保存してからバイナリで書き込むしかないでしょうか?  

保存時点で情報を書き込みたいので教えてください。


YUKI  2006-02-05 00:15:26  No: 93970

保存する前に書き換えればよいかと

自前でビットマップHEADERを用意しGetDIBis等でデータを取得して
ビットマップファイルヘッダーを足して保存すればできますね。

もっと簡単な方法があるかもしれませんが。


ガッ  2006-02-05 00:19:06  No: 93971

> もっと簡単な方法があるかもしれませんが。
個人的には質問者の
> > 一度SavePictureで保存してからバイナリで書き込むしかないでしょうか?
の方が簡単に思えるなぁ…
ファイル先頭からの0ベースオフセット位は決まってるわけだし。


Andy  2006-02-05 20:02:21  No: 93972

ご回答ありがとうございました。  

YUKIさんが教えてくれたGetDIBisをググりましたが分かりませんでした。ありがとうございました。何かパラメーターを設定して保存する、などの簡単な方法があったら、などと思いましたがなさそうなのでガッさんのアドバイスのように一度保存してからヘッダーだけを変更することにします。ありがとうございました。


YUKI  2006-02-05 20:46:35  No: 93973

すみません誤字がありました。(ググったら1件ヒットしたけど)
×GetDibis
○GetDibits

後学のために暇なときにでも見てください。


Andy  2006-02-06 03:47:44  No: 93974

ご親切にありがとうございました。結論から申しますと  1.1m当たりピクセル数のアドレスを確認する(ない場合もあるため)  2.(あったら)指定したい数値だけを書き換える(8バイト)ということで解決しました。  GetDiBitsはこれから勉強します。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加