From aaae1139f2bb3a55910fff0aa907b3ba6395deea Mon Sep 17 00:00:00 2001
From: xcd <834800634@qq.com>
Date: 星期二, 30 六月 2020 08:54:06 +0800
Subject: [PATCH] 添加goactor驱动

---
 src/Bro.Device.HikCamera/HikCameraDriver.cs |   64 +------------------------------
 1 files changed, 3 insertions(+), 61 deletions(-)

diff --git a/src/Bro.Device.HikCamera/HikCameraDriver.cs b/src/Bro.Device.HikCamera/HikCameraDriver.cs
index 57aebcd..02864f5 100644
--- a/src/Bro.Device.HikCamera/HikCameraDriver.cs
+++ b/src/Bro.Device.HikCamera/HikCameraDriver.cs
@@ -324,7 +324,7 @@
                 NewImageSet(set);
                 OnHImageOutput?.BeginInvoke(this, hImage, set.Id, null, null);
 
-                HikToBitmap(nWidth, nHeight, pData, set.Id);
+                Generate8GrayImageByPointer(nWidth, nHeight, pData, set.Id);
             }
             else
             {
@@ -382,7 +382,7 @@
                         uint nHeight = pFrameInfo.nHeight;
 
                         //HikToBitmap(pFrameInfo, frameInfo.pBufAddr);
-                        HikToBitmap((int)nWidth, (int)nHeight, frameInfo.pBufAddr, "");
+                        Generate8GrayImageByPointer((int)nWidth, (int)nHeight, frameInfo.pBufAddr, "");
                     }
                 }
             }
@@ -437,71 +437,13 @@
 
                         set.HImage = hImage;
 
-                        HikToBitmap((int)nWidth, (int)nHeight, frameInfo.pBufAddr, set.Id);
+                        Generate8GrayImageByPointer((int)nWidth, (int)nHeight, frameInfo.pBufAddr, set.Id);
                         return set;
                     }
                 }
             }
 
             throw new Exception($"Grap Image Failed:{nRet:x8}");
-        }
-
-        [DllImport("kernel32.dll", EntryPoint = "CopyMemory", SetLastError = false)]
-        public static extern void CopyMemory(IntPtr dest, IntPtr src, uint count);
-
-        private async void HikToBitmap(int width, int height, IntPtr dataPtr, string imgSetId)
-        {
-            await Task.Run(() =>
-            {
-                //************************Mono8 杞� Bitmap*******************************
-                Bitmap bmp = new Bitmap(width, height, PixelFormat.Format8bppIndexed);
-                Bitmap showImage = new Bitmap(width, height, PixelFormat.Format8bppIndexed);
-
-                ColorPalette cp = bmp.Palette;
-                for (int i = 0; i < 256; i++)
-                {
-                    cp.Entries[i] = Color.FromArgb(i, i, i);
-                }
-                bmp.Palette = cp;
-
-                ColorPalette cp1 = showImage.Palette;
-                for (int i = 0; i < 256; i++)
-                {
-                    cp1.Entries[i] = Color.FromArgb(i, i, i);
-                }
-                showImage.Palette = cp1;
-
-                int[] ptr = new int[3];
-                Rectangle rect = new Rectangle(0, 0, width, height);
-                BitmapData bitmapData = bmp.LockBits(rect, ImageLockMode.WriteOnly, PixelFormat.Format8bppIndexed);
-                BitmapData showImageData = showImage.LockBits(rect, ImageLockMode.WriteOnly, PixelFormat.Format8bppIndexed);
-                int PixelSize = Bitmap.GetPixelFormatSize(bitmapData.PixelFormat) / 8;
-
-                if (width % 4 == 0)
-                {
-                    CopyMemory(bitmapData.Scan0, dataPtr, (uint)(width * height * PixelSize));
-                    CopyMemory(showImageData.Scan0, dataPtr, (uint)(width * height * PixelSize));
-                }
-                else
-                {
-                    ptr[0] = bitmapData.Scan0.ToInt32();
-                    ptr[1] = showImageData.Scan0.ToInt32();
-                    ptr[2] = (int)dataPtr;
-                    for (int i = 0; i < height - 1; i++)
-                    {
-                        ptr[2] += width;
-
-                        CopyMemory((IntPtr)ptr[0], (IntPtr)ptr[2], (uint)(width * PixelSize));
-                        CopyMemory((IntPtr)ptr[1], (IntPtr)ptr[2], (uint)(width * PixelSize));
-                        ptr[0] += bitmapData.Stride;
-                        ptr[1] += showImageData.Stride;
-                    }
-                }
-                bmp.UnlockBits(bitmapData);
-                showImage.UnlockBits(showImageData);
-
-                SaveOriginImage(bmp, showImage, imgSetId);
-            });
         }
 
         readonly MyCamera device = new MyCamera();

--
Gitblit v1.8.0