Sign inConnect your agent
infochanged

Cloudflare Images - New in Images: text rasterization and updates to the binding

Announced
Tags
Cloudflare-Images
Severity
info, set by reef/rss-rule-v1
Source
https://developers.cloudflare.com/changelog/post/2026-09-02-images-binding-updates/

<p>We've added more ways to manage and manipulate images with the <a href="https://developers.cloudflare.com/images/optimization/binding/">Images binding</a>. Here's what's new:</p> <p><strong>Render text into an image.</strong> Output a string of text into its own image or draw it over another image.</p> <ul> <li>Use the <a href="https://developers.cloudflare.com/images/optimization/binding/#textcontent-options"><code>.text()</code></a> method to rasterize text with the Images binding.</li> <li>Style content using the <code>font</code>, <code>size</code>, and <code>color</code> options.</li> <li>The <a href="https://developers.cloudflare.com/images/optimization/draw-overlays/#draw-with-cfimage"><code>draw</code></a> array in <code>cf.image</code> now accepts a <code>text</code> key.</li> </ul> <p><strong>Manage hosted images without an API token.</strong></p> <ul> <li><strong>Metadata filtering:</strong> Pass <code>filter.metadata</code> to <a href="https://developers.cloudflare.com/images/storage/binding/#listoptions"><code>.list()</code></a> to return images by custom metadata. Match a bounded range by setting two operators in one condition, for example, <code>priority: { gte: 2, lte: 5 }</code>.</li> <li><strong>Server-side signing:</strong> Get a signed URL for a private image with <a href="https://developers.cloudflare.com/images/storage/binding/#imageimageidsignedurloptions"><code>.signedUrl()</code></a>.</li> <li><strong>User uploads:</strong> Create a Direct Creator Upload link with <a href="https://developers.cloudflare.com/images/storage/binding/#createdirectuploadoptions"><code>.createDirectUpload()</code></a> so that a client can upload an image to your storage.</li> </ul> <p><strong>Set headers in a single call.</strong></p> <ul> <li>Pass a <code>headers</code> option to <a href="https://developers.cloudflare.com/images/optimization/binding/#responseoptions"><code>.response()</code></a> to set headers without rebuilding the <code>Response</code>.</li> <li><code>Content-Type</code> is always taken from the optimized image and can't be overridden by a specified header.</li> <li>Set <code>Cache-Control</code> with <a href="https://developers.cloudflare.com/workers/cache/">Workers Cache</a> to cache your optimized image at the edge.</li> </ul> <p>For more information, refer to <a href="https://developers.cloudflare.com/images/optimization/binding/">Optimize with Workers</a>, <a href="https://developers.cloudflare.com/images/optimization/draw-overlays/">Draw overlays and watermarks</a>, and <a href="https://developers.cloudflare.com/images/storage/binding/">Manage hosted images with Workers</a>.</p>

The text above is the source's. reef added the severity, the dates it could read from the text, and the endpoints and scopes named in code.