mirror of
https://github.com/igorski/bitmappery.git
synced 2026-06-17 03:34:56 +02:00
c77d0b6ab031fd13fe4066a70a67dd76053f62c0
BitMappery
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.
All self-written ?
Yep, though it helps having worked five years in the photo software industry and having tackled problems before.
BitMappery does however make use of the following excellent libraries to speed up its development:
- Vue with Vuex and VueI18n
- Pickr by Simonwep
- Vue slider component by NightCatSama
- Vue search select by Moreta
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
- Eraser tool
- Color picker should go to toolbox
- When resizing document, positioned layers do not scale their position correctly
- Layer bitmaps and masks must not be stored as Vue observables
- Make canvas only as large as its wrapper. Use viewport in zCanvas to render visible content (requires custom scroll handlers for panning)
- Layer view in options-panel: allow naming, repositioning, toggling visibility and opacity
- Canvas util : store transparency of images into saved document
- Restored base64 images should be treated as binary once more (see layer-factory)
- Zoom set original size isn't that accurate (check also on mobile views), needs calculateMaxScaling ?
- Unload Blobs when images are no longer used in document (see sprite-factory disposeSprite, keep instance count of usages)
- Load/save documents directly from/to Dropbox
- Implement layer rotation
- Implement layer scaling
- Implement rectangular selection
- Implement merged layer selection
- Implement document crop
- Implement clone brush
- Implement change history
- Implement text editing using Google fonts!
- Scale logic should move from zoomable-canvas into zCanvas (as handleInteraction needs to transform offsets by zoom ratio, see LayerSprite!)
Description
No description provided
browserimage-editorimage-processingphoto-editorphotosphotoshoppwapwa-appstypescriptvuevuejswasmwebassembly
Readme
MIT
7 MiB
Languages
TypeScript
68.3%
Vue
28.8%
SCSS
2.1%
HTML
0.4%
C++
0.3%
Other
0.1%