顯示現場視頻: 圖形疊加:可移動坐標準心

使用IC Imaging Control在視頻上加入可移動坐標準心。
語言:.NET C#/Visual Basic
版本:3.0.3
发布于:2005年4月7日
作者:IC Imaging Control技術支持部
需求:IC Imaging Control >2.1
由WDM數據流類驅動程序驅動的相機、視頻轉換器或圖像採集卡

示例程序窗口如圖所示:

The dialog window of the sample application.

程序開始後首先調用對話框(.ShowDeviceSettingsDialog)用於選擇設備。 在Form_Load()結尾處.LiveStart將顯示設備傳來的現場視頻。 準備工作有兩步:第一,開啟疊加模式(.OverlayBitmap.Enable)。第二,將dragging狀態設為False, 該變量將被用於指示鼠標左鍵是否處於按下狀態。

[C#]
bool bDragging = false;

private void Form1_Load(object sender, System.EventArgs e)
{
    icImagingControl1.ShowDeviceSettingsDialog();

    if( !icImagingControl1.DeviceValid )
    {
        Close();
        return;
    }

    icImagingControl1.OverlayBitmap.Enable = true;
    icImagingControl1.OverlayBitmap.ColorMode = TIS.Imaging.OverlayColorModes.Color;
    icImagingControl1.LiveStart();
}

坐標準心由兩條紅色線段和一副藍色坐標值構成。 .OverlayBitmap.DrawLine用於劃線,.OverlayBitmap.DrawText生成坐標:

[C#]
private void DrawCrosshairs( int x, int y )
{
    icImagingControl1.OverlayBitmap.DrawLine( Color.Red, x, y-10, x, y+10 );
    icImagingControl1.OverlayBitmap.DrawLine( Color.Red, x-10, y, x+10, y );
    icImagingControl1.OverlayBitmap.DrawText( Color.Blue, x+3, y+2, x.ToString() + "," + y.ToString() );
}

決定準心位置的有兩個因素:鼠標的運動及其按鍵狀態。 用戶點擊畫面,程序將刪除舊的坐標點,給疊加層bitmap填入透明色.DropOutColor。 DisplayCrosshairs XPos, YPos將為鼠標畫出新的準心:

[C#]
private void icImagingControl1_MouseDown(object sender, TIS.Imaging.ICImagingControl.MouseEventArgs e)
{
    if( (e.ModifierKeys & Keys.Shift) == 0 )
    {
        icImagingControl1.OverlayBitmap.Fill( icImagingControl1.OverlayBitmap.DropOutColor );
    }

    DrawCrosshairs( e.x, e.y );

    bDragging = true;
}

用戶按住左鍵移動鼠標時,程序將刪除舊的坐標點,給疊加層bitmap填入透明色. DropOutColor. DisplayCrosshairs XPos, YPos將為鼠標畫出新的準心:

[C#]
private void icImagingControl1_MouseMove(object sender, TIS.Imaging.ICImagingControl.MouseEventArgs e)
{
    if( bDragging )
    {
        if( (e.ModifierKeys & Keys.Shift) == 0 )
        {
            icImagingControl1.OverlayBitmap.Fill( icImagingControl1.OverlayBitmap.DropOutColor );
        }

        DrawCrosshairs( e.x, e.y );
    }
}

放開鼠標將把狀態變量dragging重設為False:

[C#]
private void icImagingControl1_MouseUp(object sender, TIS.Imaging.ICImagingControl.MouseEventArgs e)
{
    bDragging = false;
}

相關源代碼示例

責任聲明
IC Imaging Control源代碼庫中的所有代碼均只用於教學目的,The Imaging Source Europe GmbH作為IC Imaging Control的開發製造商,不對任何由於使用本文或其中源代碼所產生的後果承擔責任。

该网站为The Imaging Source网络的一部分。其它的站点包括 公司, Imaging, 天文相機, Astronomy Cameras Blog, Blog caméras d'astronomie, 天文相機有獎競答, TX Text Control, LiveDocx, phpLiveDocxForum.