obsidian社区插件
自定义 Excalidraw 脚本 -AdjustImageSize- 统一多个图片宽度或者高度
插件ID:%E8%87%AA%E5%AE%9A%E4%B9%89excalidraw%E8%84%9A%E6%9C%AC-adjustimagesize-%E7%BB%9F%E4%B8%80%E5%A4%9A%E4%B8%AA%E5%9B%BE%E7%89%87%E5%AE%BD%E5%BA%A6%E6%88%96%E8%80%85%E9%AB%98%E5%BA%A6
%E8%87%AA%E5%AE%9A%E4%B9%89excalidraw%E8%84%9A%E6%9C%AC-adjustimagesize-%E7%BB%9F%E4%B8%80%E5%A4%9A%E4%B8%AA%E5%9B%BE%E7%89%87%E5%AE%BD%E5%BA%A6%E6%88%96%E8%80%85%E9%AB%98%E5%BA%A6
%E8%87%AA%E5%AE%9A%E4%B9%89excalidraw%E8%84%9A%E6%9C%AC adjustimagesize-%E7%BB%9F%E4%B8%80%E5%A4%9A%E4%B8%AA%E5%9B%BE%E7%89%87%E5%AE%BD%E5%BA%A6%E6%88%96%E8%80%85%E9%AB%98%E5%BA%A6:用于调整多个图片 (image)、矩形框 (rectangle)、Frame 边框的大小,以选中的元素的最大宽度 (高度) 或者最小宽度 (高度) 进行统一缩放,分别有 `等宽缩放`、`等高缩放`、`完全相等` 这 3 个选项。
自定义 Excalidraw 脚本 -AdjustImageSize- 统一多个图片宽度或者高度
效果
用于调整多个图片 (image)、矩形框 (rectangle)、Frame 边框的大小,以选中的元素的最大宽度 (高度) 或者最小宽度 (高度) 进行统一缩放,分别有 等宽缩放
、等高缩放
、完全相等
这 3 个选项。
脚本
该脚本是 @一鸣惊人 分享给我过的 AdjustImageSize 脚本,进行稍加修改。
Excalidraw 脚本如何配置脚本请参考:Excalidraw如何安装脚本_脚本设置介绍
// 获取选中的元素
const selectedEls = ea.getViewSelectedElements().filter(el => el.type === "frame" || "image" || "rectangle" || "ellipse");
const scalingTypes = ["等宽缩放", '等高缩放', '完全相等'];
const inputScalingType = await utils.suggester(scalingTypes, scalingTypes, "选择缩放类型");
if (!inputScalingType) return;
const maxMin = ['Max', 'Min'];
const inputMaxMin = await utils.suggester(maxMin, maxMin, "选择等比对象?");
if (!inputMaxMin) return;
// 获取所有高度和宽度
let width, height;
const widths = selectedEls.map(el => el.width);
const heights = selectedEls.map(el => el.height);
if (inputMaxMin == 'Max') {
width = Math.max(...widths);
height = Math.max(...heights);
} else if (inputMaxMin == 'Min') {
width = Math.min(...widths);
height = Math.min(...heights);
}
if (inputScalingType === "等宽缩放") {
// 等宽缩放
for (let selectedEl of selectedEls) {
let rario = width / selectedEl.width;
selectedEl.width = width;
selectedEl.height *= rario;
}
} else if (inputScalingType === "等高缩放") {
// 等高缩放
for (let selectedEl of selectedEls) {
let rario = height / selectedEl.height;
selectedEl.width *= rario;
selectedEl.height = height;
}
} else if (inputScalingType === "完全相等") {
// 完全相等
for (let selectedEl of selectedEls) {
selectedEl.width = width;
selectedEl.height = height;
}
}
// 完成编辑
ea.copyViewElementsToEAforEditing(selectedEls);
ea.addElementsToView();
讨论
若阁下有独到的见解或新颖的想法,诚邀您在文章下方留言,与大家共同探讨。
反馈交流
其他渠道
版权声明
版权声明:所有 PKMer 文章如果需要转载,请附上原文出处链接。