bx-image 是 BoxLang 的图像处理模块,用于在 BoxLang 应用中完成常见的图像操作。BoxLang 被描述为面向 AI 的软件生产力平台,供开发者与 AI 智能体协作构建、现代化和运行应用。
用途 该模块面向图像处理场景,包括读取、创建、写入图像,以及缩放、裁剪、旋转、翻转、灰度、模糊、锐化、加边框、绘制文字、复制与粘贴区域等操作。
主要能力 读取与写入:ImageRead 可从文件路径或 URL 读取图像;ImageNew 可创建空白图像(如 ImageNew("", 800, 600, "rgb", "white"));ImageWrite 可写入文件,JPG 支持 0-1 的质量参数;ImageInfo 返回宽度、高度、颜色模型、来源等信息。 缩放与裁剪:ImageResize 可指定宽高(可能改变宽高比),也可只指定宽度让高度自动缩放;ImageScaleToFit 在边界内等比缩放并添加白边;ImageCrop 按 x、y、宽、高裁剪区域。 变换:ImageRotate 按角度旋转(正值为顺时针);ImageFlip 支持水平或垂直翻转;ImageGrayScale 灰度化;ImageBlur 按半径模糊;ImageSharpen 锐化;imageAddBorder 添加边框;imageDrawText 在图像上绘制文字(可指定字体、字号、颜色、样式)。 复制与粘贴:imageCopy 复制指定区域,imagePaste 将区域粘贴到目标图像的指定位置。
使用方式 模块提供三种 API 风格:
- BIF 函数:如 ImageResize(img, 800),适合快速的一次性操作。
- Fluent BoxImage:如 ImageNew("path").resize(800).write(),适合链式多步处理,例如 ImageNew("/app/uploads/original.jpg").resize(800, 600).rotate(90).grayScale().blur(2).write("/app/thumbnails/thumb.jpg", 0.85)。
- bx:image 组件:如 <bx:image action="resize" source="#myImage#" width="400" height="300">,适合模板风格代码,支持 read、resize、write、writeToBrowser 等 action,也可一步完成读取、缩放、写入。
安装 可通过 install-bx-module bx-image 安装,或使用 CommandBox 执行 box install bx-image。
适用场景 资料给出的示例包括:多格式缩略图生成器(按 thumb、medium、large 等尺寸批量输出)、水印添加(在图像右下角绘制版权文字)、链式缩略图处理(缩放、加边框、写出)等。
限制与注意事项 ImageResize 会就地修改图像,需立即赋值或使用;ImageScaleToFit 会添加内边距,ImageResize 可能造成变形,应按需选择;JPG 质量为 0.0-1.0(1.0 质量最好、文件最大);PNG 为无损格式,不支持质量参数;创建空白画布应使用 ImageNew("") 再调用绘制函数;对超大图像未先缩放直接操作可能导致内存问题。
其他信息 该模块的具体版本、收费方式、支持平台等事实暂未提供。