Как добавить фоновое изображение в сообщение?
Содержание:
Чтобы твоё сообщение выделялось, ты можешь добавить фоновое изображение в сообщение или секцию. Фоновые изображения можно использовать, чтобы создать повторяющийся узор, или установить изображение за контентом сообщения.
Обратите внимание, что не все почтовые клиенты поддерживают фоновые изображения. At the moment, background images are supported by these main email clients В данный момент фоновые изображения поддерживаются следующими почтовыми клиентами:
- Gmail,
- Yahoo!,
- iOS Mail,
- Apple Mail.
На сегодняшний день фоновые изображения центрируются и повторяются горизонтально и вертикально.
Лучшей практикой при добавлении фонового изображения является выбор резервного цвета фона, совпадающего по цвету с фоновым изображением. Если вы не выберете Если вы не выберете резервный цвет фона, текст сообщения может быть невидим в почтовых клиентах, которые не поддерживают фоновые изображения.
Например, если текст белый и изображение синее, если не выбрать резервный цвет фона, текст не будет видно на белом фоне. Если вы отправите такое сообщение подписчику, почтовый клиент которого не поддерживает фоновые изображения, текст в нём сольётся с фоном.
Как добавить фоновое изображение в сообщение
Чтобы добавить фоновое изображение в сообщение:
- В редакторе сообщений откройте вкладку Стиль письма.
- Кликните Цвет фона, чтобы выбрать резервный цвет .
- Выберите опцию Фоновое изображение.
- Вы можете добавить изображение из Файлов и изображений, кликнув Добавить изображение. В качестве альтернативы вы можете ввести URL изображения, и оно будет установлено, как фоновое.
- После выбора изображения у вас появится возможность Заменить или Изменить его. Изменение сообщения происходит в отдельном редакторе. Вы можете узнать о нём больше в этой статье.
Изображение будет добавлено по всей поверхности сообщения.
Добавление фонового изображения в секцию
Чтобы добавить фоновое изображение только в одну из секций:
- Кликните секцию в редакторе. По правой стороне откроются параметры.
- В Свойствах секции выберите резервный цвет фона.
- Включите опцию Фоновое изображение.
- Вы можете добавить изображение из Файлов и изображений, кликнув Добавить изображение. В качестве альтернативы вы можете ввести URL изображения, и оно будет установлено, как фоновое.
- После выбора изображения у вас появится возможность Заменить или Изменить его. Изменение сообщения происходит в отдельном редакторе. Вы можете узнать о нём больше в этой статье.
- Ниже, в секции Ширина фона, вы можете выбрать ширину изображения – по ширине сообщения или по ширине всего экрана.
Изображение будет добавлено в качестве фона секции.
Популярные ресурсы
- Как масштабировать онлайн-бизнес с воронками конверсии
- Как Продавать Онлайн-Курс: Пошаговое Руководство
Поместите изображение поверх другого изображения с помощью 3 бесплатных инструментов
Вы ищете простой способ разместить картинка поверх другой картинки?
При редактировании изображений вам часто нужно скопировать изображение, а затем вставить его в другое. В этом посте рассматриваются 3 бесплатных метода вставки изображения в другое изображение. Вы можете продолжить чтение и использовать предпочитаемый способ сделать это.
- Часть 1. Бесплатно Поместите изображение на другое изображение онлайн
- Часть 2. Поместите изображение поверх другого изображения на ПК с Windows
- Часть 3. Вставьте изображение в другое изображение на Mac
- Часть 4. Часто задаваемые вопросы о том, как наложить одно изображение на другое изображение
Часть 1. Как бесплатно наложить картинку на другую картинку онлайн
Чтобы легко наложить картинку на другую картинку онлайн, можно попробовать популярную Бесплатная программа для удаления фона онлайн. Он специально разработан для удаления фона фотографии. Кроме того, он содержит множество основных функций редактирования изображений. Это позволяет легко вставлять фотографию в другой файл изображения. Более того, он может точно извлечь полезный контент из вашего изображения с помощью передовой технологии искусственного интеллекта, а затем вставить его в другое изображение в соответствии с вашими потребностями.
Шаг 1:
Этот бесплатный онлайн-редактор изображений совместим со всеми часто используемыми веб-браузерами, включая Chrome, Safari, Microsoft IE, Edge, Safari, Yahoo и Firefox. Вы можете открыть браузер и перейти к Бесплатная программа для удаления фона онлайн стр.
Шаг 2:
Когда вы попадете на сайт, вы можете нажать кнопку Загрузить портрет кнопку для просмотра и выбора изображения, которое вы хотите навести на другое изображение. Он поддерживает любые популярные форматы изображений, такие как JPG, JPEG, PNG и другие.
Шаг 3:
Free Background Remover Online автоматически удалит ненужный фон. Если вам нужно вставить целое изображение в другое изображение, вы можете использовать Сохранить or Стереть способ настроить его.
Шаг 4:
Нажмите Редактировать на левой панели, чтобы получить доступ к дополнительным функциям редактирования. Здесь вы можете нажать на Фото товара кнопку для загрузки другого изображения. Вы можете добавить изображение с локального жесткого диска или из Интернета. На этом этапе вы можете использовать его урожай функции удалить ненужные объекты с фотографий как тебе нравится.
Шаг 5:
Вы можете свободно перетаскивать изображение, чтобы поместить его в нужное место. Кроме того, вы можете изменить его размер в соответствии с вашими потребностями. Когда вы будете удовлетворены результатом редактирования, вы можете просто нажать на кнопку Скачать кнопку, чтобы сохранить этот отредактированный файл изображения на вашем компьютере в формате PNG.
Часть 2. Как поместить изображение поверх другого изображения в Microsoft Paint
Чтобы наложить изображение на другое изображение на ПК с Windows, вы можете положиться на его предустановленное программное обеспечение для рисования, Microsoft Paint. Эта часть покажет вам, как с его помощью поместить изображение поверх другого изображения.
Шаг 1:
Найдите изображение, которое хотите установить в качестве фона, и щелкните его правой кнопкой мыши. Выберите, чтобы открыть его с помощью Paint. Затем запустится Microsoft Paint с открытым изображением.
Шаг 2:
Нажмите Вставить кнопку в левом верхнем углу, а затем выберите Вставить из вариант из раскрывающегося списка. Во всплывающем окне вы можете выбрать другое изображение, которое хотите поместить поверх исходного.
Шаг 3:
Вы можете свободно регулировать размер и положение добавленного изображения, пока оно не будет соответствовать вашим потребностям. После этого вы можете нажать на верхнюю Файл меню, а затем выберите нужный вариант, чтобы сохранить его на своем ПК.
Часть 3. Как вставить изображение в другое изображение на вашем Mac
Как пользователь Mac, вы можете положиться на предварительный просмотр чтобы поместить изображение поверх другого изображения. Вы можете выполнить следующие шаги, чтобы объединить два изображения.
Шаг 1:
Щелкните правой кнопкой мыши изображение, которое вы хотите поместить на другое изображение, щелкните значок Открыть с помощью во всплывающем меню, а затем выберите использование предварительный просмотр чтобы открыть картинку.
Шаг 2:
Если вы хотите обрезать изображение и удалить фон, вы можете щелкнуть меню «Инструменты», а затем выбрать параметр «Обрезать». Вы также можете использовать Прямоугольное выделение выберите нужную часть и скопируйте ее. Чтобы выбрать весь файл изображения, вы можете просто нажать Command + A, а затем нажать клавиши Command + C, чтобы сделать копию.
Шаг 2:
Откройте другое изображение в режиме предварительного просмотра, а затем нажмите клавиши Command + V, чтобы вставить скопированное изображение. Таким образом, вы можете легко накладывать одно изображение на другое на Mac. После этого вы можете нажать на верхнюю Файл меню и используйте либо Сохраните или вариант экспорта, чтобы сохранить его на вашем компьютере.
Часть 4. Часто задаваемые вопросы о том, как наложить одно изображение на другое изображение
1. Могу ли я напрямую поместить фотографию на другую фотографию на iPhone?
Нет, функции редактирования изображений по умолчанию в приложении «Фотографии» не позволяют напрямую редактировать две фотографии и вставлять изображение в другое. Для этого вам нужно найти стороннее приложение для редактирования изображений в App Store.
2. Как наложить картинку поверх другой картинки с помощью Photoshop?
Если на вашем компьютере установлен Adobe Photoshop, вы можете легко накладывать одну картинку на другую и комбинировать их. Откройте одно изображение в Photoshop, а затем перетащите второе изображение в окно редактирования для добавления. После этого вы можете просто изменить размер добавленного изображения и настроить его положение.
3. Как обрезать фото на iPhone?
Вы можете открыть фотографию, которую хотите обрезать, в приложении «Фотографии», нажать кнопку «Редактировать», а затем использовать функцию «Обрезка», чтобы изменить размер изображения в соответствии с вашими потребностями.
Заключение
Ты можешь научиться как поставить картинку поверх другой картинки с 3 бесплатными инструментами из этого поста. Если у вас есть лучший способ сделать это, вы также можете поделиться им в комментариях с другими читателями.
Что вы думаете об этом посте.
- 1
- 2
- 3
- 4
- 5
Прекрасно
Рейтинг: 4.8 / 5 (на основе голосов 286)Подпишитесь на нас в
Оставьте свой комментарий и присоединяйтесь к нашему обсуждению
Альтернативный текст для фоновых изображений, доступность альтернативного текста
Избегайте представления информационных изображений в фонах CSS
Если ваше изображение содержит важную информацию для конечного пользователя,
тогда он должен быть предоставлен в HTML <изображение>
тег с правильным или
текст. Спецификация CSS говорит следующее:
Из соображений доступности авторы не должны использовать фон изображения как единственный способ передачи важной информации. См. Интернет Руководство по доступности контента F3 [WCAG20] . Изображения недоступны в неграфических презентациях, и фоновые изображения могут быть отключены в высококонтрастные режимы отображения. Источник .
Не могу избежать использования изображений CSS или хочу изменить текст для «неважные» фотографии окружения и т. д.?
Спецификация CSS делает это «СЛЕДУЕТ», а не «ОБЯЗАТЕЛЬНО», потому что бывают случаи, когда визуальный дизайн или существующий код затрудняет преобразование его в HTML-изображение без переделки интерфейса. В других случаях автор может захотеть для предоставления альтернативного текста для фонового изображения, которое является , а не «важно» для понимания содержания, но из вежливости для пользователей программ чтения с экрана, которые предпочитают знать, что находится на изображении. Вот подробная статья об эмбиенте изображения против чистого украшения против информационных изображений.
При предоставлении альтернативного текста для изображения CSS количество соображений
Если <дел>
внутри тега есть какой-либо контент, то роль = "изображение"
и ария-этикетка
может скрыть внутреннее содержимое из-за доступного
расчет имени
, или вспомогательные технологии могут просто игнорировать ария-этикетка
.
Так что не помещайте фоновое изображение CSS в <дел>
который содержит любой контент. Лучше всего использовать пустой <диапазон>
и ария-этикетка
с роль = "изображение"
Сделайте это:
<дел>
<диапазон
role="img" aria-label="[разместите здесь замещающий текст]>
[весь остальной контент]
Не делайте этого:
[все остальные
моего содержания]
Что делать, если автор должен иметь CSS-изображение в div, который содержит контент
Иногда в стеке CSS есть зависимости и возня с это может привести к нарушению дизайна и верстки сайта или запросу изменить код мог зависнуть в одобрении от различных заинтересованные стороны. В случаях, когда автор должен иметь фон изображение в
<дел >
<диапазон
role="img" aria-label="[разместите здесь замещающий текст]>
[весь остальной контент]
Это хак, потому что семантически альтернативный текст не включен.
элемент, который на самом деле имеет изображение. Однако с экрана
точка зрения читателя <дел>
с фоновым изображением игнорируется, поэтому размещение <диапазон>
сразу после него будет предоставлять эту информацию таким образом, что
будет казаться, что альтернативный текст находится в том же месте, что и
изображение на заднем плане.
Сводка
- Старайтесь не использовать CSS для важных информационных изображений
- Для фоновых изображений, созданных с помощью CSS, рекомендуется
предоставить альтернативный текст. При этом поместите изображение в собственное
пустой
aria-label
иrole="изображение
Это также верно, в ситуации где CSS должен использоваться для информационного содержания. - Если с изображением CSS абсолютно ДОЛЖЕН содержать другой контент, затем укажите пустой
aria-label
иrole="img"
сразу после, который имеет изображение.Не стесняйтесь комментировать в Твиттере @davidmacd
Информация об авторе:
Дэвид Макдональд — ветеран-член WCAG, соредактор книги «Использование WAI ARIA в HTML5 и член Целевой группы по доступности HTML5. Мнения мои собственные.
Все статьи блога
next/image | Next.js
Примеры- Компонент изображения
Версия Изменения v13.2.0
добавлена конфигурация contentDispositionType
.v13.0.6
ссылка
добавлена опора.v13.0.0
layout
,objectFit
,objectPosition
,lazyBoundary
,lazyRoot
реквизит удален. Требуетсяили
.onLoadingComplete
получает ссылку наimg
элемент. Конфиг встроенного загрузчика удален.v12.3.0
remotePatterns
инеоптимизированные
конфигурация стабильна.v12.2.0
Экспериментальная добавлена конфигурация remotePatterns
и экспериментальнаянеоптимизированная
.layout="raw"
удален.v12.1.1
добавлен стиль
. Экспериментальная* поддержка 9Добавлено 0005 layout=»raw» .v12.1.0
добавлено опасное разрешение SVG
иcontentSecurityPolicy
. Добавленv12. 0.9
lazyRoot
.v12.0.0
добавлена конфигурация форматов
.
Добавлена поддержка AVIF.
Оболочкаизменена наv11.1.0
добавлены реквизиты onLoadingComplete
иlazyBoundary
.v11.0.0
src
prop поддерживает статический импорт.
заполнитель
добавлен реквизит.
blurDataURL
добавлен реквизит.v10.0.5
загрузчик
проп добавлен.v10.0.1
макет 9Добавлен реквизит 0006.
v10.0.0
следующее/изображение
введено.Примечание : Эта страница является справочной информацией по API для компонента
next/image
. Обзор функций и информацию об использовании см. в документации по компоненту изображения и оптимизации изображения.Примечание . Если вы используете версию Next.js до 13, вам следует использовать документацию next/legacy/image, поскольку компонент был переименован.
Этот компонент
next/image
использует встроенную ленивую загрузку браузера, которая может вернуться к быстрой загрузке для старых браузеров до Safari 15.4. При использовании заполнителя размытия старые браузеры до Safari 12 будут использовать пустой заполнитель. При использовании стилей с ширинойauto
можно вызвать сдвиг макета в старых браузерах до Safari 15, которые не сохраняют соотношение сторон. Подробнее см. в этом видео MDN.- Safari 15 и 16 отображают серую рамку при загрузке. Safari 16.4 исправил эту проблему. Возможные решения:
- Используйте CSS
@supports (шрифт: -apple-system-body) и (-webkit-appearance: нет) { img[loading="lazy"] { clip-path: inset(0. 6px) } }
- Использовать
приоритет
, если изображение находится выше сгиба
- Используйте CSS
- Firefox 67+ отображает белый фон при загрузке. Возможные решения:
- Включить форматы AVIF
- Использовать
заполнитель = "размытие"
- Включить форматы AVIF
Для компонента
src
Должен быть одним из следующих:
- Статически импортированный файл изображения или
- Строка пути. Это может быть абсолютный внешний URL, или внутренний путь в зависимости от реквизита загрузчика.
При использовании внешнего URL-адреса необходимо добавить его в remotePatterns в
next.config.js
.width
Свойство
width
представляет ширину рендеринга в пикселях, поэтому оно влияет на размер изображения.Требуется, за исключением статически импортированных изображений или изображений со свойством
fill
.height
Свойство
height
представляет визуализируемую высоту в пикселях, поэтому оно влияет на размер изображения.Требуется, за исключением статически импортированных изображений или изображений с
заполните свойство
.alt
Свойство
alt
используется для описания изображения для программ чтения с экрана и поисковых систем. Это также резервный текст, если изображения были отключены или при загрузке изображения возникла ошибка.Должен содержать текст, который мог бы заменить изображение без изменения смысла страницы. Он не предназначен для дополнения изображения и не должен повторять информацию, уже представленную в подписях над или под изображением.
Если изображение чисто декоративное или не предназначено для пользователя, свойство
alt
должно быть пустой строкой (alt=""
).Подробнее
Компонент
загрузчик
Пользовательская функция, используемая для разрешения URL-адресов изображений.
Загрузчик
-
src
-
ширина
-
качество
Вот пример использования пользовательского загрузчика:
импортировать изображение из 'next/image' const myLoader = ({ источник, ширина, качество }) => { return `https://example.com/${src}?w=${width}&q=${качество || 75}` } const MyImage = (реквизит) => { возвращаться ( <Изображение загрузчик = {мой загрузчик} источник = "me.png" alt="Изображение автора" ширина={500} высота={500} /> ) }
В качестве альтернативы вы можете использовать конфигурацию loaderFile в файле next. config.js для настройки каждого экземпляра
next/image
в вашем приложении без передачи реквизита.fill
Логическое значение, которое заставляет изображение заполнять родительский элемент вместо установки
ширины
ивысоты
.Родительский элемент должен назначить позицию
: "относительная"
, позиция: "фиксированная"
или позиция: "абсолютная"
стиль.По умолчанию элементу img будет автоматически присвоена позиция
: «абсолютный» стиль
.По умолчанию изображение подгоняется под размер контейнера. Вы можете предпочесть установить
object-fit: "contain"
для изображения, которое помещено в почтовый ящик, чтобы соответствовать контейнеру и сохранить соотношение сторон.В качестве альтернативы,
object-fit: "cover"
приведет к тому, что изображение заполнит весь контейнер и будет обрезано для сохранения соотношения сторон. Чтобы это выглядело правильно,переполнение: "скрытый"
стиль должен быть присвоен родительскому элементу.См. также:
- позиция
- подходит для объекта
- объект-позиция
размеры
Строка, предоставляющая информацию о том, насколько широким будет изображение в различных контрольных точках. Значение размера
Свойство
размеры
служит двум важным целям, связанным с производительностью изображения:Во-первых, значение размера
next/image
. Когда браузер делает выбор, ему еще не известен размер изображения на странице, поэтому он выбирает изображение того же или большего размера, чем область просмотра. Свойстворазмеры
позволяет вам сообщить браузеру, что изображение на самом деле будет меньше, чем полноэкранный режим. Если вы не укажете размерfill
используется значение по умолчанию100vw
(на всю ширину экрана).Во-вторых, свойство
размеры
настраивает, какnext/image
автоматически создает исходный набор изображений. Если значениеразмеров
отсутствует, создается небольшой исходный набор, подходящий для изображения фиксированного размера. Если определеноразмеров
, создается большой исходный набор, подходящий для адаптивного изображения. Еслиразмеры
включает такие размеры, как50vw
, которые представляют собой процент ширины области просмотра, тогда исходный набор обрезается, чтобы не включать какие-либо значения, которые слишком малы, чтобы когда-либо быть необходимыми.Например, если вы знаете, что ваш стиль приведет к тому, что изображение будет отображаться во всю ширину на мобильных устройствах, в макете с двумя столбцами на планшетах и в макете с тремя столбцами на дисплеях настольных компьютеров, вы должны включить свойство размеров, такое как следующее:
импортировать изображение из 'следующего/изображения' const Пример = () => (
<Изображение исходный код="/example. png" наполнять />)Этот пример
размеров
может существенно повлиять на показатели производительности. Без размеров33vw
изображение, выбранное с сервера, было бы в 3 раза шире, чем нужно. Поскольку размер файла пропорционален квадрату ширины, безразмеров
пользователь загрузит изображение в 9 раз больше, чем необходимо.Подробнее о размерах
srcset
и- web.dev
- мдн
качество
Качество оптимизированного изображения, целое число от
1
до100
, где100
— это наилучшее качество и, следовательно, наибольший размер файла. По умолчанию75
.priority
При значении true изображение будет иметь высокий приоритет и предварительная загрузка. Ленивая загрузка автоматически отключается для изображений с приоритетом
Вы должны использовать свойство
priority
для любого изображения, обнаруженного как элемент Largest Contentful Paint (LCP). Может оказаться целесообразным иметь несколько приоритетных изображений, поскольку разные изображения могут быть элементами LCP для разных размеров области просмотра.Следует использовать только тогда, когда изображение видно выше сгиба. По умолчанию
false
.заполнитель
Заполнитель для использования во время загрузки изображения. Возможные значения:
размытие
илипустое
. По умолчаниюпусто
.Когда
blur
, свойствоblurDataURL
будет использоваться в качестве заполнителя. Еслиsrc
— это объект из статического импорта, а импортированное изображение —.jpg
,.png
,.webp
или.avif
, тогдаblurDataURL
будет заполнено автоматически.Для динамических изображений необходимо указать свойство
blurDataURL
. Такие решения, как Plaiceholder, могут помочь с созданиемbase64
.Когда
пусто
, во время загрузки изображения не будет заполнителя, только пустое пространство.Попробуйте:
- Демонстрация размытия
- Демонстрация эффекта мерцания с помощью
blurDataURL
prop - Демонстрация цветового эффекта с помощью
blurDataURL
prop
В некоторых случаях может потребоваться более расширенное использование. Компонент
стиль
Позволяет передавать стили CSS базовому элементу изображения.
Также имейте в виду, что необходимые реквизиты
ширины
ивысоты
могут взаимодействовать с вашим стилем. Если вы используете стиль для измененияwidth
, вы также должны установить стильheight="auto"
, иначе ваше изображение будет искажено.onLoadingComplete
Функция обратного вызова, которая вызывается после полной загрузки изображения и удаления заполнителя.
Функция обратного вызова будет вызываться с одним аргументом, ссылкой на базовый элемент
onLoad
Функция обратного вызова, которая вызывается при загрузке изображения.
Обратите внимание, что событие загрузки может произойти до удаления заполнителя и полного декодирования изображения.
Вместо этого используйте
onLoadingComplete
.onError
Функция обратного вызова, которая вызывается, если изображение не загружается.
загрузка
Внимание : Это свойство предназначено только для расширенного использования. Переключение изображение для загрузки с
нетерпеливым
обычно снижает производительность .Мы рекомендуем использовать
свойство приоритета
вместо этого, которое правильно загружает изображение практически для всех случаев использования.Поведение загрузки изображения. По умолчанию
ленивый
.Когда
ленивый
, отложить загрузку изображения до тех пор, пока оно не достигнет расчетного расстояния от окно просмотра.Когда
хочет
, немедленно загрузить образ.Подробнее
blurDataURL
URL-адрес данных для использоваться в качестве изображения-заполнителя перед
src 9Изображение 0006 успешно загружается. Действует только при объединении с заполнителем
="размытие"
.Должно быть изображение в кодировке base64. Оно будет увеличено и размыто, поэтому очень маленькое изображение (10 пикселей или меньше) рекомендуется. Включение больших изображений в качестве заполнителей может снизить производительность вашего приложения.
Попробуйте:
- Демо по умолчанию
blurDataURL
prop - Демонстрация эффекта мерцания с помощью
blurDataURL
prop - Демонстрация цветового эффекта с
blurDataURL
реквизит
Вы также можете сгенерировать сплошной URL-адрес данных, соответствующий изображению.
неоптимизированный
При значении true исходное изображение будет отображаться как есть вместо изменения качества, размер или формат. По умолчанию
false
.импорт изображения из 'следующего/изображения' const UnoptimizedImage = (реквизит) => { вернуть <изображение {... реквизит} неоптимизированное /> }
Начиная с Next.js 12.3.0, этот реквизит можно назначить всем изображениям путем обновления
next.config.js
со следующей конфигурацией:module.exports = { изображений: { неоптимизированный: правда, }, }
Другие свойства компонента
элемент img
за исключением следующего:-
srcSet
. Вместо этого используйте размеры устройств. -
расшифровка
. Это всегда"асинхронный"
.
Удаленные шаблоны
Для защиты вашего приложения от злоумышленников требуется настройка для использования внешних образов. Это гарантирует, что через Next.js Image Optimization API можно будет обслуживать только внешние изображения из вашей учетной записи. Эти внешние образы можно настроить с помощью 9Свойство 0005 remotePatterns в файле
next.config.js
, как показано ниже:module.exports = { изображений: { удаленные шаблоны: [ { протокол: 'https', имя хоста: 'example.com', порт: '', путь: '/account123/**', }, ], }, }
Примечание. В приведенном выше примере свойство
src
дляnext/image
должно начинаться сhttps://example.com/account123/
. Любой другой протокол, имя хоста, порт или несоответствующий путь ответят ошибкой 400 Bad Request.Ниже приведен еще один пример свойства
remotePatterns
в файлеnext.config.js
:module.exports = { изображений: { удаленные шаблоны: [ { протокол: 'https', имя хоста: '**. example.com', }, ], }, }
Примечание. В приведенном выше примере свойство
src
дляnext/image
должно начинаться сhttps://img1.example.com
илиhttps://me.avatar.example.com
или любое количество поддоменов. Любой другой протокол или несоответствующее имя хоста ответит ошибкой 400 Bad Request.Подстановочные знаки могут использоваться как для
pathname
, так и дляhostname
и иметь следующий синтаксис:-
*
соответствует одному сегменту пути или поддомену -
**
соответствует любому количеству сегментов пути в конце или поддоменов в начале
Синтаксис
**
не работает в середине шаблона.Домены
Примечание. Мы рекомендуем вместо этого использовать
remotePatterns
, чтобы вы могли ограничить протокол и путь.Подобно
remotePatterns
, конфигурациядоменов
может использоваться для предоставления списка разрешенных имен хостов для внешних образов.Однако конфигурация
доменов
не поддерживает сопоставление шаблонов с подстановочными знаками и не может ограничивать протокол, порт или имя пути.Ниже приведен пример
domains
свойство в файлеnext.config.js
:module.exports = { изображений: { домены: ['assets.acme.com'], }, }
Конфигурация загрузчика
Если вы хотите использовать облачного провайдера для оптимизации изображений вместо использования встроенного API оптимизации изображений Next.js, вы можете настроить
loaderFile
в вашемnext.config.js
, как показано ниже. :модуль.экспорт = { изображений: { загрузчик: "пользовательский", loaderFile: './my/image/loader.js', }, }
Это должно указывать на файл относительно корня вашего приложения Next.js. Файл должен экспортировать функцию по умолчанию, которая возвращает строку, например:
экспортировать функцию по умолчанию myImageLoader({ src, width, quality }) { return `https://example. com/${src}?w=${width}&q=${качество || 75}` }
Кроме того, вы можете использовать реквизит загрузчика
для настройки каждого экземпляра
next/image
.Примеры:
- Пользовательская конфигурация загрузчика изображений
Следующая конфигурация предназначена для расширенных вариантов использования и обычно не требуется. Если вы решите настроить приведенные ниже свойства, вы переопределите любые изменения значений по умолчанию Next.js в будущих обновлениях.
Размеры устройств
Если вы знаете ожидаемую ширину устройства ваших пользователей, вы можете указать список контрольных точек ширины устройства, используя свойство
deviceSizes
вnext.config.js
. Эти значения ширины используются, когда компонентnext/image
используетразмеры
prop, чтобы обеспечить правильное изображение для устройства пользователя.Если конфигурация не указана, используется значение по умолчанию, указанное ниже.
модуль.экспорт = { изображений: { размер устройства: [640, 750, 828, 1080, 1200, 1920, 2048, 3840], }, }
Размеры изображений
Список ширины изображений можно указать с помощью свойства
images.imageSizes
в файлеnext.config.js
. Эти значения ширины объединяются с массивом размеров устройств для формирования полного массива размеров, используемого для создания наборов srcset изображений.Причина существования двух отдельных списков заключается в том, что imageSizes используется только для изображений, которые обеспечивают
размеров
prop, что указывает на то, что изображение меньше полной ширины экрана. Поэтому все размеры в imageSizes должны быть меньше наименьшего размера в deviceSizes.Если конфигурация не указана, используется значение по умолчанию, указанное ниже.
модуль.экспорт = { изображений: { Размер изображения: [16, 32, 48, 64, 96, 128, 256, 384], }, }
Допустимые форматы
API оптимизации изображений по умолчанию автоматически определяет поддерживаемые браузером форматы изображений с помощью заголовка запроса
Accept
.Если заголовок
Accept
соответствует более чем одному из настроенных форматов, используется первое совпадение в массиве. Поэтому порядок массива имеет значение. Если совпадений нет (или исходное изображение анимировано), API оптимизации изображений вернется к исходному формату изображения.Если конфигурация не указана, используется значение по умолчанию, указанное ниже.
модуль.экспорт = { изображений: { форматы: ['изображение/webp'], }, }
Вы можете включить поддержку AVIF со следующей конфигурацией.
модуль.экспорт = { изображений: { форматы: ['изображение/avif', 'изображение/webp'], }, }
Примечание. Обычно для кодирования AVIF требуется на 20 % больше времени, но сжатие на 20 % меньше по сравнению с WebP. Это означает, что при первом запросе изображения оно обычно выполняется медленнее, а последующие кэшированные запросы будут выполняться быстрее.
Примечание. Если вы самостоятельно размещаете прокси-сервер или CDN перед Next.js, вы должны настроить прокси-сервер для пересылки заголовка
Accept
.Ниже описан алгоритм кэширования для загрузчика по умолчанию. Для всех других загрузчиков обратитесь к документации вашего облачного провайдера.
Изображения динамически оптимизируются по запросу и сохраняются в каталоге
/cache/images Состояние кэша изображения можно определить, прочитав значение заголовка ответа
x-nextjs-cache
. Возможны следующие значения:-
MISS
- путь отсутствует в кеше (встречается не более одного раза, при первом посещении) -
STALE
— путь находится в кеше, но превышено время повторной проверки, поэтому он будет обновлен в фоновом режиме -
HIT
- путь находится в кеше и не превысил время повторной проверки
Срок действия (или, скорее, максимальный возраст) определяется либо конфигурацией
MinimumCacheTTL
, либо заголовком Cache-Control восходящего потока изображения, в зависимости от того, что больше. В частности, используется значение
max-age
заголовкаCache-Control
. Если найдены иs-maxage
, иmax-age
, то предпочтительнееs-maxage
.max-age
также передается любым нижестоящим клиентам, включая CDN и браузеры.- Можно настроить
MinimumCacheTTL
для увеличения продолжительности кэширования, если исходное изображение не включает заголовокCache-Control
или значение очень низкое. - Можно настроить
deviceSizes
иimageSizes
, чтобы уменьшить общее количество возможных генерируемых изображений. - Вы можете настроить форматы, чтобы отключить несколько форматов в пользу одного формата изображения.
Минимальный TTL кэша
Можно настроить время жизни (TTL) в секундах для кэшированных оптимизированных изображений. Во многих случаях лучше использовать импорт статического изображения, который автоматически хеширует содержимое файла и навсегда кэширует изображение с
Cache-Control
заголовокнеизменяемый
.модуль.экспорт = { изображений: { минимальный кэшTTL: 60, }, }
Срок действия (или, скорее, максимальный возраст) оптимизированного образа определяется либо заголовком
MinimumCacheTTL
, либо заголовком восходящего образаCache-Control
, в зависимости от того, что больше.Если вам нужно изменить поведение кэширования для каждого изображения, вы можете настроить заголовки
Cache-Control
для исходного изображения (например,/some-asset.jpg
, а не/_next/image
).В настоящее время нет механизма для аннулирования кеша, поэтому лучше оставить
MinimumCacheTTL
на низком уровне. В противном случае вам может потребоваться вручную изменить реквизитsrc
или удалить/cache/images Отключить статический импорт
Поведение по умолчанию позволяет импортировать статические файлы, такие как
значок импорта из '. /icon.png
, а затем передать его вsrc
свойство.В некоторых случаях вы можете захотеть отключить эту функцию, если она конфликтует с другими подключаемыми модулями, которые ожидают, что импорт будет вести себя по-другому.
Вы можете отключить импорт статических изображений внутри вашего
next.config.js
:module.exports = { изображений: { отключитьStaticImages: правда, }, }
Опасно разрешать SVG
Загрузчик по умолчанию не оптимизирует изображения SVG по нескольким причинам. Во-первых, SVG — это векторный формат, то есть его размер можно изменять без потерь. Во-вторых, SVG имеет многие из тех же функций, что и HTML/CSS, что может привести к уязвимостям без надлежащих заголовков Content Security Policy (CSP).
Если вам нужно обслуживать изображения SVG с помощью API оптимизации изображений по умолчанию, вы можете установить
опасноAllowSVG
внутри вашегоnext.config.js
:module.