2013-10-28 26 views
1

我正在使用DirecShowLib-2005.Dll從我的筆記本電腦攝像頭拍照。最初,我使用的圖像尺寸爲640 x 840,這些配置是例如因爲我使用的,因爲它是使用DirectShow更改圖像捕捉的尺寸

const int VIDEODEVICE = 0; 
    const int VIDEOWIDTH = 640; 
    const int VIDEOHEIGHT = 480; 
    const int VIDEOBITSPERPIXEL = 24; 

同時宣佈捕獲對象即

cam = new Capture(VIDEODEVICE, VIDEOWIDTH, VIDEOHEIGHT, VIDEOBITSPERPIXEL, picCamera); 

每一件事情能正常工作,這些值傳遞。但我想拍照護照尺寸,即寬度和高度較低。當我改變常量DLL的寬度和高度停止工作。任何人都請指導我如何改變寬度和高度?

回答

1

您可以更改它在相機設置中定義的分辨率。例如320x240等。當您創建快照圖像時,請調整位圖對象的大小並可能剪裁它的兩側。例如,我用這個代碼:

IntPtr m_ip = IntPtr.Zero; 
m_ip = capture.Click(); 
Bitmap b = new Bitmap(640, 480, capture.Stride, PixelFormat.Format24bppRgb, m_ip); 
b = ResizeBitmap(b,220,220); //The size of your box 
b.RotateFlip(RotateFlipType.RotateNoneFlipY); 
pictureBox2.Image = b; 

private static Bitmap ResizeBitmap(Bitmap sourceBMP, int width, int height) 
{ 
    Bitmap result = new Bitmap(width, height); 
    using (Graphics g = Graphics.FromImage(result)) 
    g.DrawImage(sourceBMP, 0, 0, width, height); 
    return result; 
}