用easyX显示一张图片并检测是否加载成功(适用于VS2022)

引言

EasyX 是一个用于简化 C/C++ 编程的库,它提供了许多方便的函数和工具,可以帮助程序员更快速地开发应用程序。其中,EasyX 库提供了一些用于处理图像的函数,可以帮助程序员轻松地显示和操作图像。

在这篇博客中,我将介绍如何使用 EasyX 库来显示一张图片。

首先,你需要安装 EasyX 库。你可以从 EasyX 的官方网站上下载并安装它。安装完成后,你就可以在你的 C/C++ 项目中使用 EasyX 库了。

安装easyX库

点击进入easyX库官方网站

 3dd53da40fca4e2aabef1d7fb43e95e7.png

然后点击下载,下载完成后你会得到一个exe格式得应用程序,这是easy X官方提供的安装程序,打开这个程序,找到你所对应的开发平台安装(本文章用VS2022作演示)

460ac068c828498ca12becfd56af9b7f.png

f46936d6d95144878633767b1af3ac64.png

5b7060b8f3cb4cb6ae4a9cfa5b2ff9d4.png

代码示例

1.在VS2022中创建一个C++项目

2.示例代码:

#include <graphics.h>  
#include <conio.h>  

int main() {


    // 加载图片  
    IMAGE img;
    loadimage(&img, _T("example.png"));

    // 初始化图形窗口  
    initgraph(img.getwidth(), img.getheight());

    // 显示图片
    putimage(0,0, &img);

    // 等待用户按下任意键退出程序  
    _getch();

    // 关闭图形窗口  
    closegraph();
    return 0;
}

3.在你的项目文件夹里放入一个格式为png的名为example的图像文件

072364fdd6f04ad99c651290425980e1.png

8ca561dd056841b7b37f05aa4022022e.png 4582e3b4b69947dab747dea83a818e77.png3.按快捷键“fn + F5"运行代码,运行示例:

099568fbfa92474781bd72db1b0dfad3.png

4.代码逐行解释:

  1. #include <graphics.h>

    这是包含 EasyX 图形库的头文件,使得我们可以使用该库提供的各种图形函数。
  2. #include <conio.h>

    这个头文件包含了一些控制台输入/输出的函数,如 _getch(),用于等待用户按键。
  3. int main() { ... }

    这是程序的主函数,执行从这里开始。
  4. // 加载图片
    IMAGE img;
    loadimage(&img, _T("example.png"));

    这里首先定义了一个 IMAGE 类型的变量 img。使用 loadimage 函数加载名为 "example.png" 的图片,并将其地址存储在 img 中。_T() 是用于表示字符串的宏,它可以根据编译器的设置自动选择正确的字符串格式(例如,对于 Unicode 或 ANSI)。
  5. // 初始化图形窗口
    initgraph(img.getwidth(), img.getheight());

    使用 initgraph 函数初始化一个图形窗口。窗口的大小与加载的图片的大小相同。img.getwidth() 和 img.getheight() 分别返回图片的宽度和高度。
  6. // 显示图片
    putimage(0,0, &img);

    使用 putimage 函数将加载的图片显示在图形窗口的左上角(坐标为0,0)。这意味着图片会从窗口的起始位置开始显示。
  7. // 等待用户按下任意键退出程序
    _getch();

    使用 _getch() 函数等待用户按下任意键。这允许用户查看图片并按下键后继续执行其他操作或退出程序。
  8. // 关闭图形窗口
    closegraph();
    return 0;

    使用 closegraph 函数关闭图形窗口。return 0; 表示程序正常结束。 

检测图片是否加载成功 

在一些情况下我们可能不知道图像是否被成功加载,还是别的什么地方出了问题,所以作者提供了一个简单的函数用于解决

1.设计一个函数用于处理这件事

void ifloadimage(IMAGE yuantu)
{
    // 检查图像是否成功加载  
    if (yuantu.getwidth() > 0 && yuantu.getheight() > 0)
    {
        std::cout << "图像加载成功" << std::endl;
    }
    else {
        std::cout << "图像加载失败" << std::endl;
    }
}

如果图片长宽都大于0,也就是有这个图片,就在控制台输出“图像加载成功”,反之则输出“图像加载失败”,loadimage()加载完图片后是没有返回值的,所以只能出此下策

2.函数实装:增加头文件“<iostream>”(函数要用到里面的std::cout和std::endl),声明函数,再把以上函数定义放到代码末尾,再调用函数,值得一提的是用initgraph()初始化窗口时,它会阻止控制台出现,所以我们要作出一点小改变:

    // 初始化图形窗口  
    initgraph(img.getwidth(), img.getheight(), EW_SHOWCONSOLE);

读者还可以用以下常量来初始化窗口:

NOMINIZE 禁用最小化按钮
EW_SOWCONSOLE 创建图形窗口时维护控制台窗口
EW_NOCLOSE 禁用关闭按钮
EW_NOMINIMIZE 禁用最小化按钮
EW_DBLCLKS 支持双击事件

全部代码:

#include <graphics.h>  
#include <conio.h>  
#include <iostream>

//判断图片是否被加载成功
void ifloadimage(IMAGE yuantu);

int main() {


    // 加载图片  
    IMAGE img;
    loadimage(&img, _T("example.png"));

    //判断图片是否加载成功
    ifloadimage(img);

    // 初始化图形窗口  
    initgraph(img.getwidth(), img.getheight(), EW_SHOWCONSOLE);

    // 显示图片
    putimage(0,0, &img);

    // 等待用户按下任意键退出程序  
    _getch();

    // 关闭图形窗口  
    closegraph();
    return 0;
}
void ifloadimage(IMAGE yuantu)
{
    // 检查图像是否成功加载  
    if (yuantu.getwidth() > 0 && yuantu.getheight() > 0)
    {
        std::cout << "图像加载成功" << std::endl;
    }
    else {
        std::cout << "图像加载失败" << std::endl;
    }
}

演示示例:

9f6edddd31924a799a9b128a6f6d293c.png

 

  • 30
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值