找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 9956|回复: 3

[已解决] 求解,以图片为点像素,铺开两个像素,编译通过,没有结果?

[复制链接]
发表于 2024-9-8 11:25:03 | 显示全部楼层 |阅读模式
本帖最后由 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;   }
复制代码
 楼主| 发表于 2024-9-8 17:09:59 | 显示全部楼层
好像不是以图为点像素为单元,弄错了。问题不成立
发表于 2024-9-8 17:11:13 | 显示全部楼层
  1. if( (H3>20 && H3<30 && I3>20 && I3<30) || (H3>40 && H3<50 && I3>40 && I3<50)   )
  2.                   { putimage(H3, I3, &img1);  }
复制代码

评分

参与人数 1技术 +2 收起 理由
zzz19760225 + 2 谢谢

查看全部评分

 楼主| 发表于 2024-9-8 17:20:33 | 显示全部楼层
本帖最后由 zzz19760225 于 2024-12-4 10:47 编辑

回复 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. }
复制代码


之前我以为设置的数量1,不等图片显示1。这样后面再换成10,放大可识别加A字符图片00.jpg,结果是可以成为点阵的,之前是我错了。

  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,"00.jpg",10,10);  // 底色环境绿色于眼睛
  12.             for ( int H2=0 ; H2 < 401 ; H2=H2+10 )  {
  13.             for ( int I2=0 ; I2 < 251 ; I2=I2+10 )  {  putimage(H2, I2, &img0);  }}



  14.          getch();                       //暂停以便于观察程序

  15. closegraph();
  16. return 0;   }
复制代码

那么这个点阵显示是可以的,后面是建立关联的显存文本。
图片字符集集?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 21:20 , Processed in 0.020689 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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