Board logo

标题: [已解决] 求解,以图片为点像素,铺开两个像素,编译通过,没有结果? [打印本页]

作者: zzz19760225    时间: 2024-9-8 11:25     标题: [已解决] 求解,以图片为点像素,铺开两个像素,编译通过,没有结果?

本帖最后由 zzz19760225 于 2024-10-17 07:57 编辑

WIN10+vc6.0+easyx
以图片0.jpg和1.jpg为单元,进行界面覆盖,形成类似点像素的效应。
现在点可以输出显示,面也可以输出显示,但是想在单与全之间,显示散的分散的点。用了if,结果编译了,显示不出来。
1,求解显示散点?
2,问图片单元是否可以装进指针,用指针形式去操作驾驶?
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <graphics.h>
  6. int main() {
  7. int H1=400;                         //左右之间为横,横线量
  8. int I1=250;                         //上下之间为竖,竖线量
  9. initgraph(H1, I1);
  10.      IMAGE img0;                    //0.jpg为100x100绿色图片
  11.      loadimage(&img0,"0.jpg",1,1);  // 底色环境绿色于眼睛
  12.     for ( int H2=0 ; H2 < 401 ; H2=H2+1 )  {
  13.     for ( int I2=0 ; I2 < 251 ; I2=I2+1 )  {  putimage(H2, I2, &img0);  }}
  14.      IMAGE img1;                    //1.jpg为100x100深色图片
  15.      loadimage(&img1,"1.jpg",1,1);  // 字体本色黑色
  16.     for ( int H3=0 ; H3 < 401 ; H3=H3+1 )  {
  17.     for ( int I3=0 ; I3 < 251 ; I3=I3+1 )  {
  18.           if( H3>20 && H3<30 && I3>20 && I3<30 && H3>40 && H3<50 && I3>40 && I3<50   )
  19.   { putimage(H3, I3, &img1);  }}}
  20. getch();                       //暂停以便于观察程序
  21. closegraph();
  22. return 0;   }
复制代码

作者: zzz19760225    时间: 2024-9-8 17:09

好像不是以图为点像素为单元,弄错了。问题不成立
作者: flashercs    时间: 2024-9-8 17:11

  1. if( (H3>20 && H3<30 && I3>20 && I3<30) || (H3>40 && H3<50 && I3>40 && I3<50)   )
  2.   { putimage(H3, I3, &img1);  }
复制代码

作者: zzz19760225    时间: 2024-9-8 17:20

本帖最后由 zzz19760225 于 2024-10-18 12:09 编辑

回复 3# flashercs


谢谢大侠的代码

可以完成两个散点(但是我编的这个程序,好像没有达到以图片为点像素的先期需求,而是以+1的1为单元了,方向错了)。
----------------------------------------------------------------------------------------------------------------------------------
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <graphics.h>
  6. int main() {
  7. int H1=400;                         //左右之间为横,横线量
  8. int I1=250;                         //上下之间为竖,竖线量
  9. initgraph(H1, I1);
  10.      IMAGE img0;                    //0.jpg为2x2绿色图片
  11.      loadimage(&img0,"02.jpg",1,1);  // 底色环境绿色于眼睛
  12.     for ( int H2=1 ; H2 < 401 ; H2=H2+1 )  {
  13.     for ( int I2=1 ; I2 < 251 ; I2=I2+1 )  {  putimage(H2, I2, &img0);  }}
  14.      IMAGE img1;                    //1.jpg为2x2深色图片
  15.      loadimage(&img1,"12.jpg",1,1);  // 字体本色灰色
  16.      IMAGE img2;                    //1.jpg为2x2深色图片
  17.      loadimage(&img2,"22.jpg",1,1);  // 字体本色黑色
  18.     for ( int H3=1 ; H3 < 201 ; H3=H3+1 )  {
  19. for ( int I3=1 ; I3 < 151 ; I3=I3+1 )  { putimage(H3, I3, &img1);  
  20.    if( (H3>20 && H3<30 && I3>20 && I3<30) || (H3>40 && H3<50 && I3>40 && I3<50)   )  //flashercs的||(括号)间隔代码
  21.   { putimage(H3, I3, &img2);  }
  22. }}
  23. getch();                       //暂停以便于观察程序
  24. closegraph();
  25. return 0;   }
复制代码
H2=H2+H2  不行
H3=H3+H3  不行
但是点阵 loadimage(&img2,"22.jpg",1,1);的1,1是竖1与横1,是一个点。怎么样一个图片一个显存的点,一个图片代表一个内存的点呢,每个点可以独立的存取信息,每个点可以与其他点,组合和进制规则的实现自由度选择呢
百点,万点,亿点的规律点阵,其他各种不规律的点阵列。


如何以图形的点,可操作的点,为一切开始。
1铺地砖模式的点阵屏幕单多页面,2已有阵列的点组合穷尽的内容获取选择,3以屏幕为一个巨大的字体,各种点,点阵笔画,部首偏旁,单体独体,组合体字的各种组合。
点为1,间隔为2的ffor组合,倒是可以达到,类似工业点阵屏幕的感觉。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6. #include <graphics.h>
  7. #include <easyx.h>
  8. int main() {
  9.     /*/         开始10亿动态变量空间                          /*/
  10.     char *a = (char *)malloc(1000000000 * sizeof(char));  // 动态分配10亿个char的空间
  11.     //if (a == NULL) {fprintf(stderr, "Memory allocation failed\n");return 1;}  /*出错提示*/
  12.     for (size_t i = 0; i < 1000000000; ++i) { /*初始化数组(可选)*/ a[i] = '0';} /* 或者任何其他初始化值*/
  13.     printf("%c\n",a[123]);
  14.     printf("%c\n",a[100000000]);
  15. /*/         开始图形                                         /*/
  16. int H1=400;                         //左右之间为横,横线量
  17. int I1=250;                         //上下之间为竖,竖线量
  18. initgraph(H1, I1);
  19.      IMAGE img0;                    //0.jpg为100x100绿色图片
  20.      loadimage(&img0,"0.jpg",1,1);  // 底色环境绿色于眼睛
  21.     for ( int H2=1 ; H2 < 401 ; H2=H2+2 )  {
  22.     for ( int I2=1 ; I2 < 251 ; I2=I2+2 )  {  putimage(H2, I2, &img0);  }}
  23.     // IMAGE img1;                    //1.jpg为100x100深色图片
  24.     // loadimage(&img1,"1.jpg",1,1);  // 字体本色黑色
  25. //   for ( int H3=1 ; H3 < 401 ; H3=H3+H3 )  {
  26. //   for ( int I3=1 ; I3 < 251 ; I3=I3+H3 )  {
  27.      //     if( H3>20 && H3<30 && I3>20 && I3<30 && H3>40 && H3<50 && I3>40 && I3<50   )
  28. //   { putimage(H3, I3, &img1);  }}}
  29. getch();                       //暂停以便于观察程序
  30. closegraph();   /*/        结束图形          /*/
  31.     free(a);     /*/        结束动态变量          /*//*当不再需要这些数据时,释放内存*/
  32.     return 0;
  33. }
复制代码





欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2