使用最新版的 paint 库和 customplus 库,请从我的更新程序,或本站下载。
体验 exe 见附件,可下载尝鲜。
制作了个简单的界面:
代码如下:
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio 制作ico图标 by 光庆";right=687;bottom=503)
winform.add(
add={cls="button";text="添加";left=528;top=8;right=672;bottom=48;z=2};
button={cls="button";text="生成";left=528;top=56;right=672;bottom=96;z=3};
plus={cls="plus";left=8;top=8;right=472;bottom=496;edge=1;notify=1;z=1};
scrollbar={cls="scrollbar";left=472;top=8;right=504;bottom=496;edge=1;z=4}
)
/*}}*/
import godking.paint
import godking.customPlus
var itemModel = {
[1]={ type="rect", /* 类型:rect */
rectf={x=5;y=5;width=128;height=128}, /* 矩形区域范围。负数表示距离项目右边或底边的距离。 */
width=1, /* 边框宽度。为0则无边框。 */
color=0xFFDDDDEE, /* 正常状态下,边框颜色 */
click = true,
round=10,
},
[2]={ type="img", /* 类型:img */
rectf={x=5;y=5;width=128;height=128},
name="img",
},
[3]={ type="text", /* 类型:text */
rectf={x=5;y=138;width=128;height=20}, /* 文本范围。负数表示距离项目右边的距离。 */
name="size",
align=1, /* 文本水平对齐方式。0、(近端)左对齐 1、居中 2、(远端)右对齐 */
font={name="Tahoma",point=11,color=0xFFFF0000},
}
}
var c = godking.customPlus(winform.plus,itemModel,itemList,{
itemWidth=138, /*项目最小宽度,为0时根据colnum自动计算,所以不能与colnum同时=0*/
itemHeight=158, /*项目最小高度,为0时根据rownum自动计算,所以不能与rownum同时=0*/
})
c.onClick = function(itemIndex/*项目索引*/,elemIndex/*元素索引*/,elemID/*元素id*/,elemName/*元素name*/,pageIndex/*当前页项目索引*/,x/*鼠标X坐标*/,y/*鼠标Y坐标*/,disabled/*项目是否禁用*/,itemRect/*项目区域*/,elemRect/*元素区域*/){
if win.msgboxTest("确定要删除该项吗?") { c.delItem(itemIndex); c.bindScrollbar(winform.scrollbar); c.update(); }
}
winform.add.oncommand = function(id,event){
import fsys.dlg
var fname = fsys.dlg.open("*.png|*.png|*.jpg|*.jpg")
if fname {
var p = godking.paint.fromBitmap(fname);
var w,h = p.width,p.height;
p.close();
if w>128 or h>128 return win.msgboxErr("尺寸大于128,不满足要求!");
c.addItem({img=fname,size= w+"*"+h});
c.bindScrollbar(winform.scrollbar);
c.update();
}
}
winform.button.oncommand = function(id,event){
var ico = godking.paint.icon()
for(i=1;#c.itemList;1){
ico.addImage(c.itemList[i].img);
}
import fsys.dlg
var fname = fsys.dlg.save("*.ico|*.ico");
if fname {
if ..string.save(fname,ico.getIcon()) win.msgbox("保存完毕")
else win.msgbox("保存失败")
}
}
winform.show();
win.loopMessage();