• ベストアンサー

画像データ

ある画像に文字情報を隠蔽するプログラムを作る必要があります 具体的には ・対象の画像の青の画素値について、全てのデータを2進数表現し下位1ビットを0にする ・入力したい文字を2進数8ビット表現し、青の下位1ビットに1ビットずつ埋め込む というプログラムなのですが、画像から画素値を読み取る方法が分かりません。 どなたかお願いします。

  • pwpr
  • お礼率25% (11/44)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

なんの画像ファイルかわかりません. あとOSや環境もわからないのでベストな読み込み方まで提示できません. BMP画像であると仮定して読み込みまでの流れを説明します. ビットマップ画像の場合 ・ファイルの情報としてBITMAPFILEHEADER構造体(14byte) ・画像の情報としてBITMAPINFOHEADER構造体(windowsなら40byte) ・実際の画像のデータ の順番に入っています.(カラーパレットもあることも) BITMAPINFOHEADER構造体内に画像についての情報があるので ビット単位で扱うなら, 画像の高さ×幅×ビット数 のぶんだけビットメモリを開放します. そして画像データが始まる所から開放したメモリに保存していけば良いと思います. 何を読み込むにしても大体の場合はまずヘッダについて調べるとgoodかと.

参考URL:
http://www.kk.iij4u.or.jp/~kondo/bmp/

その他の回答 (1)

  • yokomaya
  • ベストアンサー率40% (147/366)
回答No.1

画像ファイル形式を先に言わないと。ビットマップならファイル構造が検索でヒットすると思います。他はビットマップに一度変換してから処理するのが妥当じゃないかな?

関連するQ&A

  • 画像データの入力(C言語)

    ある画像に文字情報を隠蔽するプログラムを作る必要があります。 具体的には ・画像の青の画素値について、全てのデータを2進数表現し下位1ビットを0にする ・入力したい文字を2進数8ビット表現し(常に頭のビットは0)青の下位1ビットに1ビットずつ埋め込む(青のデータ8個につき一文字隠蔽できる) というプログラムなのですが、画像から画素値を読み取る方法が分かりません。 どなたかお願いします。

  • 画像とデータ量について

    40ピクセル×30ピクセルの写真は、8ビットフルカラー(1ピクセルを赤、緑、青の三色で表現するため、1ピクセルが24ビットとなる)の画像で表現するとき、必要なデータ量は何バイトか教えてください。

  • 画像データについて基本的な質問です

    デジカメで撮影した画像データをWindowsのペイントで開くと縦横が長すぎて全部は表示できなかったので、試しに画素数を減らしてみたら縦横の長さが短くなって、全体を表示できるようになりました。素朴な質問ですが、なぜ画素数を減らしただけで縦横の長さが変わるのですか?私のイメージだと、画素数を減らすと、画像の一つひとつの点がスカスカになるだけで、縦横の長さは変わらないと思えるのですが?どなたか、教えてください。よろしくお願いいたします。

  • 画像データの伝送について

    1KB=1024byte , 1byte=8bit , 1Kbps=1024bpsとして計算するものとする。 256画素×256画素のカラー画像である。 RGBそれぞれの色における濃淡レベル数が256であるときのデータ量は非圧縮で(1)KBである。 この画像を実効的な伝送速度が64Kbpsである通信回線を用いて伝送するときに要する時間は約(2)秒である。 ここで、この画像を画素数を変えないで、RGBそれぞれの色における濃淡レベル数を64に減らすと、データ量は非圧縮で(3)KBとなった。 上記と同じ条件で伝送するのに要する時間は約(4)秒に短縮された。 このとき、データ量を削減した画像に、見た目の画像の劣化はほとんど認められなかった。 このような問題なのですが、 (1) 64 (2) 8 (3) 48 (4) 6 となったのですが、合っていますでしょうか。 間違っているのであれば、解説お願いします。 また、伝送速度を求めるにはBit/bpsで求まるのでしょうか。 Kbyte/Kbpsではだめなのでしょうか。(Kが揃っているので計算できるのでは?と思ってしまいます。)

  • 数値のみで記述されたrawデータの画像ファイルを表示させるために

    はじめまして。 今、手元に320MB程度のrawファイルの画像データがあります。 この画像データをloadして表示するというプログラムを作りたいです。 このデータは、1画素1バイトのグレースケールのデータで、縦と横の画素数は既知です。できれば、データを2次元配列に読み込んだ後に画像と表示させようと思っています。 実装環境は、WindowsXP、jdk1.6.0_06です。 JAI ImageIOを使えばrawデータの扱いが可能となるということまでは調べて分かったのですが、読み込みの方法と、書き出しの方法が分かりません。 どなたか、プログラムもしくは、参考になるWEBページをご存知の方はいらっしゃらないでしょうか? よろしくお願い致します。

  • 画像

    縦が1280画素で横が720画素のフルカラー画像(24ビットカラー画像)を960×540にリサイズした後、グレースケールに変換した。データ量は何パーセントに削減されるか。圧縮によるデータ削減は考えなくてよい。この問題はどうなりますか?

  • データ転送についておしえてください

    データ転送についておしえてください データ転送速度が16Mバイト/秒のCFカードを用いるとき、1000×800画素の画像は、1秒間に約何枚転送できるか。ここで画像は圧縮せず、1画素は24ビットで表すものとする。 という問題なのですが.. 800000×24=19200000 なので16Mですから16000000になって 19200000/16000000=1.2 1.2枚 これで良いのでしょうか? 間違っていたらやり方を教えてください。

  • コンピューターのデーターの扱いについて…

    コンピューターは文字や数値を 0または1だけから成るデータと して扱うようですが… 具体的にどういうことなのでしょうか? 2進数やビットの基本的な説明も できれば宜しくお願いします。

  • C言語 10進数→2進数

    キーボードで入力された1以上の正の整数n(1~15)を2進数(4bit)で出力するプログラムを作りたいんですが、 出力例に書かれている内容、 -出力例- 正の整数:12 整数 12 を2進数表記すると下位bitより 0011 となります。 ---- 上記の下位bit、というのはどういう意味でしょうか? また、この下位bitというものをどうやってプログラム上で 表記すればいいのでしょうか? 教えてください。

  • テレビのビット深度について

    テレビのビット深度について教えて下さい。 現在テレビの勉強中ですが「現行フルHDの規格でビット深度が8-bit」との説明がネットにありました。 そこでビット深度の意味が分からなかったので、調べてみるとWebページに以下の文がありました。 「ビット深度は、1画素が表示できる色の数を表します。ビット深度が高いほど、たくさんの色を表示でき、より自然で滑らかなグラデーションを実現できます。8ビット表示の場合は約1677万色、10ビット表示の場合は、約10億7374万色もの色を再現可能です。」 そこで質問なのですが 上記を読むと、ビット深度は1つの画素で表現できる色の数なので、8ビットという事で、あくまでも1画素で256色表示できるという意味でその画素をいくつか組み合わせる事によって1677万色再現できるという解釈でよいでしょうか? それとも赤・緑・青の各3色について8bitという意味で計24bit。つまり1つの点で1677万7216色表現できるという事でしょうか? でもそれならビット深度24ってことになり8ではないですよね・・・。 非圧縮動画(RGB24)の説明もあり、訳が分からなくなりました・・。 この場合がビット深度24で1つの画素で1677万7216色表現できるという事なのか・・・1つの画素の中でそんな数の色が表現できるものなのか・・・。 すみません。長くなりましたが詳しい方がおられれば、教えていただけると有難いです。

専門家に質問してみよう