Hey! Heads up. We have extracted the core logic from next/image into a new unstable_getImgProps() function.
This allows usage outside of <Image>, such as:
- Working with
background-image or image-set
- Working with canvas
context.drawImage() or simply new Image()
- Working with
<picture> media queries to implement Art Direction or Light/Dark Mode images
Example
import { unstable_getImgProps as getImgProps } from 'next/image'
export default function Page() {
const common = { alt: 'Hero', width: 800, height: 400 }
const { props: { srcSet: dark } } = getImgProps({ ...common, src: '/dark.png' })
const { props: { srcSet: light, ...rest } } = getImgProps({ ...common, src: '/light.png' })
return (<picture>
<source media="(prefers-color-scheme: dark)" srcSet={dark} />
<source media="(prefers-color-scheme: light)" srcSet={light} />
<img {...rest} />
</picture>)
}
PR: vercel/next.js#51205