当前位置:首页 > 编程学习 > 使用C++在控制台界面显示图片

使用C++在控制台界面显示图片

编程学习2021-07-13156541


一直面对黑乎乎的控制台界面是不是很厌烦了?要是控制台界面也能显示图片甚至作为背景是不是很有意思,下面就搞起来。


先来看看效果:

控制台显示图片.png 使用C++在控制台界面显示图片  编程 技术 C++ 第1张


上图是使用VS Code+vc6编译生成的。

下面的代码需要保存为cpp文件,使用C++编译器编译。

#include <windows.h>
#include <stdio.h>

int main()
{
    FILE *file = NULL;
    file = fopen("d:\\Documents\\Desktop\\tt.bmp", "r"); // 只能显示bmp格式图片
    if (!file)
    {
        printf("图片文件打开失败!\n");
        return -1;
    }

    fseek(file, 0, SEEK_END);
    size_t size = ftell(file);

    LPBITMAPINFOHEADER bi = (LPBITMAPINFOHEADER)malloc(size);
    if (!bi)
    {
        printf("内存分配失败!\n");
        return -2;
    }

    fseek(file, sizeof(BITMAPFILEHEADER), SEEK_SET);
    fread(bi, 1, size, file);

    char Title[255] = {0};
    GetConsoleTitleA(Title, 255);
    HDC dc = GetDC(FindWindowA(0, Title));
    SetConsoleTitleA("控制台显示图片");
    
    do
    {        
        SetDIBitsToDevice(dc, 50, 10, bi->biWidth, bi->biHeight, 0, -0, 0, bi->biHeight, bi + 1, (LPBITMAPINFO)bi, 0);
    } while (printf("%c", getchar()));

    getchar();
    return 0;
}


当控制台界面上下滚动时图片会丢失,需要按回车恢复图片显示。

 

 

扫描二维码推送至手机访问。

版权声明:本文由海阔天空发布,如需转载请注明出处。

本文链接:https://apull.net/html/20210713153755.html

标签: 编程技术C++
分享给朋友:

相关文章

用VB类实现文件对话框

用VB类实现文件对话框

用VB类实现文件对话框'类名:ComDlg.cls '作用:文件打开保存对话框 ' ' ' 'By:Apull '2007-5-21 'http://www.apull.net Option Explicit Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" ( _ pOpenfil...

常用asp函数

常用asp函数

<% '------------------------------------- '所有功能函数名如下: ' StrLength(str) 取得字符串长度 ' CutStr(str,strlen) 字符串长度切割 ' CheckIsEmpty(tstr) 检测是否为空 ' isInteger(para) 整数检验 ' CheckName(str) 名字字符校验 ' CheckPassword(str) 密码检验 ' CheckEmail(emai...

计算机蓝屏代码的含义

计算机蓝屏代码的含义

0 0x0000 作业完成。1 0x0001 不正确的函数。2 0x0002 系统找不到指定的档案。3 0x0003 系统找不到指定的路径。4 0x0004 系统无法开启档案。5 0x0005 拒绝存取。6 0x0006 无效的代码。7 0x0007 储存体控制区块已毁。8 0x0008 储存体空间不足,无法处理这个指令。9 0x0009 储存体控制区块地址无效。10 0x000A 环境不正确。11 0x000B 尝试加载一个格式错误的程序。12 0x000C 存取码错误。1...

在ASP中访问和更新Cookies集合

在ASP中访问和更新Cookies集合

  Cookies的值比ASP其他集合(例如Form和ServerVariables)的值要复杂得多。Cookie是一小块由浏览器存贮在客户端系统上的文本,且随同每次请求发往它们应用于的域中的服务器。  ASP使得应用cookie较为容易,可以从Request对象的Cookies集合中获得所有随同请求发出的cookie值,并可创建或修改cookie,通过Response对象的Cookies集合发回给用户。  Cookie包含可用两种方式构造的信息,单值cookie提供其值给代...