标题: [已解决] 求解,以图片为点像素,铺开两个像素,编译通过,没有结果? [打印本页]
作者: zzz19760225 时间: 2024-9-8 11:25 标题: [已解决] 求解,以图片为点像素,铺开两个像素,编译通过,没有结果?
本帖最后由 zzz19760225 于 2024-10-17 07:57 编辑
WIN10+vc6.0+easyx
以图片0.jpg和1.jpg为单元,进行界面覆盖,形成类似点像素的效应。
现在点可以输出显示,面也可以输出显示,但是想在单与全之间,显示散的分散的点。用了if,结果编译了,显示不出来。
1,求解显示散点?
2,问图片单元是否可以装进指针,用指针形式去操作驾驶?- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <windows.h>
- #include <graphics.h>
-
- int main() {
- int H1=400; //左右之间为横,横线量
- int I1=250; //上下之间为竖,竖线量
- initgraph(H1, I1);
-
- IMAGE img0; //0.jpg为100x100绿色图片
- loadimage(&img0,"0.jpg",1,1); // 底色环境绿色于眼睛
- for ( int H2=0 ; H2 < 401 ; H2=H2+1 ) {
- for ( int I2=0 ; I2 < 251 ; I2=I2+1 ) { putimage(H2, I2, &img0); }}
-
- IMAGE img1; //1.jpg为100x100深色图片
- loadimage(&img1,"1.jpg",1,1); // 字体本色黑色
- for ( int H3=0 ; H3 < 401 ; H3=H3+1 ) {
- for ( int I3=0 ; I3 < 251 ; I3=I3+1 ) {
- if( H3>20 && H3<30 && I3>20 && I3<30 && H3>40 && H3<50 && I3>40 && I3<50 )
- { putimage(H3, I3, &img1); }}}
-
- getch(); //暂停以便于观察程序
-
- closegraph();
- return 0; }
复制代码
作者: zzz19760225 时间: 2024-9-8 17:09
好像不是以图为点像素为单元,弄错了。问题不成立
作者: flashercs 时间: 2024-9-8 17:11
- if( (H3>20 && H3<30 && I3>20 && I3<30) || (H3>40 && H3<50 && I3>40 && I3<50) )
- { putimage(H3, I3, &img1); }
复制代码
作者: zzz19760225 时间: 2024-9-8 17:20
本帖最后由 zzz19760225 于 2024-10-18 12:09 编辑
回复 3# flashercs
谢谢大侠的代码
可以完成两个散点(但是我编的这个程序,好像没有达到以图片为点像素的先期需求,而是以+1的1为单元了,方向错了)。
----------------------------------------------------------------------------------------------------------------------------------- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <windows.h>
- #include <graphics.h>
-
- int main() {
- int H1=400; //左右之间为横,横线量
- int I1=250; //上下之间为竖,竖线量
- initgraph(H1, I1);
-
- IMAGE img0; //0.jpg为2x2绿色图片
- loadimage(&img0,"02.jpg",1,1); // 底色环境绿色于眼睛
- for ( int H2=1 ; H2 < 401 ; H2=H2+1 ) {
- for ( int I2=1 ; I2 < 251 ; I2=I2+1 ) { putimage(H2, I2, &img0); }}
-
- IMAGE img1; //1.jpg为2x2深色图片
- loadimage(&img1,"12.jpg",1,1); // 字体本色灰色
-
- IMAGE img2; //1.jpg为2x2深色图片
- loadimage(&img2,"22.jpg",1,1); // 字体本色黑色
-
- for ( int H3=1 ; H3 < 201 ; H3=H3+1 ) {
- for ( int I3=1 ; I3 < 151 ; I3=I3+1 ) { putimage(H3, I3, &img1);
- if( (H3>20 && H3<30 && I3>20 && I3<30) || (H3>40 && H3<50 && I3>40 && I3<50) ) //flashercs的||(括号)间隔代码
- { putimage(H3, I3, &img2); }
- }}
- getch(); //暂停以便于观察程序
-
- closegraph();
- return 0; }
复制代码
H2=H2+H2 不行
H3=H3+H3 不行
但是点阵 loadimage(&img2,"22.jpg",1,1);的1,1是竖1与横1,是一个点。怎么样一个图片一个显存的点,一个图片代表一个内存的点呢,每个点可以独立的存取信息,每个点可以与其他点,组合和进制规则的实现自由度选择呢
百点,万点,亿点的规律点阵,其他各种不规律的点阵列。
如何以图形的点,可操作的点,为一切开始。
1铺地砖模式的点阵屏幕单多页面,2已有阵列的点组合穷尽的内容获取选择,3以屏幕为一个巨大的字体,各种点,点阵笔画,部首偏旁,单体独体,组合体字的各种组合。
点为1,间隔为2的ffor组合,倒是可以达到,类似工业点阵屏幕的感觉。- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <windows.h>
- #include <string.h>
- #include <graphics.h>
- #include <easyx.h>
-
- int main() {
- /*/ 开始10亿动态变量空间 /*/
- char *a = (char *)malloc(1000000000 * sizeof(char)); // 动态分配10亿个char的空间
- //if (a == NULL) {fprintf(stderr, "Memory allocation failed\n");return 1;} /*出错提示*/
- for (size_t i = 0; i < 1000000000; ++i) { /*初始化数组(可选)*/ a[i] = '0';} /* 或者任何其他初始化值*/
-
- printf("%c\n",a[123]);
- printf("%c\n",a[100000000]);
-
- /*/ 开始图形 /*/
- int H1=400; //左右之间为横,横线量
- int I1=250; //上下之间为竖,竖线量
- initgraph(H1, I1);
-
- IMAGE img0; //0.jpg为100x100绿色图片
- loadimage(&img0,"0.jpg",1,1); // 底色环境绿色于眼睛
- for ( int H2=1 ; H2 < 401 ; H2=H2+2 ) {
- for ( int I2=1 ; I2 < 251 ; I2=I2+2 ) { putimage(H2, I2, &img0); }}
-
- // IMAGE img1; //1.jpg为100x100深色图片
- // loadimage(&img1,"1.jpg",1,1); // 字体本色黑色
- // for ( int H3=1 ; H3 < 401 ; H3=H3+H3 ) {
- // for ( int I3=1 ; I3 < 251 ; I3=I3+H3 ) {
- // if( H3>20 && H3<30 && I3>20 && I3<30 && H3>40 && H3<50 && I3>40 && I3<50 )
- // { putimage(H3, I3, &img1); }}}
-
- getch(); //暂停以便于观察程序
-
- closegraph(); /*/ 结束图形 /*/
-
-
- free(a); /*/ 结束动态变量 /*//*当不再需要这些数据时,释放内存*/
- return 0;
- }
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |