从HTuple获取数据
HTuple hTuple= hDevelopExport.hv__Row1;
double RR = hTuple[0].D;
double[] ret = hTuple.ToDArr();
double[] ret1 = hTuple1.ToDArr();
double testD = hTuple[0].D;
//string testS = hTuple[0].S;
long testL = hTuple[0].L;
int testI = hTuple[0].I;
Object testO = hTuple[0].O;
float testF = hTuple[0].F;
给HTuple赋值
HTuple data = new HTuple(ret);
- //
- // 摘要:
- // Create an empty tuple
- public HTuple();
- //
- // 摘要:
- // Create a tuple containing a single string value
- public HTuple(string s);
- //
- // 摘要:
- // Create a tuple containing double values
- public HTuple(params float[] f);
- //
- // 摘要:
- // Create a tuple containing a single double value
- public HTuple(float f);
- //
- // 摘要:
- // Create a tuple containing double values
- public HTuple(params double[] d);
- //
- // 摘要:
- // Create a tuple containing a single double value
- public HTuple(double d);
- //
- // 摘要:
- // Create an integer tuple representing pointer values. The used integer size depends
- // on the executing platform.
- public HTuple(params IntPtr[] ip);
- //
- // 摘要:
- // Create an integer tuple representing a pointer value. The used integer size depends
- // on the executing platform.
- public HTuple(IntPtr ip);
- //
- // 摘要:
- // Create a tuple containing 64-bit integer values
- public HTuple(params long[] l);
- //
- // 摘要:
- // Create a tuple containing a single 64-bit integer value
- public HTuple(long l);
- //
- // 摘要:
- // Create a tuple containing 32-bit integer values
- public HTuple(params int[] i);
- //
- // 摘要:
- // Create a tuple containing a single 32-bit integer value
- public HTuple(int i);
- //
- // 摘要:
- // Create tuple containing integer value 0 (false) or 1 (true)
- public HTuple(bool b);
HObject转bitmap(灰度图)
- public void HObject2Bitmap8(HObject image, out Bitmap res)
- {
- HTuple hpoint, type, width, height;
- const int Alpha = 255;
- HOperatorSet.GetImagePointer1(image, out hpoint, out type, out width, out height);
- res = new Bitmap(width, height, PixelFormat.Format8bppIndexed);
- ColorPalette pal = res.Palette;
- for (int i = 0; i <= 255; i++)
- { pal.Entries[i] = Color.FromArgb(Alpha, i, i, i); }
-
- res.Palette = pal; Rectangle rect = new Rectangle(0, 0, width, height);
- BitmapData bitmapData = res.LockBits(rect, ImageLockMode.WriteOnly, PixelFormat.Format8bppIndexed);
- int PixelSize = Bitmap.GetPixelFormatSize(bitmapData.PixelFormat) / 8;
- IntPtr ptr1 = bitmapData.Scan0;
- IntPtr ptr2 = hpoint; int bytes = width * height;
- byte[] rgbvalues = new byte[bytes];
- System.Runtime.InteropServices.Marshal.Copy(ptr2, rgbvalues, 0, bytes);
- System.Runtime.InteropServices.Marshal.Copy(rgbvalues, 0, ptr1, bytes);
- res.UnlockBits(bitmapData);
-
- }
HObject转bitmap(3通道图)
- public static Bitmap Honject2Bitmap24(HObject hObject)
- {
- //获取图像尺寸
- HTuple width0 = new HTuple();
- HTuple height0 = new HTuple();
- HTuple Pointer = new HTuple();
- HTuple type = new HTuple();
- HTuple width = new HTuple();
- HTuple height = new HTuple();
- HObject InterImage = new HObject();
- HOperatorSet.GetImageSize(hObject, out width0, out height0);
- HOperatorSet.GetImageSize(hObject, out width0, out height0);
- //创建交错格式图像
- HOperatorSet.InterleaveChannels(hObject, out InterImage, "rgb", 4 * width0, 0);
- //获取交错格式图像指针
- HOperatorSet.GetImagePointer1(InterImage, out Pointer, out type, out width, out height);
- IntPtr ptr = Pointer;
- //构建新Bitmap图像
- Bitmap bitmap = new Bitmap(width / 4, height, width, PixelFormat.Format24bppRgb, ptr);
- return bitmap;
-
- }
Bitmap转HObject (灰度图)
-
- public static void Bitmap2HObjectBpp8(Bitmap bmp, out HObject image)
- {
- try
- {
- Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
-
- BitmapData srcBmpData = bmp.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed);
-
- HOperatorSet.GenImage1(out image, "byte", bmp.Width, bmp.Height, srcBmpData.Scan0);
- bmp.UnlockBits(srcBmpData);
- }
- catch (Exception ex)
- {
- image = null;
- }
- }
Bitmap转HObject(3通道图)
- public static void Bitmap2HObjectBpp24(Bitmap bmp, out HObject image) //90ms
- {
- try
- {
- Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
-
- BitmapData srcBmpData = bmp.LockBits(rect, ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
- HOperatorSet.GenImageInterleaved(out image, srcBmpData.Scan0, "bgr", bmp.Width, bmp.Height, 0, "byte", 0, 0, 0, 0, -1, 0);
- bmp.UnlockBits(srcBmpData);
-
- }
- catch (Exception ex)
- {
- image = null;
- }
- }
打可以快速定位问题的有效日志