私はPGMイメージで動作するプログラムを持っています。私はそれをリメイクしなければならないので、PPMイメージでも機能します。私は現在、動的に割り当てられたテーブルを使用してイメージをメモリに格納しています。問題は、PGMイメージではうまくいくということですが、PPMは半分にカットされています。 Input&output 何が起こっているのですか?これらは私が不審だと思う場所である:C - PGMとPPM - 動的に割り当てられたテーブル、イメージは半分にカットされます
これは私がテーブルを作成する方法である。また、TObrazの構造を
int zapisz(FILE *plik_wy,TObraz *obraz)
{
int i,j;
if(obraz->format==2)
fprintf(plik_wy,"P2\n");
else
fprintf(plik_wy,"P3\n");
fprintf(plik_wy,"%d %d\n",obraz->wymx,obraz->wymy);
fprintf(plik_wy,"%d\n",obraz->szarosci);
for(i=0;i<obraz->wymy;i++)
{
for(j=0;j<obraz->wymx;j++)
{
fprintf(plik_wy,"%d ",obraz->piksele[i][j]);
if(j>1 && j%15==0)
fprintf(plik_wy,"\n");
}
}
return 0;
}
:
obraz->piksele=(int**)malloc(obraz->wymy*sizeof(int *));
for(i=0; i<obraz->wymy; i++)
{
obraz->piksele[i]=(int*)malloc(obraz->wymx*sizeof(int));
}
for (i=0;i<obraz->wymy;i++) {
for (j=0;j<obraz->wymx;j++) {
fscanf(plik_we,"%d",&(obraz->piksele[i][j]));
}
}
}
return obraz->wymx*obraz->wymy;
}
は、これは私が新しいファイルを保存する方法です。
typedef struct
{
int **piksele;
int format;
int wymx;
int wymy;
int szarosci;
} TObraz;