QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 620|回复: 11

help++,,,,,

[复制链接]
发表于 2004-5-13 01:34:53 | 显示全部楼层 |阅读模式
#include<stdio.h>
main(){
  unsigned char image[480][640][3];
  int x,y;
  FILE *fp;
  fp=fopen("gradation.ppm","wb");
  for(y=0;y<480;y++){
    for(x=0;x<640;x++){
      image[y][x][0]=image[y][x][1]=image[y][x][2]=(x+y)*255/1120;
    }
  }
  fprintf(fp,"P6\n#\n640 480\n255\n");
  fwrite(image,sizeof(char),640*480*3,fp);
  fclose(fp);
}


这是一个做由黑变白的图(gradation.ppm)的一个简单的程序。255表示白色,0是黑色,1120=480+640
谁可以告诉我红颜色的部分是什么意思啊?为什么要那样算啊?
我看不懂,,
发表于 2004-5-13 12:04:34 | 显示全部楼层
是不是渐变程度啊     
我从来没学过做这个,乱说的
回复

使用道具 举报

发表于 2004-5-13 12:50:31 | 显示全部楼层
如果对比绘制结果的话就会好猜一些……
楼主把绘制好的图片贴上来撒~
回复

使用道具 举报

发表于 2004-5-13 13:21:16 | 显示全部楼层
你来啦,老干部。不是吧,都是猜啊,不好不好,学习要严谨的说。
回复

使用道具 举报

 楼主| 发表于 2004-5-13 19:50:49 | 显示全部楼层
我想通了,,谢谢大家哦
回复

使用道具 举报

发表于 2004-5-13 22:10:46 | 显示全部楼层
光自己想通了不行,还要介绍介绍的撒,偶还没想通的说
回复

使用道具 举报

发表于 2004-5-13 22:35:39 | 显示全部楼层
我也来猜猜看,我想她是把一个数组写到一个名为gradation.ppm的文件中,中间的那些代码就是对数组的值进行处理的。然后把它当作图形文件打开就会出现渐变色了。至于红色部分的代码,我想应该是这样子的原因吧:
fprintf(fp,"P6\n#\n640 480\n255\n"); 这行代码是写入图片的一些属性,是256级灰度图,大小是640*480(我不了解.ppm文件格式,瞎猜的,呵呵)。
为了实现从左上角开始到右下角从黑渐变到白色,所以每个像素的值需要是范围在0~255之间,并且是由小到大的顺序。红色部分代码就是为了实现每一个像素的值按照上面的规律渐变。至于“image[y][x][0]=image[y][x][1]=image[y][x][2]=”应该是RGB分量相等并且等于红色部分计算出来的值,这样才能保证像素是灰度的,没有其他颜色。 不过我也有个问题,这样子不是会有很多相邻的像素有相同的颜色了吗? 呵呵随便说说了
回复

使用道具 举报

 楼主| 发表于 2004-5-13 23:26:20 | 显示全部楼层
瓦,,,楼上的朋友好厉害啊,,
是做一个从左上角开始到右下角从黑渐变到白色的图
R=RED G=GREEN B=BLUE  R.G.B(0~255 )(0~255)(0~255)
这是成图像颜色的3原色,(r,g,b)=(255,0,0)的时候是红色。.ppm是一种图像格式,用xv来打开。

(x+y)*255/1120就是对应边x,y有相应的倍数,

如果要反过来,从左上角开始到右下角从白渐变到黑色的话就是
255-(128*(x/480)+128*(y/640)

但愿我没有班门弄斧,,
我是大菜鸟的,,,咔咔
回复

使用道具 举报

发表于 2004-5-13 23:31:50 | 显示全部楼层
好的说,看来偶也要good good study。否则就是超级菜鸟了,超级活靶
回复

使用道具 举报

发表于 2004-5-14 16:22:44 | 显示全部楼层
呵呵过奖了, 这里大家都很厉害的。我还有很多问题要大家帮忙呢。BTW,瞳瞳
你是在做毕设吗?我在做毕设,遇到问题搞不定了,千辛万苦才找到这么好的地方,问题很快就解决了,哈哈,真是开心。以后要多多关注这里啦。
I love Linux
I love this game
回复

使用道具 举报

 楼主| 发表于 2004-5-14 21:55:48 | 显示全部楼层
我还没有在做毕设,刚刚在学c。

你快毕业啦,,为你加油!!

咔咔
回复

使用道具 举报

发表于 2004-5-15 17:21:48 | 显示全部楼层
呵呵,谢谢鼓励。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 08:59 , Processed in 0.038985 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表