Как вставить картинку в html на фон: Как добавить фоновый рисунок на веб-страницу?

Содержание

Как добавить фоновое изображение в сообщение?

Содержание:

Чтобы твоё сообщение выделялось, ты можешь добавить фоновое изображение в сообщение или секцию. Фоновые изображения можно использовать, чтобы создать повторяющийся узор, или установить изображение за контентом сообщения.

Обратите внимание, что не все почтовые клиенты поддерживают фоновые изображения. At the moment, background images are supported by these main email clients В данный момент фоновые изображения поддерживаются следующими почтовыми клиентами:

  • Gmail,
  • Yahoo!,
  • iOS Mail,
  • Apple Mail.

На сегодняшний день фоновые изображения центрируются и повторяются горизонтально и вертикально.

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


Например, если текст белый и изображение синее, если не выбрать резервный цвет фона, текст не будет видно на белом фоне. Если вы отправите такое сообщение подписчику, почтовый клиент которого не поддерживает фоновые изображения, текст в нём сольётся с фоном.

Как добавить фоновое изображение в сообщение

Чтобы добавить фоновое изображение в сообщение:

  1. В редакторе сообщений откройте вкладку Стиль письма.
  2. Кликните Цвет фона, чтобы выбрать резервный цвет .
  3. Выберите опцию Фоновое изображение.
  4. Вы можете добавить изображение из Файлов и изображений, кликнув Добавить изображение. В качестве альтернативы вы можете ввести URL изображения, и оно будет установлено, как фоновое.
  5. После выбора изображения у вас появится возможность Заменить или Изменить его. Изменение сообщения происходит в отдельном редакторе.
    Вы можете узнать о нём больше в этой статье.

Изображение будет добавлено по всей поверхности сообщения.

Добавление фонового изображения в секцию

Чтобы добавить фоновое изображение только в одну из секций:

  1. Кликните секцию в редакторе. По правой стороне откроются параметры.
  2. В Свойствах секции выберите резервный цвет фона.
  3. Включите опцию Фоновое изображение.
  4. Вы можете добавить изображение из Файлов и изображений, кликнув Добавить изображение. В качестве альтернативы вы можете ввести URL изображения, и оно будет установлено, как фоновое.
  5. После выбора изображения у вас появится возможность Заменить или Изменить его. Изменение сообщения происходит в отдельном редакторе. Вы можете узнать о нём больше в этой статье.
  6. Ниже, в секции Ширина фона, вы можете выбрать ширину изображения – по ширине сообщения или по ширине всего экрана.

Изображение будет добавлено в качестве фона секции.

Популярные ресурсы

  • Как масштабировать онлайн-бизнес с воронками конверсии
  • Как Продавать Онлайн-Курс: Пошаговое Руководство

Поместите изображение поверх другого изображения с помощью 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) } }
    • Использовать приоритет , если изображение находится выше сгиба
  • Firefox 67+ отображает белый фон при загрузке. Возможные решения:
    • Включить форматы AVIF
    • Использовать заполнитель = "размытие"

Для компонента требуются следующие свойства.

src

Должен быть одним из следующих:

  1. Статически импортированный файл изображения или
  2. Строка пути. Это может быть абсолютный внешний URL, или внутренний путь в зависимости от реквизита загрузчика.

При использовании внешнего URL-адреса необходимо добавить его в remotePatterns в next.config.js .

width

Свойство width представляет ширину рендеринга в пикселях, поэтому оно влияет на размер изображения.

Требуется, за исключением статически импортированных изображений или изображений со свойством fill .

height

Свойство height представляет визуализируемую высоту в пикселях, поэтому оно влияет на размер изображения.

Требуется, за исключением статически импортированных изображений или изображений с заполните свойство .

alt

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

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

Если изображение чисто декоративное или не предназначено для пользователя, свойство alt должно быть пустой строкой ( alt="" ).

Подробнее

Компонент принимает ряд дополнительных свойств помимо тех, которые требуются. В этом разделе описаны наиболее часто используемые свойства компонента Image. Подробнее о редко используемых свойствах см. в разделе «Дополнительные реквизиты».

загрузчик

Пользовательская функция, используемая для разрешения URL-адресов изображений.

Загрузчик — это функция, возвращающая строку 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.