vc win32 gdi+ 怎麼顯示PNG圖片
各位大哥看看,為什麼我顯示的PNG圖片有黑框???PNG圖片的邊緣為漸變透明的。漸變透明的地方變成了黑框
BOOL OnEraseBkgnd()
{
HBITMAP hBitmap;
BITMAP m_bitmap;
hBitmap=LoadImgFormRs(IDR_PNG_StatusBar,L"PNG");
GetObject(hBitmap,sizeof(BITMAP),&m_bitmap);
HDC hDC,hDCmem;
PAINTSTRUCT ps;
hDC=BeginPaint(g_hWnd,&ps);
hDCmem=CreateCompatibleDC(hDC);
SelectObject(hDCmem,hBitmap);
RECT rc;
GetClientRect(g_hWnd,&rc);
StretchBlt(hDC,0,0,rc.right,rc.bottom,hDCmem,0,0,m_bitmap.bmWidth,m_bitmap.bmHeight,SRCCOPY);
EndPaint(g_hWnd,&ps);
DeleteDC(hDCmem);
DeleteObject(hBitmap);
return TRUE;
}
LoadImgFormRs函式返回HBITMAP
HBITMAP LoadImgFormRs(UINT pResourceID,LPCTSTR pResourceType)
{
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR m_gdiplusToken;
Gdiplus::GdiplusStartup(&m_gdiplusToken,&gdiplusStartupInput,NULL);//初始化GDI
HBITMAP hBitmap=NULL;
HINSTANCE hInstance;
HRSRC hResource;
DWORD dwRsSize;
HGLOBAL hRsBuf;
const void* pRsData;
IStream* pIStream = NULL;
hInstance=::LoadLibrary(L"Resources.dll");
if(!hInstance)
return NULL;
hResource=FindResource(hInstance,MAKEINTRESOURCE(pResourceID),pResourceType);
if(!hResource)
return NULL;
dwRsSize=SizeofResource(hInstance,hResource);
if(!dwRsSize)
return NULL;
pRsData=LockResource(LoadResource(hInstance,hResource));
if(!pRsData)
return NULL;
hRsBuf=GlobalAlloc(GMEM_MOVEABLE,dwRsSize);
if (!hRsBuf)
{
GlobalFree(hRsBuf);
return NULL;
}
void* pRsBuf = GlobalLock(hRsBuf);
if(!pRsBuf)
{
GlobalUnlock(hRsBuf);
GlobalFree(hRsBuf);
return NULL;
}
CopyMemory(pRsBuf, pRsData, dwRsSize);
if(CreateStreamOnHGlobal(hRsBuf, FALSE, &pIStream)==S_OK)
{
Gdiplus::Image *pImage = Gdiplus::Image::FromStream(pIStream);
Gdiplus::Bitmap *pBitmap = Gdiplus::Bitmap::FromStream(pIStream);
pIStream->Release();
GlobalUnlock(hRsBuf);
GlobalFree(hRsBuf);
Gdiplus::Status result = pBitmap->GetLastStatus();
if(result==Gdiplus::Ok)
{
pBitmap->GetHBITMAP(NULL, &hBitmap);
}
delete pBitmap;
}
GlobalUnlock(hRsBuf);
GlobalFree(hRsBuf);
FreeLibrary(hInstance);
GdiplusShutdown(m_gdiplusToken);
return hBitmap;
}
相關推薦
vc win32 gdi+ 怎麼顯示PNG圖片
各位大哥看看,為什麼我顯示的PNG圖片有黑框???PNG圖片的邊緣為漸變透明的。漸變透明的地方變成了黑框 BOOL OnEraseBkgnd(){ HBITMAP hBitmap; BITMAP m_bitmap; hBitmap=LoadImgFormRs(IDR_PN
vc資源中載入png圖片以及顯示
因要做一個小的登陸客戶端,所用圖片格式為png.但較少,所以想直接放到資源中.碰到的第一個問題是.net2003中載入png圖片到資源中總是不成功.試了下發現jpg也不行,jpg圖片會提示"不是正確的JPEG格式",後來用vc6.0開啟資原始檔載入成功的.vs2003中原因還未找到,有知道
win32用GDI+載入png圖片作為背景圖
#include <windows.h> #include <gdiplus.h> /* GDI+ startup token */ ULONG_PTR gdiplusStartupToken; /* Declare Windows procedure */ LRESULT CA
android顯示png圖片,原來透明的地方都變成黑色的了
bitmap儲存成圖片的時候要判斷下圖片的格式,之前統一用的Bitmap.CompressFormat.JPEG儲存的。 if(!url.substring(url.lastIndexOf("/") + 1).toUpperCase().contains("PNG")){ bm.compr
mfc picture控制元件顯示png圖片
onpaint函式裡新增程式: CClientDC *pDC = new CClientDC(GetDlgItem(IDC_LIGHT));CRect rect;GetDlgItem(IDC_LIGH
GDI操作PNG圖片
這兩天在做UI,以前做過一點,但是不太熟悉,於是乎就遇到很多的問題。 以前用BITMAP的時候,做的就是畫素COPY,再多一點就是畫素運算,這一切的東西都是有自己控制的。也就是說不參雜alpha通道。 話說今天我用PNG圖片,但是用到一個小圖片的時候,圖片總是不能正常顯示。
基於GDI顯示png圖像
clas mat 錯誤 api 尺寸 cat www. mds rbac intro 先前基於GDI已經能夠顯示BITMAP圖像:windows下控制臺程序實現窗口顯示 ,其中BMP圖像是使用LoadImage()這一Win32 API函數來做的。考慮到LoadImage(
Win32從資源中載入PNG圖片,然後建立GDI+的Image物件
void LoadPNGFromStaticRes(HMODULE hModule, UINT nResId, Image** ppImg) { HRSRC hRes = FindResource(hModule, MAKEINTRESOURCE(nResId), TEXT("PNG"))
vc++載入透明png圖片方法——GDI+和CImage兩種
先看看GDI+的方法 方法1: 1.GDI+畫透明圖層(alpha)的png圖片 stdafx加入如下: #include <comdef.h>//初始化一下com口 #include "GdiPlus.h" using namespace Gdiplus; #pragma commen
nginx+gridfs+mongodb 配置訪問png圖片顯示無法加載問題
nginx配置文件 做了 nginx配置 副本 server port 問題 模塊 bject 上傳文件後,瀏覽器中請求:http://<nginx server ip>:<port>/gfs/<my file> 瀏覽器出現“無法
VC 下加載 JPG / JPEG / GIF / PNG 圖片最簡單的方法
png 最簡 api dsm () load div mod bind VC MFC 提供的 API LoadBitmap / LoadImage 類 CBitmap 等都只能操作 BMP 位圖,圖標。對於其他常用的 JPG / JPEG / GIF / PNG 格式,
【html+css3】在一張jpg圖片上,顯示多張透明的png圖片
*** 放置 技術分享 一個 col 標簽 ech 透明 image 1、需求:在一個div布局裏面放置整張jpg圖片,然後在jpg圖片上顯示三張水平展示的透明png圖片,且png外層用a標簽包含菜單 2、效果圖: 3、上圖,底層使用藍色jpg圖片,【首頁】、【購物車】、【
vs2010 MFC使用GDI+顯示圖片
轉載:https://blog.csdn.net/yal179/article/details/32726925 推薦:已程式設計驗證,小錯誤已修正,值得學習,也可以看下原文,修改後的文章比原文容易讀一些。 1、配置GDI+ VS2010自帶GDI+,直接使用。 (
Windows7無法顯示.png、.jpg圖片縮圖的問題
實驗環境(藍色粗體字為特別注意內容) 1,環境:Windows 7 Ultimate 2,參考文獻http://www.xiazaizhijia.com/rjjc/20481.html 今天開啟電腦的時候突然發現電腦的.png檔案和.jpg檔案的圖示都無法正常顯示,其他格式的縮圖比如wo
emWin - png圖片壓縮與不壓縮顯示速度
原文連結:png圖片壓縮與不壓縮顯示速度 背景:圖片是通過BmpCvtST工具生成dta檔案放到外部FLASH中。 下圖第一部分是從外部FLASH中讀取圖片的資料,第一個引數是讀取資料存放到一個數組,第二個引數是該圖片在FLASH中的起始地址,第三個引數是讀取多少位元組數,也就是圖片的資
圖片播放器(七):PNG圖片的顯示函式
1.思路分析 (1)png更像是jpg而不像是bmp (2)png和jpg都是壓縮格式的圖片,都是二進位制檔案,不同之處是壓縮和解壓縮的演算法不同。 (3)通過libjpeg來編解碼jpg圖片,那麼同樣有一個libpng用來編解碼png圖片。 (4)工作思路和順序:找到並移植並部署libpn
用CImage類來顯示PNG JPG等圖片
系統環境:Windows 7 軟體環境:Visual Studio 2008 SP1 本次目的:實現VC單文件、對話方塊程式顯示圖片效果 CImage 是VC.NET中定義的一種MFC/ATL共享類,也是ATL的一種工具類,它提供增強型的
關於png圖片在AndroidStudio上顯示有白色邊框的解決辦法
這幾天正在開發我自己做的一款APP,手機桌布類的,然後要在歡迎頁上加上一個按鈕圖片 看是不是非常的不美觀,根本就達不到自己的要求,然後就不斷的百度啊,PS我是學過一點的,對於一般的摳圖,還是沒有問題的,可是無論習存什麼樣的圖片格式,屏png,gif支援透明背景的放在這個位置都不行,頭痛了一
使用GDI+和CImage類載入png圖片
本文的方法可以載入bmp、jpg、png等多種格式的圖片,但由於大多軟體都使用可帶透明色的png圖片,所以以載入png圖片為研究切入點,找到對應的載入辦法。本文結合TrueLink程式碼的實際使用情況,分別講述使用GDI+和CImage來載入png圖片的方法,並對
網頁PNG圖片不顯示
具體症狀是:以IE為核心的瀏覽器包括ie都打不開png格式的網頁圖片,如果以純連結開啟網路png圖片則提示下載或無法開啟。 可能原因是: 1.解除安裝了Kmplayer 2.裝了quiktime等軟體改寫了登錄檔 3.自己的檔案設定有問題 具體解決辦法: