2020-12-18 11:20:22 +01:00
2020-12-18 11:20:22 +01:00
2020-12-10 19:59:19 +01:00
2020-12-10 19:59:19 +01:00
2020-12-10 19:59:19 +01:00
2020-12-12 11:00:10 +01:00
2020-12-10 19:59:19 +01:00

PhotoMound

So you are rebuilding Photoshop in the browser ?

No, I'm building a tool that does the bare minimum what I require and what I don't find in other open source tools. That doesn't mean of course that contributions related to Photoshop-esque features aren't welcomed.

Dropbox integration

Requires you to register a client id or access token.

Project setup

npm install

Compiles and hot-reloads for development

npm run serve

Compiles and minifies for production

npm run build

Run your unit tests

npm run test

Lints and fixes files

npm run lint

TODO / Roadmap

  • Unit tests for factories
  • DrawableLayer should only draw when brush too lis active
  • Canvas clearRect() is not doing full width and height ?
  • Layer view in options-panel: allow naming, repositioning, toggle visibility, set as mask
  • Canvas util : store transparency of images
  • Restored base64 images should be treated as binary once more (see layer-factory)
  • Add brush options > size, transparency
  • scale logic should move from zoomable-canvas into zCanvas (as handleInteraction needs to transform offsets by zoom ratio, see DrawableLayer!)
  • adjust scaling (on widescreen images scale in the width, rather than go for full height and zoomed out mode)
  • Zoom in should be center based
  • Image position must be made persistent (now isn't on document switch)
  • Implement selections
  • Unload Blobs when images are no longer used in document (see sprite-factory disposeSprite, keep instance count of usages)
  • Export output to image file (by rendering document content on separate canvas instead of taking snapshot at incorrect scale)
  • Load/save documents from/to Dropbox
  • Use hand cursor when draggable
  • Use paint brush cursor when painting
  • Add tools for layer rotation and scaling
  • Implement clone brush
  • Implement document crop
  • Implement change history
Languages
TypeScript 68.3%
Vue 28.8%
SCSS 2.1%
HTML 0.4%
C++ 0.3%
Other 0.1%