pgmファイルになっているものを、Visual C++でWindows上で使えるビットマップにしたいと思っております。
どのようにすればよいのか、なかなか良い案が思いつきません。すべてを直す以外に良い方法があれば、教えてください。
単なるデータ変換ですから,ファイルを読み込んで出力するだけだと思いますが……。
> すべてを直す以外に良い方法があれば、教えてください。
すべてを直す,というのは?
お返事ありがとうどざいます。
実は、初心者なものであまり理解していないというものあって、質問がしっかりできていなくてすみません。
下に、pgmファイルのものとDIBファイルのものをのっけてみました。ものすごく長くなるので、かなり抜粋しましたが、
image2[yy][xx]というものをm_RGB[pix]に変換する際は、なにか、コードなどを挿入すればよいのでしょうか?
#include"../PGM.h"
// プロトタイプ宣言
int main(void);
return (int)(r_mg * ( px * cos( theta * PI / MAX_THETA )
+ py * sin( theta * PI / MAX_THETA ) ) + MAX_RHO / 2.0);
}
void draw_a_curve( double px, double py )
// ρ=x・cosθ+y・sinθの曲線を,配列image2[rho][theta]に描く.
{if( 0 <= xx && xx < x_size2 && 0 <= yy && yy < y_size2)
image2[yy][xx] ++;
void CGazouSyori::Nitika(int gx, int gy, BYTE *BmpImage, LPRGBQUAD m_RGB, BYTE thresh, BYTE color)
{
BYTE pix;
//ここから二値化処理
//閾値 thresh
if(color==255){
for(int gi=0; gi<gy; gi++)
for(int gj=0; gj<gx; gj++){
pix=*(BmpImage+gi*gx+gj);
if(m_RGB[pix].rgbRed > thresh){
*(BmpImage+gi*gx+gj) = HIGH;}
else{
*(BmpImage+gi*gx+gj) = LOW;}
}
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200210/02100108.txt
へのマルチポストは既に回答を付けている私への嫌がらせですか?
> 下に、pgmファイルのものとDIBファイルのものをのっけてみました。ものすごく長くなるので、かなり抜粋しましたが、
コメントを付けてください。
あと,抜粋の仕方を間違えている気がします。
> image2[yy][xx]というものをm_RGB[pix]に変換する際は、なにか、コードなどを挿入すればよいのでしょうか?
LPRGBQUAD (=RGBQUAD *)って何か解っていますか?
http://msdn.microsoft.com/library/en-us/gdi/bitmaps_5f8y.asp
とりあえず,DIBの構造を勉強した方がよいでしょう。
実は、明日までに解決をしなくてはいけなかったもので少し焦ってしまい、YuOさんに不快な思いをさせてしまいましてごめんなさい。回答をこんなに早くしていただけていると思いませんでした。ありがとうございました。
今後はDIBの構造のお勉強をもっとしていきます。
ツイート | ![]() |