aardio 文档

gdip.toolbarBitmap 库模块帮助文档

gdip 成员列表 #

gdip.toolbarBitmap() #

返回对象:gdipToolbarBitmapObject

gdip.toolbarBitmap(cx,cy) #

创建工具条位图生成器。
@cx,@cy 指定默认的按钮图像宽度与高度,build,save 等函数未指定大小时使用此大小。
省略全部参数默认为 16,15(VC++ 向导生成的工具条默认大小)。
仅指定 @cx 则高度与宽度相同。

gdip.toolbarBitmap 成员列表 #

工具条位图生成器。
将 SVG、PNG、ICO、字体图标等按指定按钮大小横向拼接为 VC++ 等原生工具条(toolbar)使用的 BMP 位图。
同一组图标可生成 16,24,32,48 等多种尺寸,用于按 DPI 加载。
可生成 32 位(alpha 透明)、24 位、256 色、16 色位图。
非 32 位位图使用透明色(默认为 0xC0C0C0)表示透明,并自动处理半透明边缘与系统颜色替换问题。

gdip.toolbarBitmap.decode() #

返回对象:gdipbitmapObject

gdip.toolbarBitmap.decode(bmpData,keyColor) #

解码 BMP 等图像数据(支持文件路径、字符串、buffer、string.builder),返回 gdip.bitmap 对象。
可读取 32 位 BMP 的 alpha 通道(GDI+ 默认忽略此通道)。
不含 alpha 通道的位图则将 @keyColor(0xRRGGBB 格式)指定的颜色转为透明,
省略 @keyColor 则使用左上角像素的颜色,@keyColor 为 false 不处理透明色。

gdipToolbarBitmapObject 成员列表 #

gdipToolbarBitmapObject.add(image,options) #

添加按钮图像,返回对象自身。
@image 可指定:

@options 可指定按钮命令 ID 字符串(用于生成 rc 脚本),
或者指定选项表:
{
\tid = "ID_FILE_NEW"; // 按钮命令 ID
\tfit = "auto"; // 位图放入按钮的方式,参考 fit 属性
\tcolor = 0xFF2B5797; // SVG 中 currentColor 的颜色
\tkeyColor = 0xC0C0C0; // 将此颜色(0xRRGGBB)转为透明,用于不含 alpha 通道的旧图标
}

gdipToolbarBitmapObject.addDir(dir,mask) #

按文件名排序添加目录下的所有图像,返回对象自身。
可选用 @mask 指定通配符,多个用 | 分隔。
文件名形如 ID_FILE_NEW.svg 或 01_ID_FILE_NEW.svg 时自动作为按钮命令 ID,
可用数字前缀控制按钮顺序。

gdipToolbarBitmapObject.addDraw(draw,options) #

添加由绘图函数生成的图标,返回对象自身。
每种尺寸都会调用 @draw(graphics,cx,cy) 重新绘制,
graphics 为 gdip.graphics 对象,已启用抗锯齿并将像素偏移设为 Half(整数坐标对齐像素边界)。
cx,cy 为按钮图像大小。
@options 可指定按钮命令 ID 字符串或选项表。

gdipToolbarBitmapObject.addGlyph(font,glyph,color,options) #

添加字体图标,返回对象自身。
@font 指定字体名称或 gdip.family 对象,例如 fonts.fontAwesome.family。
@glyph 指定字体图标字符,例如 '\uF0C7'。
@color 指定颜色(0xAARRGGBB 或 0xRRGGBB 格式),默认为黑色。
@options 可指定按钮命令 ID 字符串,或选项表:
{
\tid = "ID_FILE_SAVE";
\tscale = 0.875; // 字体大小相对按钮大小的比例
}

gdipToolbarBitmapObject.addSeparator() #

添加分隔符,仅用于 rc 方法生成 rc 脚本,不占用图像位置。
返回对象自身。

gdipToolbarBitmapObject.addStrip(image,cellWidth,keyColor) #

拆分并添加已有的工具条位图(例如旧的 Toolbar.bmp),返回对象自身。
@image 指定图像路径、数据或 gdip.bitmap 对象,可读取 32 位 BMP 的 alpha 通道。
@cellWidth 指定原位图中每个按钮的宽度,默认为当前默认按钮宽度。
@keyColor 指定透明色(0xRRGGBB)。
省略 @keyColor 时如果原位图不含 alpha 通道,则使用左上角像素颜色作为透明色(与 ImageList 的 CLR_DEFAULT 规则相同),
@keyColor 为 false 不处理透明色。

gdipToolbarBitmapObject.addSvg(svg,options) #

添加 SVG 图标,返回对象自身。
@svg 指定 SVG 代码或文件路径,每种尺寸都会重新绘制。
@options 用法与 add 函数相同,可用 color 字段指定 currentColor 的颜色。
依赖 dotNet.Svg 扩展库。

