光道視覺科技股份有限公司
關於我們 最新消息 產品介紹 下載專區 技術問題 聯絡我們
Sitemap 回首頁 繁體中文 English
技術問題

[SDK]如何將影像資料轉換成 Bitmap 物件

一般而言, 光道視覺並不建議使用者將影像資料轉變成Bitmap格式, 因為不論是影像顯示或處理, 於編譯器的環境中皆能以OVK Framework的元件進行相關處理.
當然如果確有必要使用Bitmap, 光道視覺提供以下方式轉換(以下以VB .NET與C#為範例) :

以下為VB .NET範例

        Dim i As Integer
        Dim bmpobj As Bitmap
        Dim pal As System.Drawing.Imaging.ColorPalette

        '使用GetImagePtr獲得ActiveSurfaceHandle的影像指標,
        '並產生Bitmap物件(沒有memory copy的動作, 效能極佳)
        Dim p As IntPtr
        p = AxAxAltairU1.GetImagePtr(AxAxAltairU1.ActiveSurfaceHandle, 0, 0)
        bmpobj = New Bitmap(AxAxAltairU1.ImageWidth,
                                         AxAxAltairU1.ImageHeight,
                                         AxAxAltairU1.ImageWidth,
                                         System.Drawing.Imaging.PixelFormat.Format8bppIndexed,
                                         p)

        '設定Bitmap調色盤為灰階調色盤
        '(如果沒有正確設定, 顯示顏色會錯亂)
        pal = bmpobj.Palette
        For i = 0 To 255
            pal.Entries(i) = Color.FromArgb(i, i, i)
        Next
        bmpobj.Palette = pal

        '將Bitmap設定給PictureBox顯示
        PictureBox1.Image = bmpobj

以上為VB .NET範例

以下為C#範例

        IntPtr p;
        Integer i;
        Bitmap bmpobj;
        System.Drawing.Imaging.ColorPalette pal;

        p = AxAxAltairU1.GetImagePtr(AxAxAltairU1.ActiveSurfaceHandle, 0, 0);
        bmpobj = New Bitmap(AxAxAltairU1.ImageWidth,
                                         AxAxAltairU1.ImageHeight,
                                         AxAxAltairU1.ImageWidth,
                                         System.Drawing.Imaging.PixelFormat.Format8bppIndexed,
                                         p);

        //設定Bitmap調色盤為灰階調色盤
        //(如果沒有正確設定, 顯示顏色會錯亂)
       
pal = bmpobj.Palette
        for(i=0;i<=255;++i)
        {
             pal.Entries[i] = Color.FromArgb(255,i, i, i);
        }
        bmpobj.Palette = pal;

        //將Bitmap設定給PictureBox顯示

        PictureBox1.Image = bmpobj;

以上為C#範例

Copyright ©2008 Internet Service by
AISYS Vison company.