C++ ImGui 顯示圖片-本地圖片

1.首先需要使用imgui的依賴

image.png

2.頭文件引用

#include "imgui/imgui_impl_glfw.h"
#include "imgui/imgui_impl_opengl3.h"

3.此時運行代碼會報錯

因為還需要 GLFW 的庫
官方下載地址:
Download | GLFW
這里以我的系統(tǒng) 為例 :windows 64位

image.png

下載完成之后解壓的目錄
image.png

4.引入GLFW庫

找到剛剛下載的庫解壓:

1.添加附加包含目錄

GLFW路徑\include
image.png

2.添加lib熊昌,使用和自己編譯同樣版本的lib,我是vc2022

image.png

3.鏈接到這個庫

#pragma comment (lib, "glfw3.lib")
image.png

5.使用stb 這個庫加載圖片

1.庫地址:
GitHub | stb庫
2.我們只需要 stb_image.h
3.將stb_image.h添加到我們的項目中

image.png

4.加上頭文件

#define STB_IMAGE_IMPLEMENTATION  //必須加上
#include "stb_image.h"
image.png

以上準(zhǔn)備階段就ok安吁,開始代碼階段

1.ImGui 是通過紋理來加載圖片的所以我們實現(xiàn)一個從圖片文件加載到紋理

// 從文件加載紋理
bool LoadTextureFromFile(const char* filename, ID3D11ShaderResourceView** out_srv)
{
    int width, height, channels;
    unsigned char* pixels = stbi_load(filename, &width, &height, &channels, STBI_rgb_alpha);
    if (!pixels)
        return false;

    D3D11_TEXTURE2D_DESC desc;
    ZeroMemory(&desc, sizeof(desc));
    desc.Width = width;
    desc.Height = height;
    desc.MipLevels = 1;
    desc.ArraySize = 1;
    desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
    desc.SampleDesc.Count = 1;
    desc.SampleDesc.Quality = 0;
    desc.Usage = D3D11_USAGE_DEFAULT;
    desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
    desc.CPUAccessFlags = 0;

    D3D11_SUBRESOURCE_DATA subResource;
    ZeroMemory(&subResource, sizeof(subResource));
    subResource.pSysMem = pixels;
    subResource.SysMemPitch = width * 4;

    ID3D11Texture2D* pTexture = nullptr;
    if (g_pd3dDevice->CreateTexture2D(&desc, &subResource, &pTexture) != S_OK)
    {
        stbi_image_free(pixels);
        return false;
    }

    // Create texture view
    D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc;
    ZeroMemory(&srvDesc, sizeof(srvDesc));
    srvDesc.Format = desc.Format;
    srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
    srvDesc.Texture2D.MipLevels = desc.MipLevels;
    srvDesc.Texture2D.MostDetailedMip = 0;
    if (g_pd3dDevice->CreateShaderResourceView(pTexture, &srvDesc, out_srv) != S_OK)
    {
        pTexture->Release();
        stbi_image_free(pixels);
        return false;
    }

    pTexture->Release();
    stbi_image_free(pixels);
    return true;
}

2.在ImGui 初始化完成之后

   // 加載圖片
   ID3D11ShaderResourceView* textureSRV = nullptr;
   if (!LoadTextureFromFile("E:\\summer\\圖片\\gh_89b7666ea8b7_258.jpg", &textureSRV)) {
       // 加載失敗
       return 1;
   }
image.png

3.ImGui渲染函數(shù)中

{
           ImGui::Begin(u8"夏休助手");
           ImGui::Text(u8"程序平均幀率 %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
           ImGui::Text(u8"文本測試");
           // 圖片顯示
           ImGui::Image(textureSRV, ImVec2(200, 200));
           ImGui::End();
}

4.運行效果

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末咬展,一起剝皮案震驚了整個濱河市目木,隨后出現(xiàn)的幾起案子莫辨,更是在濱河造成了極大的恐慌萨惑,老刑警劉巖更舞,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件劈猿,死亡現(xiàn)場離奇詭異拙吉,居然都是意外死亡潮孽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門筷黔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來往史,“玉大人,你說我怎么就攤上這事佛舱∽道” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵请祖,是天一觀的道長订歪。 經(jīng)常有香客問我,道長肆捕,這世上最難降的妖魔是什么陌粹? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮福压,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘或舞。我一直安慰自己荆姆,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布映凳。 她就那樣靜靜地躺著胆筒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诈豌。 梳的紋絲不亂的頭發(fā)上仆救,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機與錄音矫渔,去河邊找鬼彤蔽。 笑死,一個胖子當(dāng)著我的面吹牛庙洼,可吹牛的內(nèi)容都是我干的顿痪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼油够,長吁一口氣:“原來是場噩夢啊……” “哼蚁袭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起石咬,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤揩悄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鬼悠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體删性,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡亏娜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了镇匀。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片照藻。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖汗侵,靈堂內(nèi)的尸體忽然破棺而出幸缕,到底是詐尸還是另有隱情,我是刑警寧澤晰韵,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布发乔,位于F島的核電站,受9級特大地震影響雪猪,放射性物質(zhì)發(fā)生泄漏栏尚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一只恨、第九天 我趴在偏房一處隱蔽的房頂上張望译仗。 院中可真熱鬧,春花似錦官觅、人聲如沸纵菌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咱圆。三九已至,卻和暖如春功氨,著一層夾襖步出監(jiān)牢的瞬間序苏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工捷凄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留忱详,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓跺涤,卻偏偏與公主長得像踱阿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子钦铁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355