繁体   English   中英

我将如何使用数组来打印图像?

[英]How would I use an array to print an image?

我试图弄清楚如何使用数组打印一盒同心正方形,如下所示: 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;
}

将其放在printf()调用之前:

FILE * outputFile = fopen("path/to/output/file.ppm","w");

然后,将所有的printf("text")调用更改为fprintf(outputFile,"text")

最后,您可以不使用嵌套循环,而可以使用fwrite()在一次调用中写入所有数据。

将此替换为两个循环:

fwrite((void*)image, COLORS, WIDTH * HEIGHT, outputFile);

这会将数组以1个RGB像素块的形式写入outputFile。 void *类型转换应使所有警告均消失。 图像数组实际上是一个指针。 字节序可能存在一些问题,但请测试此代码并查看其是否有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM