<p dir="auto">Although Deno is "headless" that does not mean image/canvas processing would be useless. Why? Many of us use "image as data", for example zxy Tiles for map data (elevation is quite popular)</p>
<p dir="auto">And often the results of the computations are exported by creating a canvas with the data and downloading it as an image.</p>
<p dir="auto">I realize we have deno-canvas and skia_canvas<br>
<a href="https://github.com/DjDeveloperr/deno-canvas">https://github.com/DjDeveloperr/deno-canvas</a><br>
<a href="https://github.com/DjDeveloperr/skia_canvas">https://github.com/DjDeveloperr/skia_canvas</a></p>
<p dir="auto">But they both have problems, see:<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1689638757" data-permission-text="Title is private" data-url="https://github.com/denoland/deno/issues/18919" data-hovercard-type="issue" data-hovercard-url="/denoland/deno/issues/18919/hovercard" href="https://github.com/denoland/deno/issues/18919">#18919</a><br>
.. which is continues here: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1689659615" data-permission-text="Title is private" data-url="https://github.com/DjDeveloperr/deno-canvas/issues/34" data-hovercard-type="issue" data-hovercard-url="/DjDeveloperr/deno-canvas/issues/34/hovercard" href="https://github.com/DjDeveloperr/deno-canvas/issues/34">DjDeveloperr/deno-canvas#34</a><br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1724852441" data-permission-text="Title is private" data-url="https://github.com/denoland/deno/issues/19247" data-hovercard-type="issue" data-hovercard-url="/denoland/deno/issues/19247/hovercard" href="https://github.com/denoland/deno/issues/19247">#19247</a></p>
<p dir="auto">I should add that I used these to test 23 agent based models with deno, replacing a prior fragile Puppeteer solution (to run them in the browser). The runtime dropped drastically: from 3 minutes to 6 seconds (using 23 Deno workers)</p>
<p dir="auto">So some really important "image as data" work is limping along with the current canvas/image libraries but having the browser and Deno have exactly the same API would be far better.</p>
<p dir="auto">I propose Deno match the browser's canvas/image API, that is createCanvas and ImageBitmap.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="404901651" data-permission-text="Title is private" data-url="https://github.com/denoland/deno/issues/1629" data-hovercard-type="issue" data-hovercard-url="/denoland/deno/issues/1629/hovercard" href="https://github.com/denoland/deno/issues/1629">#1629</a> is about WebGL, it will likely take a lot of time to implement.<br>
I think add <strong>OffscreenCanvas &amp; CanvasRenderingContext2D</strong> interface at first is a good idea for now.<br>
A lot of server-side image process like <a href="https://shields.io" rel="nofollow">shields.io</a> can be done in OffscreenCanvas with 2d renderer<br>
(and it should be able to load image from disk / web / memory.)</p>
<ul dir="auto">
<li>Maybe render text will be a problem<br>
Read from ttf directly? &lt;- so we need a FontFace api with local file support<br>
Use system font registry?</li>
</ul>