Подтвердить что ты не робот

Список всех сервисов изображений приложений App Engine Параметры get_serving_url() URI

В ответ на еще один вопрос комментатор упомянул недокументированный параметр URI, о котором я не знал, чтобы переворачивать изображения по горизонтали/вертикали с помощью службы изображений App Engine.

В документации упоминаются несколько основных опций:

  • = s0 — полноразмерная
  • = s640 — длинный край 640px длиной
  • = s640-c — Площадь 640px

Было бы неплохо создать исчерпывающий список опций, или если кто-то может предоставить дополнительные параметры, которые они знают здесь, чтобы служить в качестве фактической документации.

4b9b3361

Ответ 1

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

Пример использования

Мы можем выполнять различные преобразования изображений, привязывая строки к концу URL-адреса изображения на основе блога App Engine, следуя символу =. Параметры можно объединить, разделив их на дефисы, например:

http://[image-url]=s200-fh-p-b10-c0xFFFF0000

или

http://[image-url]=s200-r90-cc-c0xFF00FF00-fSoften=1,20,0:

... которые имеют следующий эффект (документация ниже):

Qpw9JC0fYPvlOgW7o1sB3RPKFbEAacFxIJBOsJmemT1vMfWVEk8-37iLiwfVZBGDBjZo64gj68WfiW7DZ0EFa9nxyfr1c12Z1f7KQg=s200Qpw9JC0fYPvlOgW7o1sB3RPKFbEAacFxIJBOsJmemT1vMfWVEk8-37iLiwfVZBGDBjZo64gj68WfiW7DZ0EFa9nxyfr1c12Z1f7KQg=s200-fh-p-b10-c0xFFFF0000Qpw9JC0fYPvlOgW7o1sB3RPKFbEAacFxIJBOsJmemT1vMfWVEk8-37iLiwfVZBGDBjZo64gj68WfiW7DZ0EFa9nxyfr1c12Z1f7KQg=s200-r90-c0xFF00FF00-cc-fSoften=1,10,0:

В качестве примера того, насколько это удивительно, здесь анимированный GIF, сокращенный и инвертированный:

Cu_mVt3Mb2HuA600YgMUA41KVSUZIfBxTiCWLXE0EqmN_2hZZ1ZhrcR1LrEOXzfDeMoZTsIqWnNMAQL5VNBHHiGPzqQhhWepnnqNzzc=w300-h200-cCu_mVt3Mb2HuA600YgMUA41KVSUZIfBxTiCWLXE0EqmN_2hZZ1ZhrcR1LrEOXzfDeMoZTsIqWnNMAQL5VNBHHiGPzqQhhWepnnqNzzc=h200-fInvert=1

& hellip; который мы затем можем преобразовать в видео MP4 с одним дополнительным параметром: нажмите, чтобы увидеть версию MP4


SIZE/CROP

  • s640 — генерирует изображение 640 пикселей при наибольшем размере
  • s0 — оригинальный размер изображение
  • w100 — генерирует изображение шириной 100 пикселей.
  • h100 — генерирует изображение высотой 100 пикселей.
  • s (без значения) — растягивает изображение в соответствии с размерами
  • c — изображения культур в указанные размеры.
  • n — так же, как c, но посевы из центра.
  • p — умный квадрат, попытки обрезать лица
  • pp — чередуя умную квадратную культуру, не обрезает лица (?)
  • cc — генерирует круговое изображение
  • ci — квадратная культура до наименьшего из: ширина, высота или заданный параметр = s
  • nu — нет-апскейлинг. Отключает изменение размера изображения до его первоначального разрешения.

PAN AND ZOOM

  • x, y, z: — панорамирование и масштабирование черепичного изображения. Они не влияют на изображение с показом или без параметра авторизации в какой-либо форме (см. Googleartproject.com).

ПОВОРОТ

  • fv — перевернуть вертикально
  • fh — flip горизонтально
  • r {90, 180, 270} — поворачивает изображение 90, 180 или 270 градусов по часовой стрелке

ФОРМАТ ИЗОБРАЖЕНИЯ

  • rj - заставляет результирующее изображение быть JPG
  • rp - заставляет результирующее изображение быть PNG
  • rw - заставляет результирующее изображение быть WebP
  • rg - заставляет результирующее изображение быть GIF

  • v {0,1,2,3} - устанавливает изображение в другой формат (работает с JPG и WebP)

