aardio 文档
aardio 范例: JPEG 压缩与转换工具 - 自动导入剪贴板图像
//JPEG 压缩转换
import win.ui;
import win.dlg.message;
import fonts.fontAwesome;
/*DSG{{*/
var winform = win.form(text="JPEG 压缩与转换工具 - 自动导入剪贴板图像";right=1169;bottom=647)
winform.add(
bkplus={cls="bkplus";left=-17;top=529;right=1170;bottom=655;bgcolor=0xD2D2D2;db=1;dl=1;dr=1;z=1};
btnChangeJpegExtension={cls="plus";text="更改";left=376;top=604;right=473;bottom=634;align="left";color=0x3C3C3C;db=1;dl=1;font=LOGFONT(h=-13);iconStyle={align="left";font=LOGFONT(h=-13;name='FontAwesome');padding={left=8}};iconText='\uF0C7';notify=1;textPadding={left=25};z=12};
btnCopy={cls="plus";text="复制图像";left=745;top=604;right=842;bottom=634;align="left";color=0x3C3C3C;db=1;dr=1;font=LOGFONT(h=-13);iconStyle={align="left";font=LOGFONT(h=-13;name='FontAwesome');padding={left=8}};iconText='\uF0C5';notify=1;textPadding={left=25};z=13};
btnOpen={cls="plus";text="打开文件";left=858;top=604;right=955;bottom=634;align="left";color=0x3C3C3C;db=1;dr=1;font=LOGFONT(h=-13);iconStyle={align="left";font=LOGFONT(h=-13;name='FontAwesome');padding={left=8}};iconText='\uF03E';notify=1;textPadding={left=25};z=7};
btnPaste={cls="plus";text="粘粘自剪贴板";left=609;top=604;right=728;bottom=634;align="left";color=0x3C3C3C;db=1;dr=1;font=LOGFONT(h=-13);iconStyle={align="left";font=LOGFONT(h=-13;name='FontAwesome');padding={left=8}};iconText='\uF0EA';notify=1;textPadding={left=25};z=9};
btnSave={cls="plus";text="保存文件";left=972;top=604;right=1069;bottom=634;align="left";color=0x3C3C3C;db=1;dr=1;font=LOGFONT(h=-13);iconStyle={align="left";font=LOGFONT(h=-13;name='FontAwesome');padding={left=8}};iconText='\uF0C7';notify=1;textPadding={left=25};z=8};
editJpegExtension={cls="plus";left=284;top=602;right=366;bottom=628;align="right";border={bottom=1;color=0x969696};db=1;dl=1;editable=1;font=LOGFONT(h=-13);textPadding={top=6;bottom=2};z=11};
lbSize={cls="static";left=1063;top=562;right=1150;bottom=586;db=1;dr=1;transparent=1;z=6};
plus={cls="plus";left=0;top=0;right=584;bottom=529;aw=1;bgcolor=0xFFFFFF;db=1;dl=1;dt=1;edge=1;repeat="auto";z=2};
plus2={cls="plus";left=589;top=0;right=1168;bottom=529;aw=1;bgcolor=0xFFFFFF;db=1;dr=1;dt=1;edge=1;repeat="auto";z=3};
splitter={cls="splitter";left=583;top=0;right=588;bottom=529;bgcolor=0xFFFFFF;db=1;dt=1;frame=1;z=14};
static={cls="static";text="输出质量:";left=439;top=562;right=516;bottom=586;align="right";db=1;dl=0.38;transparent=1;z=5};
static2={cls="static";text="系统保存JPEG文件使用的默认后缀:";left=72;top=610;right=277;bottom=633;align="right";db=1;dl=1;transparent=1;z=10};
static3={cls="static";text="图像大小:";left=63;top=562;right=140;bottom=586;align="right";db=1;dl=1;transparent=1;z=16};
trackbarQuality={cls="trackbar";left=534;top=555;right=1050;bottom=585;bgcolor=0xD2D2D2;db=1;dl=0.46;dr=1;max=100;min=0;z=4};
trackbarScale={cls="trackbar";left=161;top=555;right=422;bottom=585;bgcolor=0xD2D2D2;db=1;dl=1;dr=0.64;max=100;min=10;z=15}
)
/*}}*/
var preview = function(){
if(!winform.plus.backgroundBitmap) return;
var quality = winform.trackbarQuality.pos;
var scale = winform.trackbarScale.pos;
var bmp = winform.plus.backgroundBitmap;
var width1,height1 = bmp.width,bmp.height;
if(scale<100){
bmp = bmp.resize(width1*scale/100,height1*scale/100);
}
var buf = bmp.saveToBuffer("*.jpg",quality);
winform.plus2.background = buf;
winform.lbSize.text = math.size64(#buf).format();
}
winform.trackbarQuality.pos = 80;
winform.trackbarQuality.oncommand = function(id,event,pos){
if( event == 8/*_SB_ENDSCROLL*/ ){
preview()
}
else{
var pos = winform.trackbarQuality.pos;
winform.trackbarQuality.tooltip = pos + "%";
}
}
winform.trackbarScale.pos = 100;
winform.trackbarScale.oncommand = function(id,event,pos){
if( event == 8/*_SB_ENDSCROLL*/ ){
preview()
}
var pos = winform.trackbarScale.pos;
winform.trackbarScale.tooltip = pos + "%";
}
import fsys.dlg;
winform.btnOpen.oncommand = function(id,event){
var path = fsys.dlg.open("图像文件|*.jpg;*.jpeg;*.jfif;*.bmp;*.gif;*.png;*.tif;*.tiff;*.webp||",,,winform)
if(path){
if(string.endsWith(path,".webp",true)){
import gdip.webp;
}
winform.plus.background = path;
winform.plus.backgroundBitmap = gdip.bitmap(path);
preview();
}
}
winform.btnSave.oncommand = function(id,event){
if(winform.plus.backgroundBitmap){
var path = fsys.dlg.save("*.jpg|*.jpg|*.jpeg|*.jpeg|*.jfif|*.jfif|*.png|*.png||",,,winform)
if(path){
var buf = winform.plus.backgroundBitmap.save(path,winform.trackbarQuality.pos);
}
}
else {
winform.msgErr("请先打开或拖放图像文件到当前窗体载图像")
}
}
winform.onDropFiles = function(files){
var path = files[1]
if(path){
if(string.endsWith(path,".webp",true)){
import gdip.webp;
}
winform.plus.backgroundBitmap = gdip.bitmap(path);
if(winform.plus.backgroundBitmap){
winform.plus.background = path;
preview();
}
}
}
import win.clip.bitmap;
winform.btnPaste.oncommand = function(id,event){
var bmp = win.clip.bitmap.read()
if(bmp){
winform.plus.backgroundBitmap = bmp;
winform.plus.background = bmp;
preview();
}
}
import win.reg;
var reg = win.reg("HKEY_CURRENT_USER\SOFTWARE\Classes\MIME\Database\Content Type\image/jpeg")
if(reg){
winform.editJpegExtension.text = reg.queryValue("Extension")
reg.close()
}
if(!#winform.editJpegExtension.text){
var reg = win.reg("HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/jpeg")
if(reg){
winform.editJpegExtension.text = reg.queryValue("Extension")
reg.close()
}
}
winform.btnChangeJpegExtension.oncommand = function(id,event){
var reg = win.reg("HKEY_CURRENT_USER\SOFTWARE\Classes\MIME\Database\Content Type\image/jpeg")
if(reg){
reg.setSzValue("Extension",winform.editJpegExtension.text)
winform.msgOk("已修改 JPEG 默认后缀名")
}
}
import win.clip.viewer;
winform.clipViewer = win.clip.viewer(winform);
winform.clipViewer.onDrawClipboard = function(){
winform.btnPaste.oncommand();
}
import win.clip.bitmap;
winform.btnCopy.oncommand = function(id,event){
if(winform.plus.backgroundBitmap){
//复制图像以及图像的 HTML 格式,支持在网页编辑器中粘贴
win.clip.bitmap.writeHtml(winform.plus.backgroundBitmap);
}
else {
winform.msgErr("请先打开或拖放图像文件到当前窗体载图像")
}
}
winform.splitter.split(winform.plus,winform.plus2);
winform.btnPaste.skin({
color={
active=0xFF00FF00;
default=0xFF3C3C3C;
disabled=0xFF6D6D6D;
hover=0xFFFF0000
}
})
winform.btnCopy.skin({
color={
active=0xFF00FF00;
default=0xFF3C3C3C;
disabled=0xFF6D6D6D;
hover=0xFFFF0000
}
})
winform.btnSave.skin({
color={
active=0xFF00FF00;
default=0xFF3C3C3C;
disabled=0xFF6D6D6D;
hover=0xFFFF0000
}
})
winform.btnOpen.skin({
color={
active=0xFF00FF00;
default=0xFF3C3C3C;
disabled=0xFF6D6D6D;
hover=0xFFFF0000
}
})
winform.btnChangeJpegExtension.skin({
color={
active=0xFF00FF00;
default=0xFF3C3C3C;
disabled=0xFF6D6D6D;
hover=0xFFFF0000
}
})
winform.show()
win.loopMessage();
Markdown 格式