Slides API - Как обрезать изображения? - PullRequest
0 голосов
/ 31 октября 2019

Я использую Google Slides API. Мне нужно взять изображение из презентации A, которую я хочу скопировать и вставить в презентацию B.

Я использую метод Presentations (). Get из презентации A, чтобы получить изображение. Затем я использую запросы «createImage» и «updateImageProperties» в методе batchUpdate, чтобы обновить презентацию B.

К сожалению, я не могу обновить cropProperties, прозрачность, яркость, контраст и перекрасить свойства, доступные только для чтения.

Таким образом, мое изображение в презентации B отличается от изображения, полученного из презентации A (например, любое обрезанное изображение выглядит ужасно).

Вот часть моего кода.

def insert_image(pageElement, page_id):
    image_id = str(uuid.uuid4())
    requests = []
    requests.append({'createImage': {'objectId': image_id, 'url': pageElement['image']['contentUrl'], 'elementProperties': {
        'pageObjectId': page_id, 'size': pageElement['size'], 'transform': pageElement['transform']}}})
    requests.append({'updateImageProperties': {'objectId': image_id,
                                               'imageProperties': pageElement['image']['imageProperties'], 'fields': "outline,shadow,link"}})
    return requests

Есть ли обходной путь для применения правильных свойств к моему изображению B?

Я думаю о двух способах: - использование Google AppScript - сохранение изображения в виде обрезанного изображения на диске

Любая помощь будет удивительной по этому вопросу:)

1 Ответ

0 голосов
/ 04 ноября 2019

Я столкнулся с той же проблемой некоторое время назад. Облом, что свойства обрезки доступны только для чтения. Я нашел не очень идеальное решение. Это не самый быстрый или самый чистый, но он выполняет свою работу. Мой был сделан с Apps Script, но я полагаю, что это должно быть то же самое с пакетными запросами. По существу, следующие шаги:

  1. Измените размер изображения в соответствии с вашими размерами, используя setWidth () и setHeight (). https://developers.google.com/apps-script/reference/slides/image Изображение может быть искажено в зависимости от вашего размера.
  2. Захватите URL-адрес изображения из фигуры. https://developers.google.com/apps-script/reference/slides/image#getContentUrl() Замените изображение в форме тем же URL-адресом и установите для значения кадрирования значение true. https://developers.google.com/apps-script/reference/slides/image#replace(String,Boolean) Это должно привести к сбросу изображения до правильных пропорций, обрезанных в рамке с измененным размером.

К сожалению, это происходит медленно, потому что приходится снова выбирать каждое изображение,Кроме того, вы не можете контролировать точную обрезку. Это будет в центре кадра.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...