gdipToolbarBitmapObject.build() #

返回对象:StringBuilderObject

gdipToolbarBitmapObject.build(size,options) #

生成 BMP 文件数据,返回 string.builder 对象。
@size 指定按钮图像大小,可指定数值(正方形)、[cx,cy] 或 {cx=;cy=},省略则使用默认大小。
@options 可指定位深度 32,24,8,4,或指定选项表:
{
\tbpp = 32; // 位深度:32(alpha 透明),24,8(256 色),4(16 色)
\tkeyColor = 0xC0C0C0; // 透明色(0xRRGGBB),VC++ 工具条请保持默认值
\tmatteColor = 0xF0F0F0; // 半透明边缘混合的背景色,应接近工具条实际背景色,false 不混合
\talphaThreshold = 64; // alpha 小于等于此值的像素作为透明像素
\tpalette = "optimal"; // 16 色调色板:"optimal" 优化调色板,"standard" 标准 16 色调色板
\tdither = false; // 256 色、16 色是否使用误差扩散抖动
\tprotectColors = [0x808080,0xDFDFDF,0x0000FF,0xFF00FF]; // 会被系统替换为系统颜色的特殊颜色,将被微调 1 级避开
\tdisabled = false; // 是否生成禁用状态(灰色半透明)位图,也可以指定不透明度
}

gdipToolbarBitmapObject.buttons #

按钮数组,用于生成 rc 脚本,
每个元素包含 id 字段或 separator 字段。

gdipToolbarBitmapObject.clear() #

清空所有按钮图像与按钮

gdipToolbarBitmapObject.count() #

返回按钮图像数目

gdipToolbarBitmapObject.cx #

默认按钮图像宽度,只读

gdipToolbarBitmapObject.cy #

默认按钮图像高度,只读

gdipToolbarBitmapObject.fit #

位图放入按钮的方式,影响之后添加的图像,可选值:
"auto"(默认值):大小相当则 1:1 原样复制以保持像素清晰(略大一点则裁掉透明边缘),否则保持比例高质量缩放。
"scale":保持比例缩放到按钮大小。
"stretch":拉伸到按钮大小。
"center":不缩放,居中裁剪。

gdipToolbarBitmapObject.getBitmap() #

返回对象:gdipbitmapObject

gdipToolbarBitmapObject.getBitmap(size,options) #

返回 gdip.bitmap 对象。
@size 用法与 build 函数相同。
不指定 @options 返回拼接后的 32 位 alpha 透明原图。
指定 @options 则按 build 函数相同的参数生成 BMP,再解码返回实际效果的预览图(透明色转为透明)。

gdipToolbarBitmapObject.getCells(size) #

返回指定大小的按钮图像数组以及宽度、高度。
数组元素为包含 buf,w,h 字段的像素对象,buf 为 BGRA 字节序、非预乘 alpha 的 buffer。
@size 可指定数值(正方形)、[cx,cy] 或 {cx=;cy=},省略则使用默认大小。

gdipToolbarBitmapObject.items #

按钮图像源数组。
每个元素的 render(cx,cy) 函数返回指定大小的像素对象。

gdipToolbarBitmapObject.preview() #

返回对象:gdipbitmapObject

gdipToolbarBitmapObject.preview(sizes,zoom,backgrounds) #

生成预览图,返回 gdip.bitmap 对象。
每种尺寸在每种背景色上各显示一行,按像素放大以便检查细节。
@sizes 默认为 [16,24,32,48],@zoom 默认为 2,
@backgrounds 为 ARGB 颜色数组,默认为浅色与深色背景。

gdipToolbarBitmapObject.rc(resName,sizes,bmpPath) #

生成 rc 资源脚本中的 TOOLBAR 资源定义(按钮数、大小与位图保持一致)。
@resName 指定资源名,例如 "IDR_TOOLBAR{size}"。
@sizes 可指定单个尺寸或尺寸数组,多个尺寸时资源名不含 {size} 则自动添加 _{size} 后缀。
可选用 @bmpPath 指定位图路径(可包含 {size}),用于同时生成 BITMAP 资源定义。

gdipToolbarBitmapObject.save(path,size,options) #

生成 BMP 文件并存入 @path 指定的路径,成功返回 true。
@size,@options 用法与 build 函数相同,省略 @options 则生成 32 位 alpha 透明位图。

gdipToolbarBitmapObject.saveAll(path,sizes,options) #

生成多个尺寸的 BMP 文件,返回文件路径数组。
@path 必须包含 {size} 占位符,例如 "/res/toolbar{size}.bmp"。
@sizes 指定尺寸数组,默认为 [16,24,32,48]。
@options 用法与 build 函数相同。

Markdown 格式