C/C++图形库EasyX保姆级使用教程(四) 图片的展示与缩放

news2024/11/23 17:19:09

C/C++图形库EasyX保姆级使用教程

第一章 Microsoft Visual Studio 2022和EasyX的下载及安装使用
第二章 图形化窗口设置以及简单图形的绘制
第三章 图形颜色的填充及相关应用
第四章 图片的展示与缩放


文章目录

  • C/C++图形库EasyX保姆级使用教程
  • 前言
  • 一、图片的展示
    • 1.变量存储图片
    • 2.加载图片
    • 3.展示图片
  • 二、图片的缩放
  • 总结


前言

想必大多数人学习图形库是想要将一些图片放到自己的程序中,而不是去画一些简单的图形,所以本篇文章将带领大家一起学习VC中图片的展示


一、图片的展示

1.变量存储图片

在加载图片时,我们需要先声明一个IMAGE变量去存储我们加载的图片。但是在这之前,我们要先绘制出来一个窗口。
示例:

#include<iostream>
#include<easyx.h>
#include<graphics.h>
using namespace std;
int main() {
	initgraph(1280, 730);/*创建一个窗口*/
	IMAGE img;/*声明一个IMAGE变量*/
	return 0;
}

2.加载图片

在加载图片时,我们使用loadimage()函数,loadimage(&变量名, "地址");,特别注意的是,地址我们可以写成固定的地址,也可以写成相对地址。这里为大家提供一下相对地址的写作方式。
另外展示的图片类型可以是png也可以是jpg,所以,并不需要过度去在意图片的类型。
还有一点最最最最最重要的是,在使用loadimage函数之前一定要按照如下图进行操作,否则可能会报错:
操作方式

使用方式如下:

#include<iostream>
#include<easyx.h>
#include<graphics.h>
using namespace std;
int main() {
	initgraph(1280, 730);/*创建一个窗口*/
	IMAGE img;/*声明一个IMAGE变量*/
	loadimage(&img, "./res/ys.png");/*变量地址,图片地址    相对地址“./”本目录下的文件进行访问   图片展示可以是png也可以是jpg*/
	while (true);
	return 0;
}

3.展示图片

在之前,我们既然已经加载了图片,那么我们就需要再进行图片的展示,这里,我们需要用到putimage();函数,这个函数的使用方式为:putimage(图片x,图片y,&变量)
注意:图片x和图片y是指的图片左上角的展示出来的坐标,而非是图片的中心或者是其他的位置,并且,在传递变量的时候一定要使用变量的地址,如果不使用的话,就会报错,具体的原因,如果有大佬知道的话,可以打在评论区,方便大家查看和理解!!!
详细代码如下:

#include<iostream>
#include<easyx.h>
#include<graphics.h>
using namespace std;
int main() {
	initgraph(1280, 730);/*创建一个窗口*/
	IMAGE img;/*声明一个IMAGE变量*/
	loadimage(&img, "./res/ys.png");/*变量地址,图片地址    相对地址“./”本目录下的文件进行访问   图片展示可以是png也可以是jpg*/
	putimage(0, 0, &img);/*展示图片*/
	while (true);
	return 0;
}

效果图如下:【变相为原神打了个广告】请添加图片描述

效果图


二、图片的缩放

在进行图片的缩放时,我们还是使用loadimage,只不过在这里,我们需要在函数的后边加上两个参数,分别为:右下角x、右下角y。另外需要注意的是,想要将图片全屏的话,还要看电脑的缩放比例以及屏幕的参数,如果屏幕分辨率为:1920×1080且缩放为125%时,我们实际的全屏参数为1536×864,那么我们就要在函数后边写上1536,864就行了,详细代码如下:

#include<iostream>
#include<easyx.h>
#include<graphics.h>
using namespace std;
int main() {
	initgraph(1536, 864);/*创建一个窗口*/
	IMAGE img;/*声明一个IMAGE变量*/
	loadimage(&img, "./res/ys.png", 1536, 864);/*变量地址,图片地址    相对地址“./”本目录下的文件进行访问   图片展示可以是png也可以是jpg 缩放大小*/
	putimage(0, 0, &img);/*展示图片*/
	while (true);
	return 0;
}

