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