EASYX图片操作
easyx学习网址
建议使用谷歌搜索引擎搜索相关的资料
eg1:图片显示到桌面
#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#define PI 3.14int main() {// 绘制图片initgraph(1200, 480);IMAGE img;// EASYX不支持透明图片,loading表示的是加载图片loadimage(&img, "F:/picture/background.jpg");// putimage的作用第一个参数表示X轴的位置,第二个参数表示Y轴的位置,第三个参数表示要绘制的对象指针putimage(0, 0, &img);IMAGE imgBear;/*加载&imgBear表示对象指针,第二个参数表示对象路径,第三个参数表示的是拉伸的高度,第四个参数表示拉伸的宽度,最后一个参数表示适应图片大小*/loadimage(&imgBear, "F:/picture/bear.png", 100, 235,true);putimage(530, 180, &imgBear);getchar();closegraph();return 0;}
eg2:使用 三元光栅操作解决图片透明问题
#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#define PI 3.14/*将绘制透明图片的代码绘制成函数第一个参数和第二个参数表示x和y的坐标第三个参数表示合体掩码的对象指针第四个参数表示image的对象指针
*/
void putTransparentImage(int x, int y, const IMAGE* mask, const IMAGE* img) {putimage(x, y, mask, SRCAND);putimage(x, y, img, SRCPAINT);
}
int main() {/*任何的颜色与黑色做或运算其结构任然是其颜色本身剪影图片与绿色背景进行与运算得到绿色背景绿色背景与剪影的黑背熊主体进行或运算的到熊的主体背景*/initgraph(1200, 480);IMAGE imgBackground;loadimage(&imgBackground, "F:/picture/background.jpg");IMAGE imgMask;loadimage(&imgMask, "F:/picture/mask.jpg");IMAGE imgBear;loadimage(&imgBear, "F:/picture/bear.png");// 调用putimage函数将背景图片绘制到窗体上putimage(0, 0, &imgBackground);// 使用掩码与窗体中的图像进行与运算putimage(530, 180, &imgMask, SRCAND);// 将熊的本体与窗体中的函数进行或运算putimage(530, 180, &imgBear, SRCPAINT);getchar();closegraph();return 0;}
使用光栅运输的效果如下所示
eg3:实现动画效果让图片跑起来
图片的存储路径


透明图片背景存储位置

相关代码如下所示
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <easyx.h>
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#define PI 3.14
// 宏定义
#define BEAR_FRAMES 11
// 函数封装,让熊和背景图片完美的结合到一起
void putTransparentImage(int x, int y, const IMAGE* mask, const IMAGE* img) {putimage(x, y, mask, SRCAND);putimage(x, y, img, SRCPAINT);
}int main() {initgraph(1200, 480);setbkcolor(WHITE);cleardevice();IMAGE imgBackground;loadimage(&imgBackground, "F:/picture/background.jpg");// 创建一个image类型的数组指针并且里面包含11个数据IMAGE imgArrBearFrames[BEAR_FRAMES];// 使用for循环对该数组进行遍历 int num = sizeof(imgArrBearFrames[BEAR_FRAMES]) / sizeof(imgArrBearFrames[0]);// 将图片加载到image对象当中for (int i = 0; i < BEAR_FRAMES; i++) {// 创建字符数组char strImgPath[100];// 将图片的路径保存到给字符数组当中strImgPath,占位符百分号d会被参数I替换sprintf(strImgPath, "F:/picture/beer/frames/bear%d.png", i);// sprintf函数用于组合变换的部分和不变的部分loadimage(&imgArrBearFrames[i], strImgPath);}// 使用同样的方式对掩码的图片进行加载IMAGE imgArrBearMarsks[BEAR_FRAMES];for (int i = 0; i < BEAR_FRAMES; i++) {// 创建字符数组存储图片char strImgPath[100];// 将图片的路径添加到字符数组中sprintf(strImgPath, "F:/picture/beer/masks/bearmask%d.png", i);// 第一个参数是保存图像的对象指针,第二个参数是图片的地址loadimage(&imgArrBearMarsks[i], strImgPath);}// 轮播一组图片实现熊在路上跑步的效果int frame = 0; // 图片数组的下标int x = -150; // 熊的x坐标// 批量绘图函数BeginBatchDraw();while (1) {cleardevice();// 绘制背景图片putimage(0, 0, &imgBackground);// 绘制熊的一帧透明图片putTransparentImage(x, 180, &imgArrBearMarsks[frame], &imgArrBearFrames[frame]);// 将缓存区中的图片绘制到屏幕上FlushBatchDraw();frame++;x += 10; // x = x + 10;if (frame >= 11) {frame = 0;}if (x >= 1200 + 150) {x = -150;}Sleep(50);}// 结束EndBatchDraw()函数,结束批量绘图EndBatchDraw();return 0;}
实现熊从左边跑到右边并且无限循环


相关文章:
EASYX图片操作
easyx学习网址 建议使用谷歌搜索引擎搜索相关的资料 eg1:图片显示到桌面 #include <stdio.h> #include <easyx.h> #include <iostream> #include <math.h> #include <stdlib.h> #include <conio.h> #include <time.h> #define PI 3…...
多测师肖sir_高级金牌讲师__adb命令
adb指令整理: ADB常用的指令: 查看当前连接设备 : adb devices 进入到shell : adb shell 查看日志 : adb logcat 安装apk文件 : adb install xxx.apk 卸载APP : adb uninstall 包名 查看包名 &…...
块级作用域的理解
块级作用于的概念 由一对花括号{}中的语句集都属于一个块,在这个{}里面包含的块内定义的所有变量在代码块外都是不可见的,因此称为块级作用域。 作用域永远都是任何一门语言的重中之中,因为它控制着变量和参数的可见性和生命周期。讲到这里&…...
【GitLab、GitLab Runner、Docker】GitLab CI/CD 应用
安装Gitlab开源版 官方文档-安装Gitlab 使用Docker安装 sudo docker run --detach \--hostname gitlab.example.com \--env GITLAB_OMNIBUS_CONFIG"external_url http://${ip}:9999/; gitlab_rails[gitlab_shell_ssh_port] 8822;" \--publish 443:443 --publish 99…...
Linux文本编辑器vim使用和配置详解
vim介绍 vim是Linux的一款文本编辑器,可以用来编辑代码,而且支持语法高亮,还可以进行一系列配置使vim更多样化。也可以运行于windows,mac os上。 vim有多种模式,但目前我们只介绍绝大多数场景用的到的模式&…...
港科夜闻|香港科大戴希教授被选为腾讯公司新基石研究员
关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大戴希教授被选为腾讯公司“新基石研究员”。10月30日,作为目前国内社会力量资助基础研究力度最大的公益项目之一,“新基石研究员项目”揭晓了第二期获资助名单,来自13个城市28家…...
如何读懂深度学习python项目,以`Multi-label learning from single positive label`为例
Paper : Multi-label learning from single positive label Code 先读一读README.md 可能有意想不到的收获; 实验环境设置要仔细看哦! 读论文 如何读论文,Readpaper经典十问 (可能在我博客里有写) How to read a …...
【面试】Kafka基础知识
定义 Kafka是一个分布式基于发布/订阅模式的消息队列 优点 解耦:上下游之间依赖解耦。缓冲/削峰:生产消息的速度和消费消息的速度不一致时,可以起到缓冲作用。异步:天然的异步处理机制,生产者把消息(任务)放进队列&…...
【入门Flink】- 06Flink作业提交流程【待完善】
Standalone 会话模式作业提交流程 代码生成任务的过程: 逻辑流图(StreamGraph)→ 作业图(JobGraph)→ 执行图(ExecutionGraph)→物理图(Physical Graph)。 作业图算子链…...
Linux 上的轻量级浏览器
导读大多数 Linux 桌面环境中包含的基本图像查看器可能不足以满足你的需要。如果你想要一些更多的功能,但仍然希望它是轻量级的,那么看看这四个 Linux 桌面中的图像查看器,如果还不能满足你的需要,还有额外的选择。 当你需要的不…...
肆[4],滤波
1,简介 1.1,Opencv提供滤波处理函数 方框滤波,BoxBlur函数 均值滤波(领域平均滤波),Blur函数 高斯滤波,GaussianBlur函数 中值滤波,medianBlur函数 双边滤波,bilateralFilter函数 1.2&…...
Python 包管理器入门指南
什么是 PIP? PIP 是 Python 包管理器,用于管理 Python 包或模块。注意:如果您的 Python 版本是 3.4 或更高,PIP 已经默认安装了。 什么是包? 一个包包含了一个模块所需的所有文件。模块是您可以包含在项目中的 Pyth…...
2022年06月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 如下所示的2行代码,最后print()函数打印出来的结果是?( ) c [[赵大,…...
配置Raspberry自动连接WIFI,在无法查看路由器的校园网情况下使用自己电脑热点
1、开启电脑热点,并共享电脑WLAN2 打开控制面板->网络和Internet->网络连接 选择自己的校园网,我这里是WLAN2,右键属性,如下操作: 如果没有看到 本地连接*10类似的图标 则按如下操作:winx键&#x…...
#stm32整理(一)flash读写
以这篇未开始我将进行stm32学习整理为期一个月左右完成stm32知识学习整理内容顺序没有一定之规写到哪想到哪想到哪写到哪,主要是扫除自己知识上的盲区完成一些基本外设操作。 以stm32f07为例子进行flash读写操作 stm32flash简介 参考资料正点原子和野火开发手册 …...
windows10编译高版本openssl
参考文章 参考文章中的windows编译为低版本,在高版本的openssl编译中已经没有:“ms\do_ms.bat”这个脚本了,现记录下编译过程 1、准备工作 安装ActivePerl,安装后会自动写入环境变量,参照参考文章测试安装成功与否&a…...
Mac之NVM|通过brew安装、更新、卸载、重新安装nvm
文章目录 导文通过brew安装NVM通过brew更新NVM通过brew卸载NVM通过brew重新安装NVM 导文 Mac之NVM 通过brew安装、更新、卸载、重新安装 通过brew安装NVM brew install nvm通过brew更新NVM brew upgrade nvm通过brew卸载NVM brew uninstall nvm通过brew重新安装NVM brew re…...
react的状态管理有哪些方法?
在React中,有多种方法可以进行状态管理,以下是其中一些常见的方法: 1:使用React的内置状态(State): React组件可以通过使用 useState 钩子来管理内部的状态。它允许你在函数组件中定义和更新状态。例如: import React, { useState } from react;function MyComponent…...
AST注入-从原型链污染到RCE
文章目录 概念漏洞Handlebarspug 例题 [湖湘杯 2021 final]vote 概念 什么是AST注入 在NodeJS中,AST经常被在JS中使用,作为template engines(引擎模版)和typescript等。对于引擎模版,结构如下图所示。 如果在JS应用中存在原型污染漏洞&…...
【开题报告】基于uniapp的在线考试小程序的设计与实现
1.研究背景 随着社会的发展和科技的进步,网络技术被广泛应用于教育领域。在线教育已成为当今发展趋势之一,其中在线考试更是具有重要的意义。传统的考试方式不仅耗费大量人力物力,而且存在考试成果的保密问题。而在线考试可以使考试过程更加…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...
