Commit Graph

120 Commits

Author SHA1 Message Date
Igor Zinken
b47ba5bcd0 Allow drawing operations on scaled layers (#29)
Allow drawing operations on scaled layers
2023-04-16 10:58:09 +02:00
Igor Zinken
f16c7492e9 Implement support for importing PDF documents (#26)
* Implement support for importing PDF documents
* Optimized lazy loading of third party import services
* Caught issue with corrupt PSD files
* Updated package lockfile
* Added test
2023-04-13 19:50:49 +02:00
Igor Zinken
6d7da9e696 Blend modes are preserved when importing Photoshop PSD documents 2023-04-11 20:36:39 +02:00
Igor Zinken
b3a85bd40b Implemented layer blend modes (#24)
* Initial work on blend modes
* Blend modes are now working
* Some performance improvement
* cleaner code
2023-04-11 20:01:59 +02:00
Igor Zinken
d2b581d2ee Active selections now support multiple non-overlapping shapes
* Renamed Selection data structure. Multiple select begins to work
* Saving and loading of multiple selection shapes implemented
* Renamed Document selection properties to avoid confusion
* Renamed and distributed functions between selection and shape utilities
* Fixes to selection toolbox
* Fixed issue with copying across multiple selections
* Final cleanups
2023-03-31 22:10:41 +02:00
Igor Zinken
ee6dd0b556 Migrated all unit tests to TypeScript 2023-03-23 21:24:56 +01:00
Igor Zinken
8adb358b3b Initial migration from JavaScript to TypeScript 2023-03-20 22:45:49 +01:00
Igor Zinken
1f74f36eed Migrate build from Webpack to Vite 2023-03-19 11:49:18 +01:00
Igor Zinken
4159398352 Implement magic wand tool to select areas by color (#20) 2023-03-12 09:21:35 +01:00
Igor Zinken
63e9676cb1 Added GDPR consent screen prior to using Google Fonts because we can't have nice things 2022-06-30 22:34:33 +02:00
Igor Zinken
7e129fec45 Updated Vuex store unit test to reflect changes made in dialog opening 2022-04-11 21:56:08 +02:00
Igor Zinken
c06798bf85 Save dialog now auto selects last used storage provider 2022-04-11 16:47:16 +02:00
Igor Zinken
7488ab032b Implemented storage support for Google Drive (#17) 2022-04-11 15:33:44 +02:00
Igor Zinken
2f7ad97d7f Optimization of transformation routine 2022-02-14 09:39:14 +01:00
Igor Zinken
a9c8243a48 Fixed regression with document resize 2022-02-13 11:16:59 +01:00
Igor Zinken
e57bc163ac Improve performance by moving transform effects from pre-cache to live rendering
* Selection outline is now rendered by interaction pane, not individual layer sprites
* Updated to zCanvas 4.3.1 to fix issue with bounding box detection on rotated content
* Refactored rectangles to always use left and top
* Layer scaling, rotating and mirroring is now a fast, synchronous operation
* Snapshots are now always of rendered layer content
2022-02-13 09:37:45 +01:00
Igor Zinken
71cad8512a Support wider zoom out scale (allows accurate "Fit to Window" calculation on large screens) 2022-02-06 18:05:50 +01:00
Igor Zinken
b41e0cc967 Updated unit test to match changes in implementation 2022-01-31 10:40:04 +01:00
Igor Zinken
22059511c8 Implemented smart fill 2022-01-31 09:44:17 +01:00
Igor Zinken
224944e8df Text size is now a free number input. Text can now also be specified in points. 2022-01-24 18:06:49 +01:00
Igor Zinken
e688fd42be Added 'Fit to window' option to zoom tool 2022-01-22 22:44:10 +01:00
Igor Zinken
19358255d5 Restructured image and file definitions. Allow fallback to load single layer, merged content on corrupt/unsupported Photoshop files 2022-01-22 15:57:33 +01:00
Igor Zinken
78ef693304 Added support for importing Photoshop files 2022-01-22 12:01:23 +01:00
Igor Zinken
02d4690380 Selections can now be repositioned and resized in the tool panel for added accuracy 2022-01-21 15:01:55 +01:00
Igor Zinken
7631d61844 Added view control to toggle anti-aliasing 2022-01-21 08:09:00 +01:00
Igor Zinken
8c2c23d77a Tool panels are now individually collapsable for mobile view optimization 2022-01-14 19:28:05 +01:00
Igor Zinken
f01f7c8258 Separated right panel into individual panels for tool options and layers 2022-01-09 12:34:36 +01:00
Igor Zinken
31924343e5 Added support for WEBP file format 2022-01-08 11:15:49 +01:00
Igor Zinken
eb05086116 Snap and align now also works on rotated content. Moved math utilities to appropriate namespaces 2021-09-13 21:10:35 +02:00
Igor Zinken
f875a1fc92 Invisible layers are excluded from alignment list 2021-09-13 20:39:32 +02:00
Igor Zinken
1c66d77123 Implemented guidelines and snap functionality 2021-09-11 19:48:08 +02:00
Igor Zinken
c0ee51bff5 Implemented inverting of selections 2021-05-08 14:17:26 +02:00
Igor Zinken
7625b87482 Move project file declaration out of store and into definitions folder 2021-04-25 08:35:05 +02:00
Igor Zinken
bda8eb99de Zoomed layers are not drawable until the zoom has been made permanent 2021-04-24 09:32:34 +02:00
Igor Zinken
0e1f434885 Copied images should always be pasted as GRAPHIC type layers with a Canvas source 2021-02-05 11:59:38 +01:00
Igor Zinken
afb4e89052 Implemented layer opacity control 2021-02-05 10:17:27 +01:00
Igor Zinken
886bc38315 Implemented locked ratio rectangle selection 2021-02-03 18:12:14 +01:00
Igor Zinken
fd1921ffa1 Saved documents should deserialize their mask content as Canvas and not Image types 2021-01-22 10:41:48 +01:00
Igor Zinken
037f117821 Resolved issues with layer history addressing bugs with layer reordering and Layer source drawable history 2021-01-20 21:33:47 +01:00
Igor Zinken
7d42360249 Added Image usage counter to Vuex image module, resolved memory leak in Dropbox image preview component 2021-01-20 19:49:32 +01:00
Igor Zinken
2fad55d935 Created singular entry points for Blob URL creation/revoking 2021-01-20 18:59:26 +01:00
Igor Zinken
694198b30f Fixed issues that occur with interaction pane on document switch 2021-01-19 16:25:01 +01:00
Igor Zinken
711abce3e6 Updated unit test 2021-01-19 12:24:45 +01:00
Igor Zinken
3997faf9bc Layer order swap is now also stored in state history 2021-01-19 11:57:00 +01:00
Igor Zinken
1af4e4e8b7 Implemented Layer sorting 2021-01-19 09:59:08 +01:00
Igor Zinken
f80e623348 Improved brushing performance on zoomed in documents 2021-01-18 18:08:04 +01:00
Igor Zinken
b7720db1c3 Implemented preferences panel and low memory mode to reduce memory allocated by paint history 2021-01-18 13:28:19 +01:00
Igor Zinken
cc10c2dcaa Implement action queue for deferred paint rendering, use low resolution paint preview during paint 2021-01-17 23:35:14 +01:00
Igor Zinken
028c8c8093 Made brush undo states Blob based to overcome Safari Canvas allocation limit, added Vuex module based memory management for these state resources 2021-01-17 14:47:16 +01:00
Igor Zinken
c55de06fea Implemented multiple brush types 2021-01-16 20:11:12 +01:00