首页 文章

根本无法理解在阵列中存储像素数据的概念

提问于
浏览
-2

(已经提交的作业)我上交的内容甚至没有编译 . 这不是针对点,它纯粹是为了理解(查看截止日期)我能够完成其余的任务但是因为我无法弄清楚如何相对于高度/宽度保存像素数据 . 我真的花了最近5个小时试图理解这一点,但它只是没有点击 .

如何保存单个像素rgb值 . 在读入图像时,如何判断程序@ height 1,width 1,读取green = 200,blue = ...,red = ....?如果有人知道maxVal指的是什么会有所帮助

typdef struct
{
        unsigned char green;
        unsigned char blue;
        unsigned char red;
}pixelD;

typedef struct
{       
        pixelD * pixel;
} Color;



imageData


Image * ReadImage(char *filename)
{
//* items were added by instructor. I dont see how the magicNum array 
     would be useful here 
/* These lines are useful:
 * char magicNum[128];    
 * int width, height, maxval;    
   int imgSize = (width * height * sizeof(pixel)); 
 * fscanf(f_in,  "%s\n%d %d\n%d\n", magicNum, &width, &height, &maxval);
   pixel = malloc(imgSize); 
   fread()????? this is supposedly the key?

作业:您将开始操作图像1)编写一个结构来存储图像 .

== 2.1 Image struct ==你的Image结构需要一个宽度,一个高度和一个缓冲区来存储图像数据 . 如
我们在课堂上讨论过,图像数据是像素数据的二维数组 . 一个像素包含3个无符号字符:一个用于红色,一个用于绿色,一个用于蓝色 . 有多种方式
存储这些数据,它们都是正确的

1 回答

  • 0

    您需要执行的步骤是:

    • 读取高度和宽度

    • 计算用于保存数据的缓冲区的大小

    • 为缓冲区分配空间

    • 读取数据并将其放入缓冲区 .

    ReadImage中的注释可以帮助您解决这个问题 . 只需将它们按顺序排列并定义变量名称即可 .

相关问题