g00001
2015-11-04 15:54:32 +08:00
原来是为了生成 DataURL ,发个 PC 客户端工具, aardio 代码实现,支持多线程、文件拖放。
import win.ui;
/*DSG{{*/
var winform = win.form(text="HTMLayout Data Url 转换工具";left=-50;right=399;bottom=325;topmost=1)
winform.add(
edit={cls="edit";left=9;top=9;right=439;bottom=292;acceptfiles=1;db=1;dl=1;dr=1;dt=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=1};
static={cls="static";text="请将图片等文件拖放到上面的文本框中进行转换";left=11;top=300;right=433;bottom=324;db=1;dl=1;transparent=1;z=2}
)
/*}}*/
import fsys;
import fsys.mime; 
winform.edit.wndproc = function(hwnd,message,wParam,lParam){
    if( message == 0x233/*_WM_DROPFILES*/ ){
        if( winform.edit.busy ) return;
        
        var path = win.getDropFile(wParam)[1]
        if( fsys.isDir(path) ){
            winform.edit.text = "路径不能是一个目录"
            return;
        }
        
        var mime = fsys.mime.fromFile( path )
        if(!mime){
            winform.edit.text = "无效的文件格式";
            return;
        }
        
        winform.edit.busy = true;
        winform.edit.text = "正在转换,请稍候......"; 
        winform.edit.text =	win.invoke(function(path,mime){
            import crypt.bin;
            return string.format('data:%s;base64,\r\n%s',mime,crypt.bin.encodeBase64( string.load(path) ) ) 
        } ,path,mime); 
        winform.edit.busy = false;
    }
}
winform.show() 
win.loopMessage();