//二维码识别工具 import fonts.fontAwesome; import win.ui; /*DSG{{*/ var winform = win.form(text="二维码识别工具";right=477;bottom=275;bgcolor=0xFFFFFF;border="dialog frame";exmode="none";max=false;mode="popup";topmost=1) winform.add( btnScanClipBD={cls="plus";text="自剪贴板识别";left=155;top=231;right=303;bottom=261;align="left";bgcolor=-5197169;db=1;dl=1;dr=1;font=LOGFONT(h=-13);iconStyle={align="left";font=LOGFONT(h=-13;name='FontAwesome');padding={left=20}};iconText='\uF0EA';notify=1;textPadding={left=39};z=2}; btnScanScreen={cls="plus";text="自屏幕识别";left=310;top=231;right=447;bottom=261;align="left";bgcolor=-5197169;db=1;dr=1;font=LOGFONT(h=-16);foreRight=13;iconStyle={align="left";font=LOGFONT(h=-13;name='FontAwesome');padding={left=20}};iconText='\uF108';notify=1;textPadding={left=39};z=3}; edit={cls="edit";left=15;top=32;right=465;bottom=220;autohscroll=false;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;z=1}; static={cls="static";text="复制二维码自动识别,也可以直接拖放二维码图像到此窗口";left=16;top=7;right=436;bottom=28;color=3947580;dl=1;dr=1;dt=1;transparent=1;z=4} ) /*}}*/ import zbar; import win.clip.viewer; winform.clipViewer = win.clip.viewer(winform); var scanner = zbar.scanner(); scanner.config('qrcode.enable'); winform.clipViewer.onDrawClipboard = function(){ winform.btnScanClipBD.oncommand(); } import win.clip.bitmap; winform.btnScanClipBD.oncommand = function(id,event){ winform.edit.text = ""; var bmp = win.clip.bitmap.read() if(bmp){ scanner.scanBitmap(bmp,function(typeName,data){ //二维码应当总是使用 UTF-8 编码 if(!string.isUtf8(data)){ data = string.fromto(data,936,65001); } winform.edit.text = data; }) } } import com.picture; winform.btnScanScreen.oncommand = function(id,event){ winform.edit.text = ""; scanner.scanBitmap(com.picture.snap(),function(typeName,data){ //二维码应当总是使用 UTF-8 编码 if(!string.isUtf8(data)){ data = string.fromto(data,936,65001); } winform.edit.text = data; }) } winform.onDropFiles = function(files){ var bmp = gdip.bitmap(files[1]) if(bmp){ scanner.scanBitmap(bmp,function(typeName,data){ winform.edit.text = data; }) } } winform.clipViewer.onDrawClipboard(); winform.btnScanScreen.skin({ background={ default=0x668FB2B0; disabled=0xFFCCCCCC; hover=0xFF928BB3 }; color={ default=0xFF000000; disabled=0xFF6D6D6D } }) winform.btnScanClipBD.skin({ background={ default=0x668FB2B0; disabled=0xFFCCCCCC; hover=0xFF928BB3 }; color={ default=0xFF000000; disabled=0xFF6D6D6D } }) winform.show(); win.loopMessage();