Back to devlogs
Typescript · VS Code · Extension

ImageMagick for VS Code 0.3.0: Explorer drag-and-drop

/ / 1 min read

The 0.3.0 release of my ImageMagick VS Code extension fixes drag-and-drop from the Explorer, plus what is coming next.

ImageMagick extension lets you resize, crop, rotate, compress, and convert images inside VS Code, with a live preview and no uploads. The engine is ImageMagick compiled to WebAssembly, running in the webview.
On this page

My ImageMagick extension lets you resize, crop, rotate, compress, and convert images inside VS Code, with a live preview and no uploads. The engine is ImageMagick compiled to WebAssembly, running in the webview.

What 0.3.0 fixes

Dragging an image from the VS Code Explorer onto the preview did nothing. Those drops hand the webview only a file reference, not the file itself, so the drop handler had nothing to read. Now the dropped file is loaded off disk through the extension host, the same path the right-click menu uses. Drags from Finder and File Explorer keep working as before.

Next steps

  • Presets and one-click optimize from the Explorer
  • Strip metadata (EXIF, GPS, color profiles) on export
  • Before and after size with percent saved
  • Compare slider in the preview
  • Responsive size set from one source
  • Color and sharpen adjustments
  • Watermark and text overlay
  • Auto-optimize on save

More soon.

FAQ

Frequently asked

Right-click it in the Explorer, drag it onto the preview, or run "ImageMagick: Open Image" from the command palette.

No. Everything runs locally in the editor through ImageMagick compiled to WebAssembly, so nothing leaves your machine.

JPEG, PNG, WebP, GIF, TIFF, BMP, and AVIF where the bundled build supports it. The extension probes the available encoders at startup and only shows formats it can produce.

Explorer drops pass only a file reference, not the file bytes, so the drop handler had nothing to read. 0.3.0 loads the dropped file off disk through the extension host instead.

Following along? Let's talk.

Start a conversation →