尋找生活小知識,讓美好生活更加便捷
當前位置:首頁 » 圖片效果 » 怎樣用easyx給c加圖片
擴展閱讀
孕期多少周 2025-07-11 15:15:09

怎樣用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;
    }
    }