# aardio 范例: FontAwesome 转复合图标



```aardio
import fonts.fontAwesome;
import gdip.fontIcoBuilder;
import win.image;
import win.ui;
/*DSG{{*/
var winform = win.form(text="FontAwesome 转复合图标";right=560;bottom=310;bgcolor=0xFFFFFF)
winform.add(
info={cls="static";left=34;top=235;right=526;bottom=285;center=1;color=0x303030;font=LOGFONT(h=-14);z=2};
preview={cls="plus";left=184;top=26;right=376;bottom=218;bgcolor=0xF8FAFC;border={color=0xD8D8D8;radius=18;width=1};z=1}
)
/*}}*/

// 图标字体转换为 *.ico 格式复合图标
var icoData = gdip.fontIcoBuilder(fonts.fontAwesome.family
	,'\uF1B9'
	,0.60 // 文字缩放比例
	,0xFFFFFFFF // 字体颜色
	,0xFF0078D7 // 背景颜色
	,8 // 正数指定方形圆角（默认为 8），-1 圆形背景
	,[16,32,64,128] // 这里只考虑窗口与任务栏，其他常用：[16, 32, 48, 64，128, 256] 
)

// icoData 是 string.builder 对象，可存为文件
icoData.save("~/examples/AI/autos.ico")

// 预览图标，plus 控件直接支持 string.builder 对象 
winform.preview.background = icoData

// 窗口初始化或系统调整 DPI 后回调此函数
winform.afterDpiChanged = function(scaleX,scaleY,origScaleX,origScaleY){ 
	
	// 对于硬盘存在的图标文件，winform.setIcon 可自动选择合适分辨率
	winform.setIcon("~/examples/AI/autos.ico"); // winform.setIcon 自动管理图标生命周期
}

winform.show();
win.loopMessage();
```

