• ベストアンサー

BMPのフォーマットの詳細について教えてください!

KojiSの回答

  • KojiS
  • ベストアンサー率46% (145/312)
回答No.1

開発ツールは何を使っていますか? MSDN等で「Bitmap Structures」がありますので調べましょう。

kokucho81
質問者

補足

KojiSさん、さっそくのご回答ありがとうございます。 えーと、普段はVC++は使ってないのですが、 一応 VC++ エンタープライズはあります。 Bitmap Structures みてみました。 うーむ。わかるようなわからないような。。。 そこで、BMPファイルの中身をみてみたのですが、、、 肉眼で読めました〔笑 これかんたんなのですね・・・ GIFのときは肉眼では全然不明で仕様を読んで ようやくわかったのですが、 BMP、バイナリ肉眼で読めますねこれ・・・ (まぁ、だからこそDIBなのかもしれないですが・・・) とりあえず、貴重な情報ありがとうございました。 フォーマットがかなり簡単そうなので、これなら何とでもなりそうです。

関連するQ&A

  • DIBフォーマットの読み込みとそれを元にBMPを画面へ表示する方法について

    現在DirectDrawスケルトンでDIBフォーマットを元にBMPデータを取り出して、 そのデータを元に画面に表示するまでのプログラムを勉強しています。DIBフォーマットの構造については理解したのですが、取り出したBMPデータのイメージデータ部分をどこにどう設定してどのような手順を踏んでいけば画面にBMPを表示できるのかわかりません。BMPデータを取り出してから画面に表示するまでの流れなどをわかる方がいらっしゃいましたらぜひ教えていただきたいです。 DIBフォーマットの形式は8bitで256色パレットを使用します。 別でパレットをロードする関数は自作してあるので、ヘッダを読み込んだ後はカラーテーブルをとばしてイメージデータを読み込むやり方にしようと思っています。 そこでパレットとイメージデータの各ピクセルが持つインデックス番号を関連づける方法も教えていただけるとありがたいです。 よろしくお願いします。

  • bpsとB/sの読み方は?

    よろしくお願いいたします。 パーツの仕様書でbpsとかB/sとか記載があり、意味は分かるのですが読み方が分りません。 bitにしろByteにしろ「s」をつけるのが正しいのでしょうか? なにか決まりはあるのでしょうか? bpsは「bit per second」なのか「bits per second」なのか? B/sは「byte per seconde」「bytes per seconde」なのか? なにか根拠になる資料があればうれしいです。

  • 教えて!Gooにログインできないのは?

    先日、auからウェブパレットを頂き、使っていますが、 ここから教えて!gooへのログインをすると、またログイン画面に戻り、ログインが出来ません。 コミュニティの方は何の支障もなくはいれるのですが 両者の間に何か違いや制約があるのでしょうか? 参考までに、ウェブパレットの仕様を書いておきます。 SSL3.0対応 HTML3.2準拠 動画、音声の再生不可 対応画像形式 GIF、アニメーションGIF、JPEG、BMP Javascript、JAVA非対応 Cookie受け取り不可 プラグインアプリケーション非対応 以上です。 よろしくお願いします。

  • java 画像ファイル

    下記のプログラムは読み込んだファイルの拡張子を表示するプログラムの一部なのですが,コマンドライン引数で指定したファイルがPNG形式の時だけエラーが出ます.ほかの判定を消してPNG判定だけにするとエラーがでないので if の書き方に問題があるのではないかと思うのですが何がいけないのでしょうか? while (((ch = bis.read()) != -1)) { /*GMP判定*/ if((byte)ch == BMP_SIGNATURE[k]) { flg1++; if(flg1 == BMP_SIGNATURE.length) { System.out.println(args[0] + "はBMP形式のファイルです."); break; } } /*JPEG判定*/ else if((byte)ch == JPEG_SIGNATURE[k]) { flg2++; if(flg2 == JPEG_SIGNATURE.length) { System.out.println(args[0] + "はJPEG形式のファイルです."); break; } } /*PNG判定*/ else if((byte)ch == PNG_SIGNATURE[k]) { flg3++; System.out.println(flg3); if(flg3 == PNG_SIGNATURE.length) { System.out.println(args[0] + "はPNG形式のファイルです."); break; } } /*GIF判定*/ else if((byte)ch == GIF_SIGNATURE[k]) { flg4++; if(flg4 == GIF_SIGNATURE1.length) { System.out.println(args[0] + "はGIF形式のファイルです."); break; } } k++; }

    • ベストアンサー
    • Java
  • photoshopでテキストカラー「?」となり反映されない

    photoshopでテキストカラー「?」となり反映されない Windows7(64bit)/PhotoshopCS4(32bit)での利用者です。 Photoshopでテキストを編集するため、テキストツールでカーソルを合わせた瞬間、 文字パレットのカラーが「?」になり、色が消えます。 テキスト自体は編集可能で、 編集後選択ツールに切り替え選択しなおし、 文字パレットのカラーを再設定すればカラーが反映されます。 しかし、編集時にまた同じ現象が起こります。 ※レイヤー効果のカラーオーバレイも反映されません。 下記URLにあるように、 環境設定ファイルの初期化も試しましたが、ダメでした。 http://okwave.jp/qa/q2881598.html 他に改善策はありますでしょうか? 急を要しているため、早急にご回答頂ければ幸いです。

  • Illustrater10で選択ツールで文字を指定し、色を変えようとし

    Illustrater10で選択ツールで文字を指定し、色を変えようとしたら変えられません。 カラーパレットの数値が変化しても、実際の文字色は何も変化ありません。 文字ツール「T」で、中の文字を反転させてからでないと、色が変えられないのです。 Illustrater10は、こういう仕様なのでしょうか? Illustrater8は、こんなことなかったです。 まとめて一気に色を変えることができないなんて、不便で仕方ありません。 どうか、お知恵のほどよろしくお願いします。よろしくお願いします。

  • Windows7とCentOS6.2のDual B

    Windows7とCentOS6.2のDual bootしようといろいろやっていますが、上手くいきません。 HDDは、raid0で2つの1Tがつながっています。(2Tが品薄でなかったらしい。) WBMでは、Windows7とGrub4dosを選択するようにしましたが、Grub>からCentOS6.2をbootすることができません。おそらく、CentOS6.2をインストールはしたものの、/boot/grubホルダの中に、 initramfsがないのがおかしいのかなと思います。 /bootは、md126p7になっています。 md126というのは、md0などに直した方がいいのでしょうか。 fdisk -lの結果は以下のとおりです。 解決策をお教え頂ければ幸いです。よろしくお願いします。 [root@livecd centoslive]# fdisk -l Warning: invalid flag 0x0000 of partition table 5 will be corrected by w(rite) Disk /dev/sda: 1000.2 GB, 1000204886016 bytes 255 heads, 63 sectors/track, 121601 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xd55caae2 Device Boot Start End Blocks Id System /dev/sda1 1 5 40131 de Dell Utility /dev/sda2 * 6 1926 15427584 7 HPFS/NTFS /dev/sda3 1926 14980 104857600 7 HPFS/NTFS /dev/sda4 14980 243202 1833193472 f W95 Ext'd (LBA) Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes 255 heads, 63 sectors/track, 121601 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0a0b0000 Disk /dev/sdb doesn't contain a valid partition table Disk /dev/md126: 2000.4 GB, 2000405135360 bytes 255 heads, 63 sectors/track, 243202 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 131072 bytes / 262144 bytes Disk identifier: 0xd55caae2 Device Boot Start End Blocks Id System /dev/md126p1 1 5 40131 de Dell Utility Partition 1 does not start on physical sector boundary. /dev/md126p2 * 6 1926 15427584 7 HPFS/NTFS /dev/md126p3 1926 14980 104857600 7 HPFS/NTFS /dev/md126p4 14980 243202 1833193472 f W95 Ext'd (LBA) /dev/md126p5 14981 45821 247721984 7 HPFS/NTFS /dev/md126p6 45821 211547 1331200000 b W95 FAT32 /dev/md126p7 211547 211611 512000 83 Linux /dev/md126p8 211611 243202 253755392 8e Linux LVM Disk /dev/mapper/live-rw: 4294 MB, 4294967296 bytes 255 heads, 63 sectors/track, 522 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/mapper/live-rw doesn't contain a valid partition table Disk /dev/mapper/live-osimg-min: 4294 MB, 4294967296 bytes 255 heads, 63 sectors/track, 522 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/mapper/live-osimg-min doesn't contain a valid partition table 以下省略

  • Tcl/Tkのエラーメッセージ対応

    Tcl/TkでGIF形式指定のうえ画像保存をしようとすると、次のようなエラーメッセージが出ます。  "Too many colors …" これはパレットにない色を使用した結果だと思うのですが、image createコマンドでオプションを次のように指定しています。  image create …… -format gif -palette 256/256/256 なお使用した色は次の6色で、エラーメッセージが画像保存の段階になって出てくるので、どの色でひっかかっているのか不明です。  blue,DeepSkyBlue,red,coral,black,white 一つ一つの色を取捨選択して確認するのも面倒なことだし、後学のためにご存知の方がいらっしゃればコメントお願いします。 Tcl/Tkが扱うGIFカラーは、特定の256色に固定なのか、それとも1670万色のうちの任意の256色を指定できるのかも知りたいところです。具体的に説明しているURLの紹介でもかまいません。なおTcl/TkのバージョンはWindows版"ActiveTcl8.4.7.0"です。

  • 画像の四隅を丸くしたい

    html初心者です。 あるメイン画像の左上に、透過gif画像を重ねて表示させたいのですが、そのようなことは可能なんでしょうか・・・ メイン画像は長方形です(通常の画像のように、ふちは角ばっている)。その画像の左上に、透過gif画像を重ねて表示させようとしています。 htmlには: <TABLE>  <TR>   <TD>    <div id="corner"><IMG SRC="images/frame4_03.gif"></div>    <div id="inner"><IMG SRC="screen05_04.jpg"></div>   </TD>  </TR> </TABLE> cssには: #corner{ position:absolute; left:251px; top:98px; width:99px; height:39px; BACKGROUND-COLOR:#FFFFFF; } #inner{ position:absolute; left:251px top:98px; width:999px; height:799px; } と書いています。 WindowsXP、IE7で表示させています。 よろしくおねがいいたします。

    • ベストアンサー
    • HTML
  • フォトショップで背景だけ透明にしたい

    ヘルプを読んでも、専門用語のオンパレードで全然わかりませんでした。 以下ヘルプ抜粋 ―――――――――――――――――――― 背景を透明にしてインデックスカラー画像をGIFに出力するには: 1 表示する画像部分を選択します。 2 チャンネルパレットの下部にある「選択範囲を保存」ボタンをクリックし、選択範囲に基づいてアルファチャンネルを作成します。パレットのチャンネル名を書き留めておきます。 3 ファイル/出力用プラグ/GIF89a出力を選択します。 4 「透明度」で、作成したアルファチャンネルを選択します。 ―――――――――――――――――――― チャンネルパレットでアイコンが下に4つ出てきて→左から2番目の「選択範囲をチャンネル保存」までは何とか進んだのですが。 アルファチャンネル作成?チャンネル名?~以下3、4、全く操作不能状態でした。アイコンで操作するのでしょうか。右クリックのショートメニュで操作するのでしょうか。それとも上のバーからメニューを出してコマンドするのでしょうか? お手数ですが、詳しくご教授お願いします。