我正在做一个 sierpinski 的地毯程序,我设法从矩阵创建 PGM 图像。我首先创建一个具有 # 或 ' ' .# = 白色,' ' = 黑色的 char **matrix,然后我创建一个 int **pixels,黑色和白色的值为 0 或 255,非常简单。矩阵大小等于 sierpinski 地毯的迭代次数:对于算法的 3 次迭代,我得到 27 x 27 像素的结果矩阵(所以图像)。我怎样才能乘以这个矩阵以放大结果图片但保持相同的图像。对于每个像素,我希望它在输出图像中是 4 个像素。C 程序。
编辑:用于从像素值矩阵打印 PGM 图像的代码
void print(char fout[30],int **pixels,int width,int height){
int i,j;
FILE *f = fopen(fout,"w");
fprintf(f,"%s\n","P2");
fprintf(f,"%d %d\n",width,height);
fprintf(f,"%d\n",255);
for(i=height-1;i>=0;i--){
for(j=0;j<width;j++){
fprintf(f,"%d ",pixels[i][j]);
}
fprintf(f,"\n");
}
fclose(f);
}
创建像素值矩阵的代码
for(i=0;i<size;i++)
for(j=0;j<size;j++)
if(basegrid[i][j] == ' ')
pixels[i][j]=0;
else
pixels[i][j]=255;