当前位置:首页 » 图片效果 » 怎样用easyx给c加图片
扩展阅读
职称没过如何查原因 2025-06-27 11:08:09
脚热腿疼的原因有哪些 2025-06-27 10:22:22

怎样用easyx给c加图片

发布时间: 2023-01-16 01:55:06

㈠ C++ easyX 怎么加载图片

步骤如下:
#include <graphics.h>#include <conio.h>
// 主函数
void main()
{
// 绘图环境初始化
initgraph(640, 480);
// 读取图片至绘图窗口
loadimage(NULL, "C:\\Users\\Public\\Pictures\\Sample Pictures\\图片名字.jpg");
// 按任意键退出
getch();
closegraph();
}

㈡ 请问下c语言如何实现插入图片功能

  1. C语言写控制台程序是无法加图片的,只能用命令行输出,最多就是设置下背景和字体,颜色之类的。如果开发API窗口程序,完全依赖于操作系统的函数库。C语言本身并不提供这类函数。

  2. 下面是windows系统下实现的函数代码,第一个参数是图片的存放的位置,第二个参数是窗口句柄。

  3. HRESULTShowPic(char*lpstrFile,HWNDhWnd)
    {
    HDChDC_Temp=GetDC(hWnd);
    IPicture*pPic;
    IStream*pStm;
    BOOLbResult;
    HANDLEhFile=NULL;
    DWORDdwFileSize,dwByteRead;
    //打开图形文件
    hFile=CreateFile(lpstrFile,GENERIC_READ,
    FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    if(hFile!=INVALID_HANDLE_VALUE)
    {
    dwFileSize=GetFileSize(hFile,NULL);//获取文件字节数
    if(dwFileSize==0xFFFFFFFF)
    returnE_FAIL;
    }
    else
    {
    returnE_FAIL;
    }
    //分配全局存储空间
    HGLOBALhGlobal=GlobalAlloc(GMEM_MOVEABLE,dwFileSize);
    LPVOIDpvData=NULL;
    if(hGlobal==NULL)
    returnE_FAIL;
    if((pvData=GlobalLock(hGlobal))==NULL)//锁定分配内存块
    returnE_FAIL;
    ReadFile(hFile,pvData,dwFileSize,&dwByteRead,NULL);//把文件读入内存缓冲区
    GlobalUnlock(hGlobal);
    CreateStreamOnHGlobal(hGlobal,TRUE,&pStm);
    //装入图形文件
    bResult=OleLoadPicture(pStm,dwFileSize,TRUE,IID_IPicture,(LPVOID*)&pPic);
    if(FAILED(bResult))
    returnE_FAIL;
    OLE_XSIZE_HIMETRIChmWidth;//图片的真实宽度,单位为英寸
    OLE_YSIZE_HIMETRIChmHeight;//图片的真实高度,单位为英寸
    pPic->get_Width(&hmWidth);
    pPic->get_Height(&hmHeight);
    //转换hmWidth和hmHeight为pixels距离,1英寸=25.4毫米
    intnWidth=MulDiv(hmWidth,GetDeviceCaps(hDC_Temp,LOGPIXELSX),2540);
    intnHeight=MulDiv(hmHeight,GetDeviceCaps(hDC_Temp,LOGPIXELSY),2540);
    //将图形输出到屏幕上(有点像BitBlt)
    bResult=pPic->Render(hDC_Temp,0,0,nWidth,nHeight,0,hmHeight,hmWidth,-hmHeight,NULL);
    hmHeight,NULL);
    pPic->Release();
    CloseHandle(hFile);//关闭打开的文件
    if(SUCCEEDED(bResult))
    {
    returnS_OK;
    }
    else
    {
    returnE_FAIL;
    }
    }