YStudio Y++

图片支持库

Y++ / YStudio 开发文档 · 一点滴

路径:支持库 → 图片支持库。

能做什么

把图像当字节集读写与加工(无句柄、无独立“图片对象”),常见用途:

场景 典型命令
读盘 / 落盘 图片_读文件 · 图片_写文件
查信息 图片_是否有效 · 图片_取宽度/高度 · 图片_取格式 · 图片_是否有透明
改尺寸 / 方向 图片_缩放 · 图片_按比例缩放 · 图片_缩略图 · 图片_旋转 · 图片_扶正 · 图片_裁剪 · 图片_扩展画布
像素与合成 图片_取像素 · 图片_置像素 · 图片_填充 · 图片_贴图 · 图片_混合
滤镜与色 图片_灰度 · 图片_反色 · 图片_亮度对比度 · 图片_模糊 等
水印 / 文字 图片_画文字 · 图片_画矩形 等
格式互转 图片_转PNG/JPEG/BMP/GIF/WebP
剪贴板 图片_置剪贴板 · 图片_取剪贴板
交给控件 图片框1.图片 = 图 · 按钮1.图片 = 图(含 SVG 字节)

支持格式:PNG / JPEG / BMP / GIF(几何仅首帧)/ TIFF / ICO / WebP / SVG。
SVG 按视口栅格化为位图后再处理;加工后写出默认为 PNG(矢量不再保留)。

硬约束

  1. 扁平命令:图片_读文件(...);图片=编码后的图像字节集(无句柄)。
  2. 失败:字节集空 / 逻辑假 / 整数 0 / 文本空;查 图片_取最后错误()。
  3. 颜色文本 #RRGGBB / #AARRGGBB;像素色 0xAARRGGBB。
  4. GIF 几何只处理第一帧;ICO/无法回写→PNG;任意角旋转扩画布透明底 PNG;SVG 解码后写出→PNG。
  5. 插值:0近邻 · 1线性 · 2高质量(默认) · 3立方。

快速开始

字节集 图 = 图片_读文件("demo.png")
如果 (图片_是否有效(图) == 假) {
    输出(图片_取最后错误())
} 否则 {
    图 = 图片_缩略图(图, 800, 800)
    图 = 图片_画文字(图, "仅供办理", 16, 16, 28, "#CCFFFFFF", "", 0)
    图片框1.图片 = 图
}

' 资源里的 SVG 也可:控件直接赋,或先经支持库再赋
图片框1.图片 = 到字节集(":/复制.svg")
字节集 svg图 = 图片_读文件("icon.svg")
如果 (图片_是否有效(svg图)) {
    svg图 = 图片_缩放(svg图, 64, 64)
    按钮1.图片 = svg图
}

读写

本分类共 2 条。

图片_写文件

  • 签名:逻辑 图片_写文件(字节集 图像, 文本 路径)
  • 说明:将图像字节集原样写入文件。成功返回真。扩展名建议与格式一致。
  • 参数一│图像: 图像字节集
  • 参数二│路径: 输出文件路径

图片_读文件

  • 签名:字节集 图片_读文件(文本 路径)
  • 说明:读取图像文件为字节集。须为可解码图像,否则返回空并记录错误。
  • 参数一│路径: 图像文件路径(支持中文)

信息

本分类共 6 条。

图片_取宽度

  • 签名:整数 图片_取宽度(字节集 图像)
  • 说明:取图像像素宽度;无效时返回 0。
  • 参数一│图像

图片_取最后错误

  • 签名:文本 图片_取最后错误()
  • 说明:取最近一次图片命令的错误信息;成功时为空。

图片_取格式

  • 签名:文本 图片_取格式(字节集 图像)
  • 说明:取容器格式名:png / jpeg / bmp / gif / tiff / ico / webp / svg / unknown。
  • 参数一│图像

图片_取高度

  • 签名:整数 图片_取高度(字节集 图像)
  • 说明:取图像像素高度;无效时返回 0。
  • 参数一│图像

图片_是否有效

  • 签名:逻辑 图片_是否有效(字节集 图像)
  • 说明:判断字节集是否为可解码图像。
  • 参数一│图像

图片_是否有透明

  • 签名:逻辑 图片_是否有透明(字节集 图像)
  • 说明:任一像素 Alpha < 255 则返回真。
  • 参数一│图像

几何

本分类共 8 条。

图片_扩展画布

  • 签名:字节集 图片_扩展画布(字节集 图像, 整数 左边距, 整数 上边距, 整数 右边距, 整数 下边距, [文本 颜色=""])
  • 说明:四周加边,原图不缩放。边距不能为负;全 0 返回原字节。颜色空=透明;含透明时输出 PNG。
  • 参数一│图像
  • 参数二│左边距
  • 参数三│上边距
  • 参数四│右边距
  • 参数五│下边距
  • 参数六│[颜色]: #RRGGBB/#AARRGGBB,空=透明

