Skip to content

Add Markup Capabilities - #61

Merged
TheJoeFin merged 11 commits into
mainfrom
markup
Jul 9, 2026
Merged

Add Markup Capabilities#61
TheJoeFin merged 11 commits into
mainfrom
markup

Conversation

@TheJoeFin

Copy link
Copy Markdown
Owner

PR Classification

New feature and UI enhancement.

PR Summary

This PR adds a comprehensive markup and annotation system to the app, enabling freehand drawing, shapes, and text overlays with full undo/redo and project persistence. It also introduces whiteboard cleaning/conversion tools, histogram/threshold UI, and upgrades dependencies.

  • MainWindow.xaml/.cs: Implements the Markup tab UI, markup tool logic, undo/redo for markup, and integrates new annotation controls.
  • MarkupShapeControl, MarkupTextControl, RgbHistogramControl: Adds interactive controls for shapes, text, and histogram display.
  • WhiteboardInkConverter.cs: Provides whiteboard pen stroke detection, speckle removal, and conversion to editable ink.
  • UndoRedo.cs: Extends undo/redo system to support all markup actions and batch operations.
  • Models/MeasurementControls: Adds DTOs and serialization for markup shapes, texts, and ink strokes.

TheJoeFin and others added 11 commits July 8, 2026 21:07
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Async per-channel histogram rendering with a draggable threshold
indicator, plus an ApplyThreshold relay command on the ViewModel.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- MarkupShapeControl: two-point line/arrow/rectangle/ellipse overlay
- MarkupTextControl: draggable text label with inline commit/cancel
  edit mode (Enter or click-away accepts, Escape cancels)
- WhiteboardInkConverter: Emgu.CV-based whiteboard cleanup and
  photographed-stroke-to-ink conversion
- Serializable DTOs for shapes, texts, and ink strokes wired into
  MeasurementCollection for project persistence
- Undo/redo items covering add, remove, move, edit, resize, stroke
  property changes, and clear-all of markup

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Markup tab: pen/highlighter/eraser/select ink tools on an InkCanvas,
shape and text placement, 10-color palette and size slider, whiteboard
cleanup / fill hollow strokes / convert-to-ink actions, hide-all and
clear-all. All markup operations are undoable and persist with the
project package.

Threshold panel: RGB histogram with live threshold indicator bound to
the ViewModel ApplyThreshold command.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Added "PowerShell(git diff *)" and "PowerShell(dotnet build *)" to the allowed command patterns in settings.local.json. Also fixed a missing comma to correct JSON formatting. This enables running git diff and dotnet build via PowerShell.
Fixes #12

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fixes #13

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
HEIC decoding already works via Magick.NET; this completes the file
dialog so all formats accepted by drag-and-drop are also selectable.

Fixes #18

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Added "Bash(gh issue list *)" to the allowed commands list, enabling use of the GitHub CLI to list issues via Bash. No other changes were made.
Synchronized application version to 1.12.0 in both Package.appxmanifest and MagickCrop.csproj to reflect the latest release. This maintains consistency across deployment and build metadata.
@TheJoeFin
TheJoeFin merged commit d1338a8 into main Jul 9, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant