Files
kniip/.cursor/plans/knip_companion_editor_49629a11.plan.md
T
2026-11-07 12:19:45 +01:00

4.5 KiB

name, overview, todos, isProject
name overview todos isProject
Knip companion editor Een C# .NET 8 WPF-app die naast het Windows Knipprogramma draait, nieuwe knipsels oppikt (klembord, Screenshots-map, 'Openen met') en ze opent in een eigen editor met blur/pixelate, tekstkaders, stappen, cursor, highlight en vormen.
id content status
skeleton Solution + WPF .NET 8 project, tray-icoon, single-instance, editor die een afbeelding laadt completed
id content status
capture ClipboardWatcher en FolderWatcher (Screenshots) met dedupe en instellingen completed
id content status
tools-shapes Annotatiemodel + tools: rechthoek/ellips met randen/kleuren, tekstkader, stappen, cursor, highlight completed
id content status
blur Blur- en pixelate-tool, undo/redo, selecteren/verplaatsen/resizen completed
id content status
export Export naar klembord/bestand, 'Openen met'-registratie, autostart, installer completed
false

Knip Companion - WPF annotatie-editor naast het Knipprogramma

Architectuur

flowchart LR
    SnipTool["Knipprogramma (onaangetast)"] -->|kopieert| Clipboard
    SnipTool -->|slaat op| ScreenshotsFolder["Afbeeldingen/Schermafbeeldingen"]
    SnipTool -->|"Openen met"| CmdArgs["App gestart met bestandspad"]
    Clipboard --> Watcher[CaptureWatcher]
    ScreenshotsFolder --> Watcher
    CmdArgs --> Editor
    Watcher -->|toast/tray-melding of direct| Editor[EditorWindow]
    Editor -->|Ctrl+C / Opslaan| Output["Klembord / PNG-bestand"]
  • De app draait in de achtergrond met een tray-icoon (NotifyIcon via H.NotifyIcon.Wpf) en is single-instance (Mutex + named pipe om bestandspaden door te geven).
  • Bij een nieuw knipsel opent de editor direct of na een melding (instelbaar).

Projectstructuur

Tools (annotaties als bewerkbare objecten, pas plat bij export)

  • Rechthoek/ellips: randkleur, vulkleur (optioneel/transparant), dikte, stijl (doorgetrokken/gestreept/gestippeld), afgeronde hoeken, schaduw
  • Tekst in kader: tekst met achtergrondkader, padding, lettertype/-grootte, kleur
  • Stappen: genummerde badges die automatisch ophogen; reeks kiezen: 1,2,3 / a,b,c / A,B,C / I,II,III
  • Cursor: stempel van een pijl- of handcursor (meegeleverde vectoriconen)
  • Highlight: semi-transparante markeerstift; met Shift een recht horizontale streep (standaard rechtgetrokken, instelbaar)
  • Blur / pixelate: rechthoekig gebied; effect berekend op de onderliggende bitmap (Gaussian blur of pixelblokken, sterkte instelbaar)
  • Extra: pijl, lijn, bijsnijden, selecteren/verplaatsen/verwijderen

Export

  • Ctrl+C: gerenderde PNG naar het klembord (gemarkeerd zodat de eigen watcher het niet opnieuw oppikt)
  • Ctrl+S / Opslaan als: PNG/JPG
  • Rendering via RenderTargetBitmap op de originele resolutie (rekening houden met DPI)

Integratie met "Openen met"

  • Registratie per gebruiker in HKCU\Software\Classes\Applications\KnipPlus.exe + OpenWithProgids voor .png/.jpg, zodat de app in het menu "Openen met" van het Knipprogramma staat (geen beheerdersrechten nodig)
  • Optioneel: automatisch starten met Windows (HKCU\...\Run)

Fasering

  1. Skelet: solution, tray-app, single-instance, editor die een afbeelding toont
  2. Capture: klembord- en mapwatcher, instellingen
  3. Tools: vormen, tekstkader, stappen, highlight, cursor
  4. Blur/pixelate, undo/redo, selecteren/aanpassen
  5. Export, "Openen met"-registratie, autostart, installer (MSIX of Inno Setup)