2011-10-13 61 views
1

我曾經很擅長這些事情,但那是很久以前的事!SetDIBitsToDevice,StretchDIBits,VB6

我有一個幀捕獲器工作正常的樣品程序,它使用這條線(後一些其他的東西)的圖片框以顯示圖像:

的SetDIBitsToDevice(Picture1.hdc,0,0,gSizeX, gSizeY,0,0,0,gSizeY,gSurfAddr,bmpInfo,DIB_RGB_COLORS)

我想要做的就是改變這個,所以我可以創建縮放圖像。所以我改變了這一行:

的StretchDIBits(Picture1.hdc,0,0,W,H,0,0,gSizeX,gSizeY,gSurfAddr,bmpInfo,DIB_RGB_COLORS,vbSrcCopy) ..其中W和H是我想要的圖像尺寸(我最初嘗試的尺寸與gSizeX/y相同,約爲700 * 500)。

但是我沒有形象,有時只是白色,有時看起來像未初始化的內存。

我犯了一個簡單的錯誤,還是我需要做更多?

感謝

回答

1

嘗試的StretchDIBits之前調用SetStretchBltMode。有時調整大小工作不正確,沒有SetStretchBltMode。參數:COLORONCOLOR(快速調整大小),HALFTONE(高質量調整大小)。

http://msdn.microsoft.com/en-us/library/dd145089(v=vs.85).aspx

+0

謝謝,我試過了,但它是相同的。現在看起來是這樣的: SetStretchBltMode Picture1.hdc,半色調 的StretchDIBits Picture1.hdc,0,0,gSizeX,gSizeY,0,0,gSizeX,gSizeY,gSurfAddr,bmpInfo,DIB_RGB_COLORS,vbSrcCopy (半色調是4 ) – Ianb

+0

爲什麼我不能用回車評論?顯示代碼非常困難! – Ianb

+0

感謝亞歷克斯,幫助我解決圖像扭曲時拉伸圖像 – Tsikon