• 締切済み

BMP画像の取り扱い

(1)BMP形式の画像を読み込み (2)RGB値を取得 (3)画素値を操作 (4)新しいファイルに書き出す というプログラムを作りたいのですが、BMP画像からRGB値がうまく取り出せません。 参考URLなどありましたらぜひ教えてください。

noname#232871
noname#232871
  • Java
  • 回答数1
  • ありがとう数2

みんなの回答

  • tom11
  • ベストアンサー率53% (134/251)
回答No.1

こんにちは、こんな事かな?? ImageIO#read(File input)で、BMPファイルを BufferedImageに読み込む BufferedImage#getRGB(int x, int y)で、イメージの点の色情報を得る BufferedImage#setRGB(int x, int y, int rgb)などで、 BufferedImageのデータを加工した後、 ImageIO#write(RenderedImage im, String formatName, File output) で、ファイルに書き込む

noname#232871
質問者

お礼

ありがとうございました! すみません、お礼遅くなってしまって。 教えていただいたのと同じように作っていたのに出来なくて 今日やっとできました! 原因は、扱っていたBMPファイルが256色だったみたいで… 何ともケアレスミスでした。。。情けない。

関連するQ&A

  • 画像のRGBの値

    画像フィルタが必要になり、そのために画像の性質を知るために、画像のRGBの値を直接求めようと思いました。 具体的には、画像ファイル(BMP)があり、その画像の全画素のRGBの値をテキストファイル(CSV形式)に変換したいのです。そのようなツールありますか? 特殊な用途なので、 while(getpixel(r,g,b)) { printf("%d,%d,%d\n",*r,*g,*b); } のようなプログラムを書かないといけないと思うのですが、「BMPファイルの先頭から順番に画素のRGBの値を持ってくる関数getpixel」が書けません。

  • BMP画像ファイルの読み書き

    Visual StudioのC言語により、ビットマップ形式の画像に対するプログラミングで 簡単な背景差分のプログラムを作成しています。 背景画像と対象画像2枚を読み込み色の差を取り、 差の値が背景の値と近ければ背景とみなし白で塗りつぶし、 物体だけを表示した画像を生成するようなプログラムです。 1枚のみの画像は以下のプログラムで作動しますが、連続した画像(01.bmp 02.bmp ・・・・100.bmp) を読み込み上記の処理をする場合にはどうすればよいのでしょうか? 分かりにくくて申し訳ないですが、よろしくお願いします。 #include "BMPData.h" #include <math.h> int main(){ int a=150; int i,j; int r,g,b; int ir,ig,ib; int diff; BMPStruct bmp_bg; BMPStruct bmp_oj; BMPStruct bmp; RGB rgb_bg; RGB rgb_oj; RGB rgb; RGB rgb_w; rgb.r = 255; rgb.g = 255; rgb.b = 255; rgb_w.r = 0; rgb_w.g = 0; rgb_w.b = 0; readBMP(&bmp_bg, "back.bmp"); //背景画像の読み込み readBMP(&bmp_oj, "01.bmp"); //対象画像の読み込み makeBMP(&bmp,640, 480, rgb); //出力用画像を生成する for(i=0; i<640; i++){ for(j=0; j<480; j++){ getColor(bmp_bg, &rgb_bg,i,j);  //背景画像の色を取得 getColor(bmp_oj, &rgb_oj,i,j);  //対象画像の色を取得 //rgbそれぞれの値の差 r = rgb_bg.r - rgb_oj.r; g = rgb_bg.g - rgb_oj.g; b = rgb_bg.b - rgb_oj.b; //絶対値 ir = abs(r); ig = abs(g); ib = abs(b); //色の差 diff = ir + ig + ib; //背景かどうかの判定 if(diff>a){ putColor(bmp, rgb_w, i, j); //色の差が大きければ出力画像に対象画像の色をそのまま出力 } else{ putColor(bmp, rgb, i, j); //色の差が小さければ白を出力 } } } writeBMP(bmp, "image01.bmp"); }

  • FORTRAN でBMP画像の値の取得

    FORTRAN でBMP画像の値の取得をしたいのですが,どうすればいいでしょう? たとえば,10×10画素の8bitのbmp画像の各ピクセルの値を読んで,テキストに書き出したいとします. ですので,できるファイルは・・ 1,1,255 1,2,255 ・ ・ ・ みたいに,X座標,Y座標,そこの値 っていうふうにしたいんです. わからないのは,BMP画像の値の取得方法です. また,bmpを読み込んで,その情報を元にまたbmpを作る時はどうすればいいでしょう? 長々とすいません.

  • インターネット上の画像がbmpでしか保存できない

    最近になって、インターネット上の画像を保存するとき、bmpでしか保存できない現象が多々起きはじめました。 かといって、その画像がbmp形式ではなく、jpeg形式でインターネット上に存在しているのです。 この奇妙な現象を誰か判る方はいらっしゃるでしょうか? 参考に画像を添付します。 この画像は「http://sankei.jp…….jpg」を右クリックし、「名前をつけて保存」を選択したところを撮影したものですが、ここでは保存するファイルの種類が「ビットマップ」しか選択できなくなっています。

  • bmp画像ファイルから最も多く使われている色

    bmp画像ファイルから最も多く使われている色を選ぶ方法を探しています。 比較的色の数が少ないbmp形式の画像ファイルから最も多く使われている色を選びたいのですが なにかいい方法やフリーのソフトなどを知っていたら教えていただきたいです。

  • JPEGとBMP

    JPEGで保存してある画像をBMP形式に変換する事というのは可能なのでしょうか? また、JPEG形式の画像を2値化するプログラムをC言語で書くことは可能なのでしょうか? JPEGとBMPの違いがよく分からないので、そのあたりも教えていただけるとありがたいです。 よろしくお願いします。

  • 画像ファイルの「bmp」を「gif」に変える事って出来ないのでしょうか

    画像ファイルの「bmp」を「gif」に変える事って出来ないのでしょうか? 利用してる掲示板には、bmpファイルが対応してないのでファイル形式(?)を変える事が出来るのなら変えたいので。

  • BMP→PNG

    BMP→PNG BMP形式の画像をトリミングしてBMP形式で上書きした後、 PNG形式で保存したらPNG形式のほうがファイルサイズが大きくなってしまいました。 これはどうしてなのでしょうか?

  • bmp形式

    1) 画像やイラストを作成したり編集するアプリケーションソフトにはどのようなものがあるんでしょうか? 2) ダウンロードしたbmp形式の画像は、何のソフトで開くことができるんでしょうか? 3) ダウンロードしたbmp形式の画像をWordに挿入したいんですがどのような操作をしたらいいんでしょうか? 初歩的な質問で申し訳ありません。

  • なぜかbmp形式!!!

    なぜか.jpgの画像を「名前を付けて画像を保存」をしようとしても.bmp形式しか選べません! 「ファイル形式」の右のタブをクリックしてもbmpしか無いです!3時間くらい前まではなんとも無かったのにどうしたのでしょう?? 誰か助けて下さい!

専門家に質問してみよう