如何调整幻灯片中选定图像的大小?
How to resize a selected image in slides?
我通过一堆演示文稿选择了一些图像,我需要将它们调整为标准尺寸。我想知道如何让我的脚本低于 运行 当前幻灯片上的 "selected" 个图像。
我找到了一个解决方案,有人让它适用于幻灯片上的所有图像,但我正在寻找那些被选中的对象(多个和单个)。
我尝试修改下面的代码,但没有成功!
function rearrangeImages() {
//Select current page
var currentPage =
SlidesApp.getActivePresentation().getSelection().getCurrentPage();
var slide = currentPage;
//Get selected images of CurrentPage
var pageElements = slide.getImages();
//For each image, change the size and position
for (var i = 0; i < pageElements.length; i++) {
pageElements[i].select(true);
var image = pageElements[i];
var imgWidth = image.getWidth();
var newWidth = 690;
var imgHeight = image.getHeight();
var forhold = imgHeight/imgWidth;
var newHeight = forhold*newWidth;
image.setLeft(14).setTop(14).setWidth(newWidth).setHeight(newHeight).setRotation(0);
var ui = SlidesApp.getUi();
// ui.alert (imgWidth);
pageElements[i].select(false);
}
}
- 您想调整所选图片的大小。
如果我的理解是正确的,这个修改怎么样?
getSelection()
直接检索选择的objects。在本次修改中,使用了这个。
修改后的脚本:
function rearrangeImages() {
var selectedObjects = SlidesApp.getActivePresentation().getSelection(); // Modified
if (selectedObjects.getSelectionType() == SlidesApp.SelectionType.PAGE_ELEMENT) { // Added
var pageElements = selectedObjects.getPageElementRange().getPageElements(); // Added
for (var i = 0; i < pageElements.length; i++) {
if (pageElements[i].getPageElementType() == SlidesApp.PageElementType.IMAGE) { // Added
//For each image, change the size and position
pageElements[i].select(true);
var image = pageElements[i];
var imgWidth = image.getWidth();
var newWidth = 690;
var imgHeight = image.getHeight();
var forhold = imgHeight/imgWidth;
var newHeight = forhold*newWidth;
image.setLeft(14).setTop(14).setWidth(newWidth).setHeight(newHeight).setRotation(0);
var ui = SlidesApp.getUi();
// ui.alert (imgWidth);
pageElements[i].select(false);
}
}
}
}
注:
- 从你的标题来看,我认为你只想调整图像的大小。因此,此修改后的脚本仅调整选定图像的大小。如果要调整 objects 除了图像的大小,请删除
if (pageElements[i].getPageElementType() == SlidesApp.PageElementType.IMAGE)
.
参考文献:
如果我误解了您的问题,这不是您想要的结果,我深表歉意。
我通过一堆演示文稿选择了一些图像,我需要将它们调整为标准尺寸。我想知道如何让我的脚本低于 运行 当前幻灯片上的 "selected" 个图像。
我找到了一个解决方案,有人让它适用于幻灯片上的所有图像,但我正在寻找那些被选中的对象(多个和单个)。
我尝试修改下面的代码,但没有成功!
function rearrangeImages() {
//Select current page
var currentPage =
SlidesApp.getActivePresentation().getSelection().getCurrentPage();
var slide = currentPage;
//Get selected images of CurrentPage
var pageElements = slide.getImages();
//For each image, change the size and position
for (var i = 0; i < pageElements.length; i++) {
pageElements[i].select(true);
var image = pageElements[i];
var imgWidth = image.getWidth();
var newWidth = 690;
var imgHeight = image.getHeight();
var forhold = imgHeight/imgWidth;
var newHeight = forhold*newWidth;
image.setLeft(14).setTop(14).setWidth(newWidth).setHeight(newHeight).setRotation(0);
var ui = SlidesApp.getUi();
// ui.alert (imgWidth);
pageElements[i].select(false);
}
}
- 您想调整所选图片的大小。
如果我的理解是正确的,这个修改怎么样?
getSelection()
直接检索选择的objects。在本次修改中,使用了这个。
修改后的脚本:
function rearrangeImages() {
var selectedObjects = SlidesApp.getActivePresentation().getSelection(); // Modified
if (selectedObjects.getSelectionType() == SlidesApp.SelectionType.PAGE_ELEMENT) { // Added
var pageElements = selectedObjects.getPageElementRange().getPageElements(); // Added
for (var i = 0; i < pageElements.length; i++) {
if (pageElements[i].getPageElementType() == SlidesApp.PageElementType.IMAGE) { // Added
//For each image, change the size and position
pageElements[i].select(true);
var image = pageElements[i];
var imgWidth = image.getWidth();
var newWidth = 690;
var imgHeight = image.getHeight();
var forhold = imgHeight/imgWidth;
var newHeight = forhold*newWidth;
image.setLeft(14).setTop(14).setWidth(newWidth).setHeight(newHeight).setRotation(0);
var ui = SlidesApp.getUi();
// ui.alert (imgWidth);
pageElements[i].select(false);
}
}
}
}
注:
- 从你的标题来看,我认为你只想调整图像的大小。因此,此修改后的脚本仅调整选定图像的大小。如果要调整 objects 除了图像的大小,请删除
if (pageElements[i].getPageElementType() == SlidesApp.PageElementType.IMAGE)
.
参考文献:
如果我误解了您的问题,这不是您想要的结果,我深表歉意。