效果图如下:
效果图

总结

本篇文章主要讲解了VC中加载图片、展示图片以及图片的缩放。下一篇文章,我将会给大家讲解jpg以及png格式的图片去背景的相关操作。
以上就是本篇文章的全部内容了,最后,如果你觉的文章写的还不错的话,求点赞求收藏求打赏求转发,最重要的是点一个大大的关注,各位的支持是我创作的最大动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/751303.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安全测试方法介绍(下)渗透测试

安全主要测试方法主要有&#xff1a;静态源代码审查&#xff0c;这个在编码阶段就可以进行&#xff0c;这个阶段如果出现问题&#xff0c;修复起来成本也比较低。程序发布之后可以进行渗透测试。前面的文章中我们为大家介绍了静态源代码审查的方法和策略&#xff0c;接下来本文…

【milvus】向量数据库,用来做以图搜图+人脸识别的特征向量

1. 安装milvus ref:https://milvus.io/docs 第一次装东西&#xff0c;要把遇到的问题和成功经验都记录下来。 1.Download the YAML file wget https://github.com/milvus-io/milvus/releases/download/v2.2.11/milvus-standalone-docker-compose.yml -O docker-compose.yml看…

微信小程序中常见组件的使用

文章目录 微信小程序中常见组件的使用视图组件viewscroll-viewswipermovable-area 基础组件icontextrich-textprogress 表单组件buttoncheckbox、checkbox-grouplabelforminputpicker单列选择器多列选择器时间选择器&日期选择器&地区选择器 picker-viewradiosliderswit…

人工智能-神经网络

目录 1 神经元 2 MP模型 3 激活函数 3.1 激活函数 3.2 激活函数作用 3.3 激活函数有多种 4、神经网络模型 1 神经元 神经元是主要由树突、轴突、突出组成&#xff0c;树突是从上面接收很多信号&#xff0c;经过轴突处理后传递给突触&#xff0c;突触会进行选择性向下一级的…

[项目实战] 使用Idea构建单页面Vue3项目(不使用node、npm)

前言 某天张三对小花说&#xff0c;我需要在一台新电脑上实现一个前端的漂亮页面&#xff1a;比如京东手机首页(m.jd.com)。 小花这时吭哧吭哧的去新电脑上安装nodejs、npm&#xff0c;然后在本地使用npm构建vue3项目&#xff0c;在项目里下载安装element-plus、axios。下一步…

常用异常检测算法总结与代码实现[统计学方法/K近邻/孤立森林/DBSCAN/LOF/混合高斯GMM/自编码器AutoEncoder等]

这篇博文主要是延续前文系列的总结记录&#xff0c;这里主要是总结汇总日常主流的异常检测算法相关知识内容。 &#xff08;1&#xff09;基于统计方法的异常值检测 基于统计方法的异常值检测是一种常用的异常检测算法&#xff0c;它基于样本数据的统计特性来识别与其他样本显…

【RS】ENVI5.6 栅格数据坐标转换

ENVI是一个完整的遥感图像处理平台&#xff0c;广泛应用于科研、环境保护、气象、农业、林业、地球科学、遥感工程、水利、海洋等领域。目前ENVI已成为遥感影像处理的必备软件&#xff0c;包含辐射定标、大气校正、镶嵌裁剪、分类识别、阈值分割等多种功能。ENVI针对绝大部分的…