图片_扶正

  • 签名:字节集 图片_扶正(字节集 图像)
  • 说明:按文件内拍摄方向摆正。无方向信息时返回原字节(不重编码)。读文件不会自动扶正。
  • 参数一│图像

图片_按比例缩放

  • 签名:字节集 图片_按比例缩放(字节集 图像, 小数 比例, [整数 插值=2])
  • 说明:按比例缩放。1 为原大,0.5 为一半。比例须大于 0 且不超过 64。
  • 参数一│图像
  • 参数二│比例: 1=原大,0.5=一半
  • 参数三│[插值]: 0近邻 1线性 2高质量 3立方,默认 2

图片_旋转

  • 签名:字节集 图片_旋转(字节集 图像, 整数 角度)
  • 说明:顺时针旋转。0/90/180/270 精确;其它角度扩大画布(透明底)并输出 PNG。0 返回原字节。
  • 参数一│图像
  • 参数二│角度: 任意整数,90 的倍数最精确

图片_缩放

  • 签名:字节集 图片_缩放(字节集 图像, 整数 宽度, 整数 高度, [整数 插值=2])
  • 说明:缩放到指定像素。宽或高为 0 时按另一边保持比例。插值 0近邻 1线性 2高质量 3立方,默认 2。
  • 参数一│图像
  • 参数二│宽度: 目标像素宽
  • 参数三│高度: 0=按宽度保持比例
  • 参数四│[插值]: 0近邻 1线性 2高质量 3立方,默认 2

图片_缩略图

  • 签名:字节集 图片_缩略图(字节集 图像, 整数 最大宽度, 整数 最大高度)
  • 说明:等比缩进最大宽高框内,不放大。已在框内则返回原字节。某一边小于等于 0 表示不限制该边。
  • 参数一│图像
  • 参数二│最大宽度: 小于等于 0 则不限制宽
  • 参数三│最大高度: 小于等于 0 则不限制高

图片_翻转

  • 签名:字节集 图片_翻转(字节集 图像, 整数 方向)
  • 说明:翻转图像。方向:1=水平,2=垂直,3=水平加垂直。
  • 参数一│图像
  • 参数二│方向: 1=水平,2=垂直,3=两者

图片_裁剪

  • 签名:字节集 图片_裁剪(字节集 图像, 整数 左, 整数 上, 整数 宽度, 整数 高度)
  • 说明:按像素矩形裁剪。宽或高小于等于 0 表示取到右/下边缘。区域须落在图内。
  • 参数一│图像
  • 参数二│左
  • 参数三│上
  • 参数四│宽度
  • 参数五│高度

绘制

本分类共 9 条。

图片_九宫格

  • 签名:字节集 图片_九宫格(字节集 图像, 整数 左边距, 整数 上边距, 整数 右边距, 整数 下边距, 整数 目标宽度, 整数 目标高度)
  • 说明:九宫格拉伸到目标尺寸,四角不变形。输出 PNG。
  • 参数一│图像
  • 参数二│左边距
  • 参数三│上边距
  • 参数四│右边距
  • 参数五│下边距
  • 参数六│目标宽度
  • 参数七│目标高度

图片_创建

  • 签名:字节集 图片_创建(整数 宽度, 整数 高度, [文本 颜色=""])
  • 说明:新建空白图,输出 PNG。颜色支持 #RRGGBB / #AARRGGBB;省略或空为全透明。
  • 参数一│宽度
  • 参数二│高度
  • 参数三│[颜色]: 如 “#FFFFFFFF”;空=全透明

图片_圆角

  • 签名:字节集 图片_圆角(字节集 图像, 整数 半径)
  • 说明:四角裁成透明圆角。半径 0 返回原字节;过大时按短边一半封顶。输出 PNG。
  • 参数一│图像
  • 参数二│半径

图片_填充矩形

  • 签名:字节集 图片_填充矩形(字节集 图像, 整数 左, 整数 上, 整数 宽度, 整数 高度, 文本 颜色)
  • 说明:在图上填充矩形。越界部分裁切。
  • 参数一│图像
  • 参数二│左
  • 参数三│上
  • 参数四│宽度
  • 参数五│高度
  • 参数六│颜色

图片_描边矩形

  • 签名:字节集 图片_描边矩形(字节集 图像, 整数 左, 整数 上, 整数 宽度, 整数 高度, 文本 颜色, [整数 线宽=1])
  • 说明:画空心矩形。线宽 1–64,描边以边线为中心。
  • 参数一│图像
  • 参数二│左
  • 参数三│上
  • 参数四│宽度
  • 参数五│高度
  • 参数六│颜色
  • 参数七│[线宽]: 1–64,默认 1

