Как изменить размер выбранного изображения в слайдах? - PullRequest
2 голосов
/ 23 апреля 2019

У меня есть несколько выбранных изображений через кучу презентаций, которые мне нужно, чтобы размер до стандартного размера. Мне было интересно, как мне запустить мой скрипт ниже только для "выбранных" изображений на текущем слайде.

Я нашел решение, когда кто-то заставил его работать со всеми изображениями на слайде, но я ищу только те объекты, которые выделены (несколько и одно).

Я пытался изменить код ниже, но безуспешно!

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 голосов
/ 24 апреля 2019
  • Вы хотите изменить размер выбранного изображения.

Если мое понимание верно, как насчет этой модификации?

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).

Ссылки:

Если я неправильно понял ваш вопрос, и это был не тот результат, которого вы хотите, я прошу прощения.

...