【三相STATCOM】使用D-Q控制的三相STATCOM技术【三相VSI STATCOM为R-L负载提供无功功率】(Simulink实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

COMEN 科曼C60、C80心电监护仪协议对接

通过网口&#xff0c;成功对接到参数&#xff1a; HR、NibpDia、NibpMean、NibpSys、Spo2、Resp、Sys、Dia、Mean、Temp、PR等数值

flutter开发实战-flutter二维码条形码扫一扫功能实现

flutter开发实战-flutter二维码条形码扫一扫功能实现 flutter开发实战-flutter二维码扫一扫功能实现&#xff0c;要使用到摄像头的原生的功能&#xff0c;使用的是插件&#xff1a;scan 效果图如下 一、扫一扫插件scan # 扫一扫scan: ^1.6.01.1 iOS权限设置 <key>NSCa…

移动互联网时代的网络口碑营销怎么做

从人类开始交换商品的时代开始&#xff0c;口碑营销就已经存在&#xff0c;是靠口耳传播的营销方式。小马识途认为进入当今移动互联网时代&#xff0c;口碑营销又有了新的发展&#xff0c;网络口碑营销推广开始普及。营销人员将传统口碑营销与移动互联网营销相结合&#xff0c;…

在arm平台上安装qt

qt官网上如果没有找到对应的安装包&#xff0c;就需要下载源代码自行编译安装qt&#xff0c;时间会久一点 qt下载 进入官网下载 如下图步骤选择源代码包&#xff08;以5.12.12为例&#xff09; 可以复制链接地址在迅雷上创建下载任务&#xff0c;下载速度会快些 qt的编译与…

基于Javaweb实现ATM机系统开发实战(十)取款功能实现

老规矩&#xff0c;先看前端页面&#xff1a; <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <% taglib prefix"c" uri"http://java.sun.com/jsp/jstl/core" %> <!D…

B069-项目实战-店铺入驻-FastDfs-邮件

目录 店铺入驻课堂笔记data表结构自定义业务异常impl 图片上传-fastdfs应用背景概念理论入门案例项目使用1.导包2.添加配置文件3.导入工具类4.写接口将工具类暴露给前端使用5.前端部分 审核邮件通知1.导入jar包2.配置3.发送邮件邮件激活登录账号 店铺入驻 到平台来注册店铺信息…

Anaconda详细安装和使用

文章目录 Anaconda简介下载安装官网清华镜像 环境变量配置使用pip配置清华镜像下载路径创建新的虚拟环境进入新的虚拟环境在新环境下载需要的依赖包删除虚拟环境&#xff08;依赖包&#xff09; Anaconda 简介 Anaconda是一个用于科学计算和数据分析的开源Python发行版本.它提…

HLS(一)Vivado高层次综合概述

目录 1.什么是FPGA&#xff1f; 1.1 简介 1.2 架构 1.3 FPGA并行方式与处理器对比 2.硬件设计基本概念 2.1 时钟频率 2.2 延迟 2.3 吞吐率 2.4 存储布局 3.高层次综合 3.1 概述 3.2 运算 ​3.3 条件语句 3.3循环 3.5 函数 3.6 动态内存申请 3.7 指针 4.以计算…

Python应用:打造一个简单的爬虫

文章目录 爬虫基本步骤如何发起网页请求requests的安装requests的使用 如何解析拿到的HTML反爬虫与反反爬虫机制进阶http请求头User-Agent 参考文献 爬虫基本步骤 对于一般的爬虫而言&#xff0c;其基本步骤&#xff1a; 找到需要爬取内容的网页URL&#xff1b;打开该网页的检…

【DBA课程-笔记】第 3 章:MongoDB数据库核心知识

内容 一、MongoDB 数据库架构 A. MongoDB数据库体系架构 1. 存储引擎&#xff08;MongoDB Storage Engines&#xff09;&#xff1a; 2. MongoDB 数据逻辑架构 二、MongoDB 存储引擎 A. 查看mongodb服务器的状态 B. 查看引擎信息&#xff08;4.2.1 没有这个命令&#xf…

数据结构(王道)——顺序表的定义

线性表和顺序表的关系&#xff1a; 两种实现方式&#xff1a;静态分配、动态分配 总结&#xff1a;

Node.js 版本管理工具 n 使用指南

Node.js 版本更新很快&#xff0c;目前 node v20.x 已经发布&#xff0c;我们在使用时避免不了会需要切换不同的 Node.js 的版本来使用不同版本的特性。 所以就出现了像 windows 上的 nvm&#xff0c;MacOS 上的 n 工具&#xff0c;本文就介绍一下如何使用 n 管理 Node.js 的版…