Halcon以当前系统时间命名图片并保存在指定文件夹
我在网上搜索时,发现很少类似文章参考,仅有的几篇还要各种权限,我这暴脾气当然不能忍了。话不多说,一言不合上代码:
read_image (Image, 'fabrik')
dev_get_window (WindowHandle)
if(-1!=WindowHandle)
set_display_font (WindowHandle, 16, 'sans', 'true', 'false')
disp_message (WindowHandle, '请确保要定义的路径不存在于电脑中!', 'window', 12, 12, 'red', 'false')
endif
stop ()
*定义FilePath字符串路径(文件夹长度不要超过10),来确定要保存图片路径的上一级文件夹
*警告:定义的文件夹字符串必须是电脑中不存在的,否则抛异常
*注意:不能只定义盘符来作为路径,例如:'E:/' 是不允许的路径
FilePath:='E:/图片测试目录/TestPic/NG/fgrd/df/gr/34/gr/45/65'
*根据路径创建根文件夹
file_exists (FilePath, IsExist)
try
if(IsExist)
else
tuple_strstr (FilePath, '/', Position)
if(Position==0)
else
tuple_split (FilePath, '/', Substrings)
tuple_length (Substrings, Length)
switch (Length)
case 1:
break
case 2:
Dirs:=Substrings[0]+'/'+Substrings[1]+'/'
make_dir (Dirs)
break
case 3:
Dirs2:=Substrings[0]+'/'+Substrings[1]+'/'
Dirs:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'
make_dir (Dirs2)
make_dir (Dirs)
break
case 4:
Dirs2:=Substrings[0]+'/'+Substrings[1]+'/'
Dirs3:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'
Dirs:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'
make_dir (Dirs2)
make_dir (Dirs3)
make_dir (Dirs)
break
case 5:
Dirs2:=Substrings[0]+'/'+Substrings[1]+'/'
Dirs3:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'
Dirs4:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'
Dirs:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'
make_dir (Dirs2)
make_dir (Dirs3)
make_dir (Dirs4)
make_dir (Dirs)
break
case 6:
Dirs2:=Substrings[0]+'/'+Substrings[1]+'/'
Dirs3:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'
Dirs4:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'
Dirs5:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'
Dirs:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'
make_dir (Dirs2)
make_dir (Dirs3)
make_dir (Dirs4)
make_dir (Dirs5)
make_dir (Dirs)
break
case 7:
Dirs2:=Substrings[0]+'/'+Substrings[1]+'/'
Dirs3:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'
Dirs4:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'
Dirs5:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'
Dirs6:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'
Dirs:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'+Substrings[6]+'/'
make_dir (Dirs2)
make_dir (Dirs3)
make_dir (Dirs4)
make_dir (Dirs5)
make_dir (Dirs6)
make_dir (Dirs)
break
case 8:
Dirs2:=Substrings[0]+'/'+Substrings[1]+'/'
Dirs3:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'
Dirs4:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'
Dirs5:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'
Dirs6:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'
Dirs7:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'+'/'+Substrings[6]+'/'
Dirs:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'+'/'+Substrings[6]+'/'+'/'\
+Substrings[7]+'/'
make_dir (Dirs2)
make_dir (Dirs3)
make_dir (Dirs4)
make_dir (Dirs5)
make_dir (Dirs6)
make_dir (Dirs7)
make_dir (Dirs)
break
case 9:
Dirs2:=Substrings[0]+'/'+Substrings[1]+'/'
Dirs3:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'
Dirs4:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'
Dirs5:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'
Dirs6:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'
Dirs7:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'+'/'+Substrings[6]+'/'
Dirs8:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'+'/'+Substrings[6]+'/'+'/'\
+Substrings[7]+'/'
Dirs:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'+'/'+Substrings[6]+'/'+'/'\
+Substrings[7]+'/'+Substrings[8]+'/'
make_dir (Dirs2)
make_dir (Dirs3)
make_dir (Dirs4)
make_dir (Dirs5)
make_dir (Dirs6)
make_dir (Dirs7)
make_dir (Dirs8)
make_dir (Dirs)
break
case 10:
Dirs2:=Substrings[0]+'/'+Substrings[1]+'/'
Dirs3:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'
Dirs4:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'
Dirs5:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'
Dirs6:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'
Dirs7:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'+'/'+Substrings[6]+'/'
Dirs8:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'+'/'+Substrings[6]+'/'+'/'\
+Substrings[7]+'/'
Dirs9:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'+'/'+Substrings[6]+'/'+'/'\
+Substrings[7]+'/'+Substrings[8]+'/'
Dirs:=Substrings[0]+'/'+Substrings[1]+'/'+Substrings[2]+'/'+Substrings[3]+'/'\
+Substrings[4]+'/'+Substrings[5]+'/'+'/'+Substrings[6]+'/'+'/'\
+Substrings[7]+'/'+Substrings[8]+'/'+Substrings[9]+'/'
make_dir (Dirs2)
make_dir (Dirs3)
make_dir (Dirs4)
make_dir (Dirs5)
make_dir (Dirs6)
make_dir (Dirs7)
make_dir (Dirs8)
make_dir (Dirs9)
make_dir (Dirs)
break
endswitch
endif
endif
catch (Exception)
if(-1!=WindowHandle)
set_display_font (WindowHandle, 16, 'sans', 'true', 'false')
disp_message (WindowHandle, '确保定义的路径不存在于电脑中!', 'window', 12, 12, 'red', 'false')
endif
endtry
*以系统月日创建一个文件夹,并以系统时间为名称保存图片
get_system_time (MSecond, Second, Minute, Hour, Day, YDay, Month, Year)
Path:=Dirs+Month$'d'+'-'+Day$'d'+'/'
file_exists (Path, DirExist)
if(DirExist)
else
make_dir (Path)
endif
Filename:=Path+Hour$'d'+'时'+Minute$'d'+'分'+Second$'d'+'秒'+'.bmp'
write_image (Image, 'bmp', 0, Filename)