Image Editor

Yan Minagawa

Crop, mark up and redact a picture from the room, and send the edited copy back

CommunityProductivity

Screenshots

Screenshot 1 of Image Editor Screenshot 2 of Image Editor Screenshot 3 of Image Editor

About this app

Pin it in a room and it shows the pictures posted there. Pick one, or open one from your device, and edit it in place. You can crop, rotate and mirror it, adjust brightness, contrast and saturation, draw freehand, add arrows and text, and black out or pixelate what nobody should see. Send to room posts the result as a new picture that replies to the original. The original stays where it is, and nothing rewrites history.

It works in end-to-end encrypted rooms. The client hands the widget the ciphertext the media repository serves. The widget checks its SHA-256 and decrypts it with the file key from the message. It learns the file keys of the pictures it lists, never a room key. The edited copy is always encrypted before upload, with a fresh key that travels in the room's own encrypted message, so the media repository never holds the new pixels in the clear.

Re-encoding drops the original's EXIF data, so location and camera details are not in the copy. Black out is the default for redaction: pixelated text can sometimes be recovered, a black box cannot.

Everything runs in the browser on a plain canvas. There is no server, no network access after load, and one dependency (matrix-widget-api); the whole widget is about 40 KB.

The origin serving this widget sees the pictures you open in it. Host it yourself if that matters, and never on the same origin as your Matrix client.

Add to a room

Paste this into any room you may configure — Element and most clients understand /addwidget:

/addwidget https://marcade.store/apps/de.minagawa.image-editor/0.1.0/

Pin it with a plain /addwidget and it lists the room's pictures. A host can also open one picture directly with `?mxc=` (plus `enc=` for an encrypted one, in the fragment); then it does not ask to read the room.

Rooms should pin the versioned URL above. https://marcade.store/apps/de.minagawa.image-editor/latest/ always points at the newest release.

Name and icon in Element

/addwidget can carry only the URL: Element lists the app as “Custom” without an icon. Add the Marcade Store once per room and it gives every Marcade app pasted in there its name and icon, and tells you when an update is out.

/addwidget https://marcade.store/apps/de.minagawa.marcade-store/0.1.4/

Permissions

Capabilities this widget may request. The Marcade Player asks for your consent before granting any of them.

What's new in 0.1.0

First release. - Lists the room's pictures, or opens one from your device. - Crop, rotate, mirror, brightness/contrast/saturation. - Draw, arrows, text; black out or pixelate areas. - Undo and redo for every step. - Sends the edited copy back as a reply to the original, always encrypted. - Works in end-to-end encrypted rooms; strips EXIF data from the copy. - Light and dark themes; no server, no network access after load.

Information

Version
0.1.0
Section
Community — Built by Marcade CI from a pinned commit; the capability list has been audited.
License
AGPL-3.0-only
Author
Yan Minagawa
Encrypted rooms
Supported
Widget ID
de.minagawa.image-editor