Принудительные выходы PNG, WebP и GIF могут работать в сочетании с круговыми культурами для прозрачного фона. Формирование JPG можно комбинировать с цветом границы, чтобы заполнить фон в прозрачных изображениях.

АНИМАЦИОННЫЕ GIF

  • rh — генерирует MP4 из входного изображения
  • k — убить анимацию (создает статическое изображение)

MISC.

  • b10 — добавьте границу 10px к изображению
  • c0xAARRGGBB — установить цвет границы, например. = c0xffff0000 для красного
  • d — добавляет заголовок, чтобы вызвать загрузку браузера.
  • e7 — установить максимальный заголовок управления кешем при ответе на 7 дней
  • l100 — устанавливает качество JPEG до 100% (1-100).
  • h — отвечает на HTML-страницу, содержащую изображение
  • g — отвечает XML, используемым панорамированием/масштабированием Google

Фильтры

  • fSoften = 1,100,0: - где 100 может перейти от 0 до 100, чтобы размыть изображение.
  • fVignette = 1,100,1,4,0,000000, где 100 управляет размером градиента, а 000000 - RRGGBB цвета тени границы
  • fInvert = 0,1 инвертирует изображение независимо от предоставленного значения
  • fbw = 0,1 делает изображение черно-белым независимо от предоставленного значения

Неизвестные параметры

Эти параметры были замечены в использовании, но их эффект неизвестен: нет, nd, mv

Предостережения

Некоторые параметры (например, = l для качества JPEG), похоже, не генерируют новые изображения. Если вы измените другой вариант (размер и т.д.) И измените значение l, изменение качества должно быть видимым. Некоторые варианты также плохо работают вместе. Все это недокументировано Google, возможно, с полным основанием.

Кроме того, вероятно, неплохо зависеть от любого из этих вариантов, существующих навсегда. Google может удалить большинство из них без уведомления в любое время.

Ответ 2

Подробное расследование v

Как я его обнаружил

Я обнаружил вариант v действительно непреднамеренно!

Когда-нибудь, когда я изучал заголовки ответов на изображение, я нашел атрибут etag со значением, установленным на v1. Поскольку я еще не видел параметр v, я просто попытался добавить его в URL-адрес изображения, и он сработает! Несмотря на то, что значение атрибута заголовка, вероятно, не имеет ничего общего с опцией v, это помогло мне случайно найти его.

Исследование влияния эффекта

Во-первых, я заметил, что установка v0 и не установка v привела к тому же ответу, который указывает, что v0 возвращает исходное изображение без опции v (так же, как с помощью s0 on опция s вернет исходный размер).

Затем я заметил, что установка v1, v2 и v3 постепенно возвращает изображение с меньшим размером (весом) контента и визуально становится хуже. Интересно, что установка v4, v5 и т.д. Не продолжала оптимизировать ее.

Исследование влияния эффекта

В другой день я тестировал одни и те же параметры на другом изображении и обнаружил, что ничего не произошло. Это было интересно: вариант, который работает для изображения и не работает для другого, поэтому я начал тестировать, какая разница между изображениями. Пересмотрев список параметров, мне показалось, что это может быть тип изображения, и это действительно так! Первый тип изображения, который я попробовал параметр v, был JPEG, а второй - PNG. Таким образом, я мог бы воспроизвести тот же эффект, установив второй с помощью rj и v3!

Следовательно, я искал интернет о типах JPEG, и интересно, что я нашел некоторые источники (как вы можете видеть здесь, и здесь), объясняя три типа JPEG: базовый стандарт, базовый оптимизированный и прогрессивный, идеально подходящий для трех вариантов, доступных в параметрах v!

Исследование, когда эффект работает

Я попытался использовать ту же опцию v для других типов изображений и обнаружил, что WebP также поддерживает тот же тип персонализированного типа, также постепенно оптимизирует изображение по весу и качеству (но значительно меньше по качеству, чем JPEG) в тот же диапазон между v0 и v3. К сожалению, я еще не нашел источников разных типов WebP.

Кроме того, он ничего не менял при использовании в GIF, но, как тип PNG, вы также можете комбинировать свои параметры с rj и v3, но вы (конечно) потеряете анимацию GIF и качество.

Ответ 3

Как ни печально, как я вам рассказываю, я не думаю, что если вы не находитесь в Google, эта документация имеет открытый характер: (.

Developers.google.com ЗАПОЛНЯЕТСЯ материалом, но не всегда полным/легко найти/понять. Пока Google не построит инструмент с открытым доступом, мы должны работать с тем, что у нас есть.