那就先做個顯示影象的程式試試
阿新 • • 發佈:2018-12-20
老師讓做的第一個關於顯示影象的程式。
什麼格式的影象可以顯示?
有多少種方法?
每種方法的應用場合以及優劣?
從外部資料夾顯示和內部資源顯示?
顯示出影象的大小是原圖大小還是可適應大小?
顯示影象函式的內部原理?
以上是我能想到的這一個星期內要解決的問題。
事實上我遇到的第一個問題是什麼是真彩色啊256色啊128色啊。。。。。。
A1:一幅真彩色圖片,每一個畫素都是用RGB三個位元組表示的,每個位元組有8位(適應計算機)表示RGB的256種亮度,所以這就是常說的24位真彩色,就特別真,涵蓋了全部的色彩16777216種,即真彩色影象也叫16777216色影象嘍。世界上的顏色遠不止這些,可是計算機最多的顏色也就這些,這也遠超過人類視覺能辨別的顏色了。看得出來這樣的真彩色影象實在是太大了。所以一般所用的16色影象啊,256色影象啊都用到調色盤的概念,很好的壓縮了。
A2:平時老是做的BMP檔案格式,圖片的格式多種多樣,這裡也沒必要掌握吧,但是得搞清楚MFC中只有BMP格式的檔案能顯示和處理嗎?為什麼?
bmp格式的現在有很多種,有些MFC是識別不了的。這就尷尬了。
PNG圖片也是可以載入的。(需要驗證,)
CStatic* pWnd = (CStatic*)GetDlgItem(IDC_PIC); // 得到 Picture Control 控制代碼 CImage image; image.Load(_T("png.png"); HBITMAP hBmp = image.Detach(); pWnd->SetBitmap(hBmp); pWnd->SetWindowPos(NULL, 0, 0, 100, 50, SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER);
A3:顯示影象的方法。
方法一:利用picture控制元件,無論是靜態還是動態吧,都是一個意思。這種方法得在資源中有BITMAP資源,所以也只能顯示bitmap型別的圖,picture控制元件本身成為了一個圖片。動態只是動態載入了控制元件