ピクセルに対応する各行と、PPM P3イメージからのR G B値である各列を持つ行列を希望します。ピクセルデータをPPM(P3)イメージからCのマトリックスにどのように読み込むのですか?
[imageWidth * imageHeight] [3]をサイズとして使用して行列を作成しようとしましたが、サイズが入力されましたが、それは永遠にかかるようです。私は何かを見逃してしまったと思います。誰かが私が間違っていた場所を説明したり、これを行う良い方法を提案したりすることはできますか?
int pixels [imageSize] [3];
while(fgets(line,70,fd) != NULL){
for (column = 0; column < (imageSize); column++){
for (row = 0; row < 1; row++){
sscanf(line, "%d %d %d", &r, &g, &b);
pixels [column] [row] = r;
pixels [column] [row + 1] = g;
pixels [column] [row + 2] = b;
}
}
}
行は、fgets関数によって読み込まれた行を参照します。
あなたを決して:
が最初のラスタの最初の行の最初の文字に位置している
FILE
で、あなたはfd
によって指定されたFILE
からimageSize
ピクセルを読みたいということを考えると、これはトリックを行います'line'を更新すれば、同じ値をスキャンするだけです。 – jwodderおっと、私は更新線を行う外側whileループを見逃しました。 –
r、g、bコンポーネントをイメージの異なる*行*に置くのは謎です。また、あなたが読んだすべての行に対して 'for(column = 0; column <(imageSize); column ++)'ループが遅くなる理由もあります。たとえそれが紙面上の非公式の擬似コードであっても、あなたが何をしたいのかという正確なフローチャートを書くことをお勧めします。 –