Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
GeneralClassLibrary
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 12cebded
由
LN
编写于
2020-03-14 17:22:07 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
扫码修改
1 个父辈
2b16f2d4
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
165 行增加
和
51 行删除
CodeLibraryProject/CodeLibrary/FrmCodeDecode.cs
CodeLibraryProject/CodeLibrary/FrmCodeLearn.cs
CodeLibraryProject/CodeLibrary/camera/Basler.cs
CodeLibraryProject/CodeLibrary/camera/Common.cs
CodeLibraryProject/CodeLibrary/camera/HIK.cs
CodeLibraryProject/dll/CodeLibrary.dll
CodeLibraryProject/编译好的DLL/CodeLibrary.dll
dll/CodeLibrary.dll
CodeLibraryProject/CodeLibrary/FrmCodeDecode.cs
查看文件 @
12cebde
...
...
@@ -55,6 +55,21 @@ namespace CodeLibrary
cmbCodeType
.
SelectedIndex
=
0
;
}
}
private
void
ClearPicImg
()
{
try
{
if
(
pictureBox1
.
Image
!=
null
)
{
pictureBox1
.
Image
.
Dispose
();
pictureBox1
.
Image
=
null
;
}
}
catch
(
Exception
ex
)
{
HDLogUtil
.
error
(
"ClearPicImg error : "
+
ex
.
ToString
());
}
}
private
void
LoadCamera
()
{
// string[] camerName = BaslerCamera.Instance.CameraName;
...
...
@@ -83,7 +98,7 @@ namespace CodeLibrary
System
.
Windows
.
Forms
.
OpenFileDialog
openDialog
=
new
System
.
Windows
.
Forms
.
OpenFileDialog
();
openDialog
.
Title
=
selImage
;
openDialog
.
Filter
=
"(*.jpg;*.png;*.bmp)|*.jpg;*.png;*.bmp"
;
// openDialog.Filter = "All Supported Images (*.bmp;*.dib;*.rle;*.gif;*.jpg;*.png)|*.bmp;*.dib;*.rle;*.gif;*.jpg;*.png|Bitmaps (*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|Graphics Interchange Format (*.gif)|*.gif|Joint Photographic Experts (*.jpg)|*.jpg|Portable Network Graphics (*.png)|*.png|All Files (*.*)|*.*";
// openDialog.Filter = "All Supported Images (*.bmp;*.dib;*.rle;*.gif;*.jpg;*.png)|*.bmp;*.dib;*.rle;*.gif;*.jpg;*.png|Bitmaps (*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|Graphics Interchange Format (*.gif)|*.gif|Joint Photographic Experts (*.jpg)|*.jpg|Portable Network Graphics (*.png)|*.png|All Files (*.*)|*.*";
//openDialog.DefaultExt = "png";
System
.
Windows
.
Forms
.
DialogResult
result
=
openDialog
.
ShowDialog
();
if
(
result
==
System
.
Windows
.
Forms
.
DialogResult
.
Cancel
)
...
...
@@ -96,7 +111,7 @@ namespace CodeLibrary
{
MessageBox
.
Show
(
imageIsNull
);
}
pictureBox1
.
Image
=
null
;
ClearPicImg
()
;
//读取图片内容
Image
img
=
(
Image
)
Image
.
FromFile
(
filename
).
Clone
();
pictureBox1
.
Image
=
img
;
...
...
@@ -233,7 +248,7 @@ namespace CodeLibrary
}
}
}
private
void
zxingDecode
(
Bitmap
map
,
string
type
)
private
void
zxingDecode
(
Bitmap
map
,
string
type
)
{
//List<string> results = ZXingCodeHelper.DeCodes(map, type);
...
...
@@ -293,13 +308,21 @@ namespace CodeLibrary
}
private
void
btnCameraImage_Click
(
object
sender
,
EventArgs
e
)
{
Bitmap
bitmap
=
GetCameraBitmap
();
if
(
bitmap
!=
null
)
try
{
Bitmap
bitmap
=
GetCameraBitmap
();
if
(
bitmap
!=
null
)
{
HDLogUtil
.
info
(
"从相机【"
+
cmbCamera
.
Text
+
"】获取到一张图片"
);
ClearPicImg
();
pictureBox1
.
Image
=
(
Image
)
bitmap
.
Clone
();
//HObject hoImage = HDCodeHelper.Bitmap2HObjectBpp24(bitmap);
//HDCodeLearnHelper.DefaultImage = hoImage;
}
}
catch
(
Exception
ex
)
{
HDLogUtil
.
info
(
"从相机【"
+
cmbCamera
.
Text
+
"】获取到一张图片"
);
pictureBox1
.
Image
=
bitmap
;
HObject
hoImage
=
HDCodeHelper
.
Bitmap2HObjectBpp24
(
bitmap
);
HDCodeLearnHelper
.
DefaultImage
=
hoImage
;
HDLogUtil
.
error
(
ex
.
ToString
());
}
}
...
...
@@ -455,45 +478,52 @@ namespace CodeLibrary
private
void
btnScanTest_Click
(
object
sender
,
EventArgs
e
)
{
using
(
Bitmap
bitmap
=
GetCameraBitmap
())
//using (Bitmap bitmap = GetCameraBitmap())
//{
// if (bitmap != null)
// { int index = cmbCamera.SelectedIndex;
string
camerName
=
cmbCamera
.
Text
;
if
(
cmbCamera
.
SelectedIndex
<
0
)
{
if
(
bitmap
!=
null
)
MessageBox
.
Show
(
selCamera
);
return
;
}
HDLogUtil
.
info
(
"获取图片完成,开始转换图片,并扫码"
);
//System.Threading.Thread.Sleep(1);
////转换托盘大概100-150ms,不打印日志
//Bitmap bit = new Bitmap(bitmap);
//HalconDotNet.HObject ho_Image = HDCodeHelper.Bitmap2HObjectBpp24(bit);
HObject
ho_Image
=
Camera
.
_cam
.
CaptureOnImage
(
camerName
);
HDLogUtil
.
info
(
" 相机【"
+
camerName
+
"】转换图片完成,开始扫码"
);
List
<
CodeInfo
>
cc
=
new
List
<
CodeInfo
>();
string
str
=
""
;
List
<
string
>
codeTypeList
=
new
List
<
string
>(
HDCodeLearnHelper
.
codeTypeList
);
string
r
=
""
;
int
count
=
cmbCount
.
SelectedIndex
;
foreach
(
string
codeType
in
codeTypeList
)
{
//判断是否是一维码
if
(
codeType
.
ToLower
().
Equals
(
"barcode"
))
{
HDLogUtil
.
info
(
"获取图片完成,开始转换图片,并扫码"
);
System
.
Threading
.
Thread
.
Sleep
(
1
);
//转换托盘大概100-150ms,不打印日志
Bitmap
bit
=
new
Bitmap
(
bitmap
);
HalconDotNet
.
HObject
ho_Image
=
HDCodeHelper
.
Bitmap2HObjectBpp24
(
bit
);
// LogUtil.info(" 相机【" + cameraName + "】转换图片完成,开始扫码");
List
<
CodeInfo
>
cc
=
new
List
<
CodeInfo
>();
string
str
=
""
;
List
<
string
>
codeTypeList
=
new
List
<
string
>(
HDCodeLearnHelper
.
codeTypeList
);
string
r
=
""
;
int
count
=
cmbCount
.
SelectedIndex
;
foreach
(
string
codeType
in
codeTypeList
)
{
//判断是否是一维码
if
(
codeType
.
ToLower
().
Equals
(
"barcode"
))
{
cc
=
HDCodeHelper
.
DecodeBarCode
(
ho_Image
);
}
else
{
string
codeParamPath
=
HDCodeHelper
.
GetCodeParamFilePath
(
codeType
);
cc
=
HDCodeHelper
.
DecodeCode
(
ho_Image
,
count
,
codeParamPath
,
codeType
);
}
foreach
(
CodeInfo
c
in
cc
)
{
r
+=
(
c
.
CodeStr
)
+
"##"
;
}
}
MessageBox
.
Show
(
r
);
// ShowCode(cc);
ho_Image
.
Dispose
();
bitmap
.
Dispose
();
cc
=
HDCodeHelper
.
DecodeBarCode
(
ho_Image
);
}
else
{
string
codeParamPath
=
HDCodeHelper
.
GetCodeParamFilePath
(
codeType
);
cc
=
HDCodeHelper
.
DecodeCode
(
ho_Image
,
count
,
codeParamPath
,
codeType
);
}
foreach
(
CodeInfo
c
in
cc
)
{
r
+=
(
c
.
CodeStr
)
+
"##"
;
}
}
MessageBox
.
Show
(
r
);
// ShowCode(cc);
ho_Image
.
Dispose
();
//bitmap.Dispose();
// }
//}
}
private
void
btnCopyN_Click
(
object
sender
,
EventArgs
e
)
...
...
CodeLibraryProject/CodeLibrary/FrmCodeLearn.cs
查看文件 @
12cebde
...
...
@@ -77,7 +77,8 @@ namespace CodeLibrary
if
(
bitmap
!=
null
)
{
HDLogUtil
.
info
(
"从相机【"
+
cmbCamera
.
Text
+
"】获取到一张图片"
);
pictureBox1
.
Image
=
bitmap
;
ClearPicImg
();
pictureBox1
.
Image
=
(
Image
)
bitmap
.
Clone
();
HObject
hoImage
=
HDCodeHelper
.
Bitmap2HObjectBpp24
(
bitmap
);
HDCodeLearnHelper
.
DefaultImage
=
hoImage
;
}
...
...
@@ -137,6 +138,21 @@ namespace CodeLibrary
FormStatus
(
false
);
}
private
void
ClearPicImg
()
{
try
{
if
(
pictureBox1
.
Image
!=
null
)
{
pictureBox1
.
Image
.
Dispose
();
pictureBox1
.
Image
=
null
;
}
}
catch
(
Exception
ex
)
{
HDLogUtil
.
error
(
"ClearPicImg error : "
+
ex
.
ToString
());
}
}
private
void
FrmCamera_Load
(
object
sender
,
EventArgs
e
)
{
cmbCount
.
SelectedIndex
=
0
;
...
...
@@ -241,7 +257,7 @@ namespace CodeLibrary
{
MessageBox
.
Show
(
imageIsNull
);
}
pictureBox1
.
Image
=
null
;
ClearPicImg
()
;
//读取图片内容
Image
img
=
(
Image
)
Image
.
FromFile
(
filename
).
Clone
();
pictureBox1
.
Image
=
img
;
...
...
CodeLibraryProject/CodeLibrary/camera/Basler.cs
查看文件 @
12cebde
...
...
@@ -3,6 +3,7 @@ using Basler.Pylon;
using
System.Drawing
;
using
System.Drawing.Imaging
;
using
System.Collections.Generic
;
using
HalconDotNet
;
namespace
CodeLibrary
{
...
...
@@ -226,6 +227,10 @@ namespace CodeLibrary
}
return
null
;
}
public
override
HObject
CaptureOnImage
(
string
name
)
{
return
null
;
}
}
...
...
CodeLibraryProject/CodeLibrary/camera/Common.cs
查看文件 @
12cebde
using
System
;
using
HalconDotNet
;
using
System
;
using
System.Collections.Generic
;
using
System.Drawing
;
using
System.Linq
;
...
...
@@ -111,7 +112,7 @@ namespace CodeLibrary
// public abstract bool GrabContinuous(int index);
// public abstract void GrabStop(int index);
public
abstract
Bitmap
GrabOneImage
(
string
name
);
public
abstract
HObject
CaptureOnImage
(
string
name
);
}
}
CodeLibraryProject/CodeLibrary/camera/HIK.cs
查看文件 @
12cebde
...
...
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using
System.Drawing
;
using
System.Drawing.Imaging
;
using
System.Runtime.InteropServices
;
using
HalconDotNet
;
using
MvCamCtrl.NET
;
namespace
CodeLibrary
...
...
@@ -17,7 +18,7 @@ namespace CodeLibrary
/// 所有相机列表
/// </summary>
private
MyCamera
.
MV_CC_DEVICE_INFO_LIST
cameraAll
;
public
override
void
Close
(
int
index
)
{
...
...
@@ -58,7 +59,7 @@ namespace CodeLibrary
}
}
}
public
override
Bitmap
GrabOne
(
int
index
)
{
if
(
cameraCurr
[
index
]
==
null
)
...
...
@@ -251,7 +252,7 @@ namespace CodeLibrary
byte
[]
buffArr
=
new
byte
[
buffSize
];
IntPtr
pData
=
Marshal
.
UnsafeAddrOfPinnedArrayElement
(
dataArr
,
0
);
MyCamera
.
MV_FRAME_OUT_INFO_EX
stFrameInfo
=
new
MyCamera
.
MV_FRAME_OUT_INFO_EX
();
rtn
=
cameraCurr
[
index
].
MV_CC_GetOneFrameTimeout_NET
(
pData
,
dataSize
,
ref
stFrameInfo
,
100
000
);
rtn
=
cameraCurr
[
index
].
MV_CC_GetOneFrameTimeout_NET
(
pData
,
dataSize
,
ref
stFrameInfo
,
3
000
);
if
(
rtn
!=
MyCamera
.
MV_OK
)
return
null
;
MyCamera
.
MvGvspPixelType
enDstPixelType
=
stFrameInfo
.
enPixelType
;
...
...
@@ -334,6 +335,67 @@ namespace CodeLibrary
return
_image
;
}
}
public
override
HObject
CaptureOnImage
(
string
name
)
{
int
index
=
cameraName
.
FindIndex
(
s
=>
s
==
name
);
if
(
index
==
-
1
)
{
_errInfo
=
name
+
"Not find"
;
return
null
;
}
if
(
cameraCurr
[
index
]
!=
null
)
{
}
else
{
Open
(
name
);
}
try
{
int
rtn
=
cameraCurr
[
index
].
MV_CC_StartGrabbing_NET
();
if
(
rtn
!=
MyCamera
.
MV_OK
)
{
_errInfo
=
"Can not grab one : "
+
rtn
;
return
null
;
}
MyCamera
.
MV_FRAME_OUT
FrameInfo
=
new
MyCamera
.
MV_FRAME_OUT
();
int
nRet
=
cameraCurr
[
index
].
MV_CC_GetImageBuffer_NET
(
ref
FrameInfo
,
1000
);
// ch:获取一帧图像 | en:Get one image
if
(
MyCamera
.
MV_OK
==
nRet
)
{
Console
.
WriteLine
(
"Get Image Buffer:"
+
"Width["
+
Convert
.
ToString
(
FrameInfo
.
stFrameInfo
.
nWidth
)
+
"] , Height["
+
Convert
.
ToString
(
FrameInfo
.
stFrameInfo
.
nHeight
)
+
"] , FrameNum["
+
Convert
.
ToString
(
FrameInfo
.
stFrameInfo
.
nFrameNum
)
+
"]"
);
HObject
ho_Imagetemp
;
HOperatorSet
.
GenImage1
(
out
ho_Imagetemp
,
"byte"
,
FrameInfo
.
stFrameInfo
.
nWidth
,
FrameInfo
.
stFrameInfo
.
nHeight
,
FrameInfo
.
pBufAddr
);
if
(
FrameInfo
.
pBufAddr
!=
IntPtr
.
Zero
)
{
nRet
=
cameraCurr
[
index
].
MV_CC_FreeImageBuffer_NET
(
ref
FrameInfo
);
if
(
nRet
!=
MyCamera
.
MV_OK
)
{
Console
.
WriteLine
(
"Free Image Buffer fail:{0:x8}"
,
nRet
);
}
}
return
ho_Imagetemp
;
}
else
{
Console
.
WriteLine
(
"No data:{0:x8}"
,
nRet
);
}
}
catch
(
Exception
ex
)
{
_errInfo
=
ex
.
Message
;
return
null
;
}
finally
{
cameraCurr
[
index
].
MV_CC_StopGrabbing_NET
();
}
return
null
;
}
}
}
\ No newline at end of file
CodeLibraryProject/dll/CodeLibrary.dll
查看文件 @
12cebde
此文件类型无法预览
CodeLibraryProject/编译好的DLL/CodeLibrary.dll
查看文件 @
12cebde
此文件类型无法预览
dll/CodeLibrary.dll
查看文件 @
12cebde
此文件类型无法预览
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论