如何调整幻灯片中所选图像的大小?

时间:2019-04-23 20:55:27

标签: google-apps-script google-slides-api

我通过一系列演示文稿选择了许多图像,这些图像需要调整为标准尺寸。我想知道如何让我的脚本仅在当前幻灯片上的“选定”图像下运行。

我找到了一种解决方案,有人可以将其用于幻灯片上的所有图像,但是我只是在寻找那些被选中的对象(多个和单个)。

我尝试更改下面的代码,但没有成功!

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);
  }
}

1 个答案:

答案 0 :(得分:0)

  • 您要调整所选图像的大小。

如果我的理解是正确的,那么该修改如何?

getSelection()直接检索所选对象。在此修改中,使用了它。

修改后的脚本:

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);
      }
    }
  }
}

注意:

  • 从您的标题来看,我认为您只想调整图像大小。因此,此修改后的脚本仅调整所选图像的大小。如果要调整除图像以外的对象的大小,请删除if (pageElements[i].getPageElementType() == SlidesApp.PageElementType.IMAGE)

参考文献:

如果我误解了您的问题,而这不是您想要的结果,我深表歉意。