【发布时间】:2014-07-08 03:37:42
【问题描述】:
我试图弄清楚如何使用数组打印一盒同心正方形,如下所示:http://imgur.com/U5rXGsY
我有一个每种颜色的 RGB 值表,但我不知道该怎么做。这就是我到目前为止所拥有的。编译后导出为 PPM 文件格式。
#include <stdio.h>
#include <stdlib.h>
#define HEIGHT 700
#define WIDTH 700
#define COLORS 3
int main(){
int x,y,i;
unsigned char image[WIDTH][HEIGHT][COLORS];
image[][][COLORS]={{0},{0},{0,1,2}};
printf("P6\r\n");
printf("700 700\r\n");
printf("255\n");
for(y=0;y<HEIGHT;++y)
{
for(x=0;x<WIDTH;++x)
{
image[700][700][0];
image[700][700][1];
image[700][700][2];
printf
}
}
return 0;
}
【问题讨论】:
-
您是想获取一个 RGB 数组并输出一个图像文件,还是想找到一种方法将数组图像显示到屏幕上?
-
输出一个我可以用 ppm 查看器打开的图像文件
-
您需要熟悉 PPM 文件格式和压缩(如果有)。获得数组后,您可以使用
fopen()创建输出文件并使用fwrite()以正确格式写入数组。看起来您正在使用printf()打印格式,但它需要写入文件而不是控制台。打开文件句柄并改用fprintf()。 -
您可能希望从更简单的东西开始,例如全蓝色图像,以确保文件格式能够正常工作。
标签: c arrays image unsigned ppm