图片_画圆

  • 签名:字节集 图片_画圆(字节集 图像, 整数 圆心左, 整数 圆心上, 整数 半径, 文本 颜色, [整数 填充=1])
  • 说明:画圆。填充 1 实心,0 空心。
  • 参数一│图像
  • 参数二│圆心左
  • 参数三│圆心上
  • 参数四│半径
  • 参数五│颜色
  • 参数六│[填充]: 1实心 0空心,默认 1

图片_画文字

  • 签名:字节集 图片_画文字(字节集 图像, 文本 内容, 整数 左, 整数 上, [整数 字号=16], [文本 颜色="#FFFFFFFF"], [文本 字体=""], [整数 对齐=0])
  • 说明:在图上画文字。对齐:0 左(横坐标为左)、1 中、2 右。字体空则用微软雅黑。
  • 参数一│图像
  • 参数二│内容
  • 参数三│左
  • 参数四│上
  • 参数五│[字号]: 默认 16
  • 参数六│[颜色]: #RRGGBB / #AARRGGBB,默认白
  • 参数七│[字体]: 空=微软雅黑
  • 参数八│[对齐]: 0左 1中 2右,默认 0

图片_画线

  • 签名:字节集 图片_画线(字节集 图像, 整数 起点左, 整数 起点上, 整数 终点左, 整数 终点上, 文本 颜色, [整数 线宽=1])
  • 说明:画直线。线宽 1..64。
  • 参数一│图像
  • 参数二│起点左
  • 参数三│起点上
  • 参数四│终点左
  • 参数五│终点上
  • 参数六│颜色
  • 参数七│[线宽]: 1..64,默认 1

图片_绘制

  • 签名:字节集 图片_绘制(字节集 底图, 字节集 图层, 整数 左, 整数 上, [整数 透明度=100], [整数 宽度=0], [整数 高度=0])
  • 说明:把图层画到底图上。透明度 0–100。宽度/高度大于 0 时拉伸;只给一边则保持图层比例。
  • 参数一│底图
  • 参数二│图层
  • 参数三│左: 图层左上角 X
  • 参数四│上: 图层左上角 Y
  • 参数五│[透明度]: 0–100,默认 100
  • 参数六│[宽度]: 0=图层原宽
  • 参数七│[高度]: 0=图层原高

滤镜

本分类共 11 条。

图片_亮度

  • 签名:字节集 图片_亮度(字节集 图像, 整数 增量)
  • 说明:调节亮度。增量 -100..100,0 返回原字节。
  • 参数一│图像
  • 参数二│增量: -100..100

图片_去背景色

  • 签名:字节集 图片_去背景色(字节集 图像, 文本 颜色, [整数 容差=32])
  • 说明:把接近指定颜色的像素变为透明。容差 0..255。
  • 参数一│图像
  • 参数二│颜色: #RRGGBB / #AARRGGBB
  • 参数三│[容差]: 0..255,默认 32

图片_反色

  • 签名:字节集 图片_反色(字节集 图像)
  • 说明:反相颜色(保留透明度)。
  • 参数一│图像

图片_对比度

  • 签名:字节集 图片_对比度(字节集 图像, 整数 增量)
  • 说明:调节对比度。增量 -100..100,0 返回原字节。
  • 参数一│图像
  • 参数二│增量: -100..100

图片_模糊

  • 签名:字节集 图片_模糊(字节集 图像, 整数 半径)
  • 说明:均值模糊。半径 0..32,0 返回原字节。
  • 参数一│图像
  • 参数二│半径: 0..32

图片_灰度

  • 签名:字节集 图片_灰度(字节集 图像)
  • 说明:转为灰度图。
  • 参数一│图像

图片_置透明度

  • 签名:字节集 图片_置透明度(字节集 图像, 整数 透明度)
  • 说明:按百分比缩放整图 Alpha。0 全透明,100 不变。
  • 参数一│图像
  • 参数二│透明度: 0..100

图片_色相

  • 签名:字节集 图片_色相(字节集 图像, 整数 偏移)
  • 说明:色相偏移,单位度。范围 -180..180,0 返回原字节。
  • 参数一│图像
  • 参数二│偏移: -180..180

图片_锐化

  • 签名:字节集 图片_锐化(字节集 图像, [整数 强度=50])
  • 说明:锐化。强度 0..100,0 返回原字节。
  • 参数一│图像
  • 参数二│[强度]: 0..100,默认 50

图片_饱和度

  • 签名:字节集 图片_饱和度(字节集 图像, 整数 增量)
  • 说明:调节饱和度。增量 -100..100,-100 接近灰度,0 返回原字节。
  • 参数一│图像
  • 参数二│增量: -100..100

图片_马赛克

  • 签名:字节集 图片_马赛克(字节集 图像, 整数 块大小, [整数 左=0], [整数 上=0], [整数 宽度=0], [整数 高度=0])
  • 说明:马赛克打码。块大小 1–256(1 返回原字节)。宽或高 ≤0 表示从起点到右/下边缘。
  • 参数一│图像
  • 参数二│块大小: 1–256
  • 参数三│[左]: 默认 0
  • 参数四│[上]: 默认 0
  • 参数五│[宽度]: ≤0 到右边缘
  • 参数六│[高度]: ≤0 到下边缘

格式

本分类共 6 条。

图片_置JPEG质量

  • 签名:逻辑 图片_置JPEG质量(整数 质量)
  • 说明:设置后续 JPEG 编码质量。1–100,默认 90。成功返回真。
  • 参数一│质量: 1–100

图片_转BMP

  • 签名:字节集 图片_转BMP(字节集 图像)
  • 说明:转换为 BMP。
  • 参数一│图像

图片_转GIF

  • 签名:字节集 图片_转GIF(字节集 图像)
  • 说明:转换为单帧 GIF。
  • 参数一│图像

图片_转JPEG

  • 签名:字节集 图片_转JPEG(字节集 图像, [整数 质量=0])
  • 说明:转换为 JPEG。质量 1–100 仅本次有效;0 或省略则用 图片_置JPEG质量(默认 90)。
  • 参数一│图像
  • 参数二│[质量]: 1–100 仅本次;0 或省略沿用全局

图片_转PNG

  • 签名:字节集 图片_转PNG(字节集 图像)
  • 说明:转换为 PNG 字节集。
  • 参数一│图像

图片_转WebP

  • 签名:字节集 图片_转WebP(字节集 图像)
  • 说明:转换为 WebP(需系统 WIC 编码器。Windows 10 通常只能解码,Windows 11 才有编码器)。
  • 参数一│图像

像素

本分类共 5 条。

图片_从像素数据

  • 签名:字节集 图片_从像素数据(整数 宽度, 整数 高度, 字节集 像素)
  • 说明:由 BGRA 像素重建 PNG。像素长度须为 宽×高×4。
  • 参数一│宽度
  • 参数二│高度
  • 参数三│像素: BGRA 字节集

图片_取主色

  • 签名:整数 图片_取主色(字节集 图像)
  • 说明:取整图平均色,返回 ARGB 整数。
  • 参数一│图像

图片_取像素

  • 签名:整数 图片_取像素(字节集 图像, 整数 左, 整数 上)
  • 说明:取指定像素颜色,返回 ARGB 整数(0xAARRGGBB)。越界返回 0。
  • 参数一│图像
  • 参数二│左
  • 参数三│上

图片_取像素数据

  • 签名:字节集 图片_取像素数据(字节集 图像)
  • 说明:取原始 BGRA 像素字节(行主序,步长=宽×4)。宽高用 图片_取宽度/高度。
  • 参数一│图像

图片_置像素

  • 签名:字节集 图片_置像素(字节集 图像, 整数 左, 整数 上, 整数 颜色)
  • 说明:设置像素并返回新图。颜色为 ARGB 整数 0xAARRGGBB。
  • 参数一│图像
  • 参数二│左
  • 参数三│上
  • 参数四│颜色: 0xAARRGGBB

剪贴板

本分类共 2 条。

图片_写剪贴板

  • 签名:逻辑 图片_写剪贴板(字节集 图像)
  • 说明:把图像写入系统剪贴板(PNG + DIB)。成功返回真。
  • 参数一│图像

图片_读剪贴板

  • 签名:字节集 图片_读剪贴板()
  • 说明:从系统剪贴板读取图像,输出 PNG 字节。无图时返回空。

多帧

本分类共 3 条。

图片_取帧

  • 签名:字节集 图片_取帧(字节集 图像, 整数 索引)
  • 说明:取指定帧,输出 PNG。索引从 0 起。
  • 参数一│图像
  • 参数二│索引: 从 0 起

图片_取帧延时

  • 签名:整数 图片_取帧延时(字节集 图像, 整数 索引)
  • 说明:取 GIF 帧延时(毫秒)。非 GIF 或无延时元数据时返回 0。
  • 参数一│图像
  • 参数二│索引

图片_取帧数

  • 签名:整数 图片_取帧数(字节集 图像)
  • 说明:取帧数。普通图为 1;GIF 动图为多帧。
  • 参数一│图像

易错对照

错误 正确
当句柄用 进出都是字节集
失败不查错误 图片_取最后错误()
GIF 期望全帧几何 几何只处理第一帧;多帧见取帧

相关

二维码支持库 · 摄像头类 · 图片框 YSS