Как изменить размер выделенного изображения в слайдах?

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

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

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

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

person Leah Korganowski    schedule 23.04.2019    source источник


Ответы (1)


  • Вы хотите изменить размер выбранного изображения.

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

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

Использованная литература:

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

person Tanaike    schedule 23.04.2019
comment
Большое спасибо за помощь Танаике! Это сработало, и это именно то, что мне нужно !!! Теперь я больше понимаю структуру операторов If для этого. Спасибо, супер полезно! - person Leah Korganowski; 25.04.2019
comment
@Leah Korganowski Спасибо за ответ. Я рад, что ваша проблема решена. И тебе спасибо. - person Tanaike; 26.04.2019