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.研究背景 随着社会的发展和科技的进步,网络技术被广泛应用于教育领域。在线教育已成为当今发展趋势之一,其中在线考试更是具有重要的意义。传统的考试方式不仅耗费大量人力物力,而且存在考试成果的保密问题。而在线考试可以使考试过程更加…...
LibreOffice无界面转换实战:用Python在Linux服务器实现DOCX批量转PDF
LibreOffice无界面转换实战:用Python在Linux服务器实现DOCX批量转PDF 在当今企业级文档处理流程中,自动化转换办公文档格式已成为提升效率的关键环节。对于部署在Linux服务器上的文档处理系统而言,如何在不依赖图形界面的情况下,稳…...
Cadence IC617实战:VerilogA vs analogLib搭建全差分放大器,哪个更适合你?
Cadence IC617实战:VerilogA与analogLib全差分放大器设计深度对比 在模拟IC设计领域,全差分放大器作为基础构建模块,其实现方式直接影响设计效率和仿真精度。Cadence IC617作为行业标准工具,提供了VerilogA和analogLib两种截然不同…...
League-Toolkit启动故障系统性排查方案:从现象到根治的完整解决路径
League-Toolkit启动故障系统性排查方案:从现象到根治的完整解决路径 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 问…...
免费解锁付费内容:Bypass Paywalls Clean Chrome扩展终极指南
免费解锁付费内容:Bypass Paywalls Clean Chrome扩展终极指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字阅读时代,你是否经常遇到想阅读的文章被付…...
SLANeXt_wireless_safetensors:免费AI无线安全工具入门指南
SLANeXt_wireless_safetensors:免费AI无线安全工具入门指南 【免费下载链接】SLANeXt_wireless_safetensors 项目地址: https://ai.gitcode.com/paddlepaddle/SLANeXt_wireless_safetensors 导语:SLANeXt_wireless_safetensors作为一款免费的AI无…...
YOLOE新手教程:如何用一行代码加载预训练模型
YOLOE新手教程:如何用一行代码加载预训练模型 1. 引言:为什么选择YOLOE? 在计算机视觉领域,目标检测一直是核心任务之一。传统检测模型需要预先定义好所有可能的类别,遇到新物体时往往束手无策。YOLOE(Yo…...
【AI平台】n8n进阶指南:Docker环境下无缝更新与配置保留实战
1. 为什么需要无缝更新n8n? 如果你正在使用n8n这个强大的工作流自动化工具,肯定会遇到版本更新的问题。作为一个长期使用n8n的开发者,我深刻理解那种"既想用新功能又怕配置丢失"的矛盾心理。每次看到n8n后台的更新提示,…...
LFM2.5-1.2B-Thinking-GGUF效果展示:32K上下文下跨PDF章节引用准确性验证
LFM2.5-1.2B-Thinking-GGUF效果展示:32K上下文下跨PDF章节引用准确性验证 1. 模型能力概览 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型,专为低资源环境优化设计。该模型采用GGUF格式存储,配合llama.cpp运行时ÿ…...
恒压供水系统:西门子224XP与昆仑TPC7062触摸屏的完美搭档
恒压供水西门子224XP昆仑tpc7062触摸屏.最多控制41泵,可直接用于项目工程 主要功能: 1、1-4台主泵十1辅泵、箱式、无负压式,一拖一,一拖多,一套程序适配多种供水模式。 2、实时报警和历史报警功能。 3、多种传感器支持,…...
Vibe Coding 流程数据化,规则自我进化,让 AI 从错误中自动学习
Vibe Coding 流程数据化,规则自我进化,让 AI 从错误中自动学习 开源工具 AIDA:给 AI 辅助开发加一个数据采集层,让 AI 从错误中自动学习(Glama 3A 认证) 一、痛点:AI 写代码很快,但…...
