簡體   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