feat: Add Mosaic (pixelation) tool to annotation system#397
Open
Bae-ChangHyun wants to merge 1 commit intoxRyul:mainfrom
Open
feat: Add Mosaic (pixelation) tool to annotation system#397Bae-ChangHyun wants to merge 1 commit intoxRyul:mainfrom
Bae-ChangHyun wants to merge 1 commit intoxRyul:mainfrom
Conversation
Add a new Mosaic tool (M) that allows users to pixelate/censor regions of an image by dragging a rectangle. Useful for hiding sensitive information (faces, text, personal data) before sharing screenshots. - New MosaicTool class with drag-to-pixelate interaction - Block size control (5, 10, 15, 20, 30px) - Full integration with undo/redo, export, presets, and delete - Mosaic marker (`__isMosaicRegion`) to distinguish from background image - Keyboard shortcut: M key - Updated docs and tests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
How it works
Technical details
src/ImageAnnotation/tools/MosaicTool.ts— Core mosaic logic with__isMosaicRegionmarker to distinguish mosaicFabricImageobjects from the background imageimageSmoothingEnabled = false)getScenePoint()Files changed
src/ImageAnnotation/tools/MosaicTool.tssrc/ImageAnnotation/types.tsToolMode.MOSAIC,MOSAIC_BLOCK_SIZESsrc/ImageAnnotation/managers/ToolManager.tssrc/ImageAnnotation/ui/ToolbarBuilder.tssrc/ImageAnnotation/ImageAnnotationModal.tssrc/ImageAnnotation/managers/HistoryManager.tssrc/ImageAnnotation/export/ImageExporter.tssrc/ImageConverterSettings.tsstyles.cssdocs/Annotation tool.mdtests/Test plan
npm run build— passesnpm run lint— 0 errorsnpm run test— all annotation tests pass (pre-existing unrelated failures only)