winshot

mrgoonieBSD-3-Clause更新放缓

基于 Wails(Go + React/TypeScript)构建的 Windows 截图工具,支持标注、裁剪和导出,适合需要快速截屏并做简单编辑的场景。

WinShot - A Windows screenshot tool with annotation, crop, and export features built with Wails (Go + React/TypeScript)

v1.6.0发布于 2026-01-25 14:30 UTC589star59fork同步于 2026-11-07 07:33 UTC

怎么上手

由 README 提炼,执行前请确认
从 GitHub Releases 下载 winshot.exe 直接运行;源码构建:wails build
硬件要求按 README 说明

仅支持 Windows 10 及以上系统,需要 WebView2 运行时(Windows 11 已预装,Windows 10 会自动安装);README 未提及显存或 GPU 要求

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

Windows 上的轻量截图工具,支持标注、裁剪和导出,体积只有 Electron 应用的十分之一

基于 Wails(Go + React/TypeScript)构建的 Windows 截图工具,支持标注、裁剪和导出,适合需要快速截屏并做简单编辑的场景。

核心能力

  • 支持全屏、区域、窗口三种截图模式,并可设置全局热键触发
  • 提供矩形、椭圆、箭头、文字、序号、聚光灯等标注工具,可随时编辑或删除
  • 裁剪为非破坏性操作,内置 16:9、4:3、1:1 等比例预设
  • 导出支持 PNG 和 JPEG,JPEG 质量可在 0-100 之间调节
  • 集成系统托盘、开机自启和最小化到托盘

容易踩的坑

全局热键可能需要应用先获得焦点或提升权限才能生效;Windows 10 需确保已安装 WebView2 运行时,否则启动失败;配置损坏导致崩溃时可删除 %APPDATA%\WinShot\config.json 重置

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.6.0
  1. v1.7.0-beta.1pre-release2026-03-04 · 2026-03-04 14:45 UTC
    查看更新说明

    1.7.0-beta.1 (2026-03-04)

    Features

    • qr code scanner implementation (3d36a07)
  2. v1.6.0最新正式版2026-01-25 · 2026-01-25 14:30 UTC

    1.6.0 (2026-01-25)

    Bug Fixes

    • editor: align border corner radius with screenshot image (6685da8)
    • editor: render border above screenshot image (36b93e8)
    • release: add channel config and seed v1.6.0 version series (8515aac)
    • shape: persist border radius (c1a4043)
    • startup: sync registry on app start when config says enabled (3088086), closes #62
    • test: make R2 credential test environment-aware (719e5e0)

    Features

    • app: add fill color and corner radius controls to editor state (df5cfe6)
    • canvas: render fill colors and corner radius for shapes (fa92942)
    • editor: add screenshot border styling (4280fe6), closes #62
    • force release v1.7.0-beta.1 (bfc7d36)
    • library: add screenshot history library with tray integration (ed0ac37), closes hi#quality
    • shape: persist rectangle corner radius setting (787cfd4)
    • tray: show version in system tray tooltip (434af43)
    • types: add fill color and corner radius to annotation model (3960593)
  3. v1.5.0-beta.3pre-release2026-01-25 · 2026-01-25 13:56 UTC
    查看更新说明

    1.5.0-beta.3 (2026-01-25)

    Bug Fixes

    • editor: align border corner radius with screenshot image (6685da8)
    • editor: render border above screenshot image (36b93e8)
    • startup: sync registry on app start when config says enabled (3088086), closes #62
    • test: make R2 credential test environment-aware (719e5e0)

    Features

    • editor: add screenshot border styling (4280fe6), closes #62
    • tray: show version in system tray tooltip (434af43)
  4. v1.5.0-beta.2pre-release2026-01-25 · 2026-01-25 03:33 UTC
    查看更新说明

    1.5.0-beta.2 (2026-01-25)

    Bug Fixes

    • shape: persist border radius (c1a4043)

    Features

    • force release v1.7.0-beta.1 (bfc7d36)
    • library: add screenshot history library with tray integration (ed0ac37), closes hi#quality
  5. v1.5.0-beta.1pre-release2026-01-12 · 2026-01-12 10:44 UTC
    查看更新说明

    1.5.0-beta.1 (2026-01-12)

    Bug Fixes

    • app: prevent duplicate instances and sync startup path on version update (06774a6)
    • release: add @semantic-release/npm plugin to update package.json version (b30744e)
    • release: add channel config and seed v1.6.0 version series (8515aac)

    Features

    • app: add fill color and corner radius controls to editor state (df5cfe6)
    • app: add Wails bindings for cloud upload (R2 + GDrive) (fa87274)
    • canvas: render fill colors and corner radius for shapes (fa92942)
    • cloud: add Cloud settings tab with R2 and GDrive configuration (69b799a)
    • cloud: add Cloud upload button with dropdown menu (3e27b1c)
    • config: add cloud provider config structs for R2 and GDrive (502f648)
    • editor: add canvas zoom and scale controls (c42a6b5)
    • editor: add color extraction utility for auto-background feature (9ee2190)
    • editor: add inset and auto-background state management (ff927ec)
    • editor: add inset scale transform to canvas for screenshot scaling (ff8b9ea)
    • editor: add inset slider and auto-background UI controls (3eea549)
    • hotkey-input: add preset buttons for PrintScreen assignment (b1160e4), closes #67
    • r2: add directory prefix support and fix dropdown menu (7bade9c)
    • settings: enhance settings panel and go runtime (bd201a2)
    • shape: persist rectangle corner radius setting (787cfd4)
    • types: add fill color and corner radius to annotation model (3960593)
    • upload: add Cloudflare R2 uploader with retry logic (558796c)
    • upload: add Google Drive uploader with OAuth2 flow (e3ac924)
    • upload: add Windows Credential Manager wrapper for cloud upload credentials (8f2c55a)

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    WinShot - Modern Screenshot Tool for Windows

    A lightweight, feature-rich screenshot application built with Wails (Go + React). Capture, annotate, and export screenshots with a beautiful glassmorphism UI.

    90% smaller than Electron (~10MB) | Native performance | Rich annotation tools

    WinShot Screenshot


    Features

    Capture Modes

    • Fullscreen - Capture all displays in one image
    • Region - Drag to select custom rectangle
    • Window - Automatically detect and capture active window
    • Hotkey Triggered - Global shortcuts (Ctrl+PrintScreen, etc.)

    Annotations

    • Shapes - Rectangle, ellipse (with fill/stroke control)
    • Arrows & Lines - Directional callouts and custom lines
    • Text - Add text with customizable font, size, color, alignment
    • Numbers - Auto-incrementing numbered markers for step-by-step callouts
    • Spotlight - Highlight areas by dimming surroundings
    • Transforms - Move, resize, rotate all elements
    • Non-destructive - Edit or delete annotations anytime

    Editor Features

    • Non-destructive cropping - Adjust bounds without losing data
    • Aspect ratio presets - Free, 16:9, 4:3, 1:1, 9:16, 3:4
    • 24 gradient backgrounds - Vibrant glassmorphism presets
    • Real-time preview - See changes instantly
    • Settings persistence - Editor preferences saved across sessions

    Export Options

    • Formats - PNG (lossless) and JPEG (with quality slider)
    • Output ratios - 9 presets for different platforms
    • Quick Save - Save to configured folder with auto-naming
    • Background control - Include or exclude gradient backgrounds

    System Integration

    • System tray - Icon in taskbar for quick access
    • Global hotkeys - Customizable keyboard shortcuts
    • Auto-start option - Launch on Windows startup
    • Minimize to tray - Keep window out of the way

    Installation

    Option 1: Portable Executable (Recommended)

    1. Download winshot.exe from GitHub Releases
    2. Run directly - no installation required
    3. Optionally pin to taskbar or create shortcut

    Requirements:

    • Windows 10 or later
    • WebView2 runtime (pre-installed on Windows 11, automatic install on Windows 10)

    Option 2: Installer

    1. Download winshot_installer.exe from GitHub Releases
    2. Run installer and follow prompts
    3. Shortcuts created in Start menu and optional desktop

    Quick Start

    Basic Workflow

    1. Launch WinShot (portable EXE or via Start menu)
    2. Capture screenshot using one of:
      • Click toolbar buttons (Fullscreen, Region, Window)
      • Press global hotkey (default: Ctrl+PrintScreen for region)
      • Right-click system tray icon
    3. Annotate (optional):
      • Select annotation tool from toolbar
      • Draw on screenshot
      • Adjust colors and stroke width
    4. Crop (optional):
      • Switch to crop mode
      • Select desired area and aspect ratio
    5. Export:
      • Choose PNG or JPEG format
      • Click Export or Quick Save
      • Confirm location (or auto-save to configured folder)

    Keyboard Shortcuts

    Global Hotkeys (Customizable):

    ShortcutAction
    Ctrl+PrintScreenRegion capture (default)
    PrintScreenFullscreen capture
    Ctrl+Shift+PrintScreenWindow capture

    Customizable in Settings → Hotkeys

    Editor Shortcuts (App Window):

    ShortcutAction
    VSelect tool (pointer/move)
    RRectangle annotation
    EEllipse annotation
    AArrow annotation
    LLine annotation
    TText annotation
    NNumber annotation
    SSpotlight annotation
    CCrop tool
    Ctrl+ZUndo annotation
    Ctrl+Shift+Z or Ctrl+YRedo annotation
    Delete / BackspaceDelete selected annotation
    EscapeDeselect / cancel crop mode
    Ctrl+OImport image file
    Ctrl+VPaste image from clipboard
    Ctrl+SQuick save
    Ctrl+Shift+SExport with format dialog
    Ctrl+CCopy to clipboard

    Configuration

    Settings Dialog

    Access via Settings icon in title bar (⚙️).

    Tabs:

    Hotkeys
    • Fullscreen - Default: PrintScreen
    • Region - Default: Ctrl+PrintScreen
    • Window - Default: Ctrl+Shift+PrintScreen
    • Custom key combinations supported
    Startup
    • Launch on startup - Auto-start WinShot on Windows boot
    • Minimize to tray - Start minimized instead of maximized
    • Show notifications - Display toast when screenshot is saved
    Quick Save
    • Folder - Default: %USERPROFILE%\Pictures\WinShot
    • Filename pattern - Options: timestamp, date, increment
    Export
    • Default format - PNG or JPEG
    • JPEG quality - 0-100 slider (default: 95)
      • 95+ = visually lossless
      • 75-90 = balanced (recommended)
      • 50-75 = compressed (smaller files)
    • Include background - Apply gradient to exported image

    Editor Settings

    Panel on right side of editor (collapsible):

    • Padding - Space around screenshot
    • Corner radius - Rounded corners (0-50px)
    • Shadow size - Drop shadow depth (0-30px)
    • Background - Select from 24 gradient presets or custom color

    All settings persist in browser localStorage and survive app restarts.


    Development

    Prerequisites

    • Go 1.24.0+
    • Node.js 18+
    • Wails CLI - Install: go install github.com/wailsapp/wails/v2/cmd/wails@latest
    • WebView2 Runtime - Pre-installed on Windows 11, or manual install on Windows 10

    Setup

    # Clone repository
    git clone https://github.com/[owner]/winshot.git
    cd winshot
    
    # Install frontend dependencies
    cd frontend
    npm install
    cd ..
    
    # Verify Wails setup
    wails doctor
    

    Development Server

    # Run with hot reload
    wails dev
    

    This starts the app with:

    • Frontend: Vite dev server (auto-reload on code changes)
    • Backend: Recompile on Go file changes
    • Open in Wails dev window

    Frontend only:

    cd frontend
    npm run dev
    

    Backend only:

    wails build
    ./winshot.exe
    

    Build

    Portable Executable:

    wails build
    # Output: ./build/bin/winshot.exe (~10-15MB)
    

    Installer (NSIS):

    wails build -nsis
    # Output: ./build/bin/winshot_installer.exe
    

    Release Build (optimized):

    wails build -upx
    # Smaller binary (~7-10MB) using UPX compression
    

    Project Structure

    .
    ├── app.go                          # Wails bindings (Go)
    ├── main.go                         # Entry point
    ├── wails.json                      # Wails config
    ├── go.mod / go.sum                 # Go dependencies
    ├── frontend/
    │   ├── src/
    │   │   ├── App.tsx                 # Root React component
    │   │   ├── components/             # React components (14 total)
    │   │   ├── types/                  # TypeScript interfaces
    │   │   └── assets/                 # Images, fonts
    │   ├── package.json
    │   ├── vite.config.ts
    │   ├── tailwind.config.js
    │   └── tsconfig.json
    ├── internal/                       # Go packages
    │   ├── config/                     # Config persistence
    │   ├── hotkeys/                    # Global hotkey registration
    │   ├── screenshot/                 # Screen/window capture
    │   ├── tray/                       # System tray integration
    │   └── windows/                    # Window enumeration
    ├── docs/                           # Documentation
    └── build/                          # Build assets & output
    

    Architecture

    Backend (Go)

    Key Packages:

    • internal/config - JSON config persistence
    • internal/hotkeys - Global hotkey registration via Win32 API
    • internal/screenshot - Multi-display screen capture
    • internal/tray - System tray icon + context menu
    • internal/windows - Window enumeration

    Wails Bindings: 25+ methods exposed to frontend via automatic Go→TypeScript binding.

    Frontend (React)

    Technology Stack:

    • React 18.2 + TypeScript
    • react-konva 18.2 for canvas drawing
    • Tailwind CSS 3.4 for styling
    • Vite 3.0 for build tooling

    Components:

    • App.tsx - Central state management
    • 14 specialized components for UI, toolbars, dialogs, canvas

    State Management: React hooks (useState, useEffect, useCallback) + localStorage for persistence.

    Communication

    Frontend ↔ Go via Wails IPC (automatic JSON serialization).

    Example:

    // Frontend
    const result = await CaptureFullscreen()
    // Automatically calls Go method, returns JSON-deserialized CaptureResult
    

    See docs/system-architecture.md for detailed architecture diagrams.


    Tech Stack

    LayerTechnologyPurpose
    FrameworkWails v2.10.2Desktop app framework
    BackendGo 1.24.0System APIs, screenshot capture
    FrontendReact 18.2.0UI framework
    LanguageTypeScript 5.3.0Type-safe frontend
    Canvasreact-konva 18.2.10Shape drawing & editing
    StylingTailwind CSS 3.4.0Utility-first CSS
    BuildVite 3.0.7Frontend bundler
    Screenshotkbinani/screenshotMulti-display capture

    Contributing

    Contributions welcome! Please:

    1. Fork the repository
    2. Create feature branch: git checkout -b feature/amazing-feature
    3. Commit changes: git commit -m 'Add amazing feature'
    4. Push to branch: git push origin feature/amazing-feature
    5. Open Pull Request

    Guidelines:

    • Follow code standards
    • Update tests for new features
    • Update documentation as needed
    • Keep commits focused and descriptive

    Roadmap

    v1.0 (Completed)

    • Basic capture modes
    • Simple annotations
    • PNG export
    • Configuration dialog

    v1.2 (Completed)

    • Undo/redo ✓
    • Keyboard shortcuts ✓
    • Clipboard import ✓
    • JPEG quality control ✓

    v1.3 (Planned)

    • Dark/light theme toggle
    • Batch export operations
    • Cloud sync for settings

    v2.0 (Future)

    • Screen recording
    • OCR text extraction
    • Cloud sync for settings
    • macOS/Linux support

    See docs/project-overview-pdr.md for detailed roadmap.


    Troubleshooting

    Common Issues

    Global hotkeys not working

    • Ensure app has focus once (may require privilege elevation)
    • Check Settings → Hotkeys for conflicts with other apps
    • Try alternative key combinations

    Screenshots appear blurry

    • Confirm DPI scaling in Windows Settings (125%, 150%)
    • App handles DPI automatically; if issues persist, file a bug report
    • Use JPEG export with lower quality for smaller files

    App crashes on startup

    • Delete %APPDATA%\WinShot\config.json to reset configuration
    • Check if WebView2 runtime is installed (Windows 10)
    • Restart computer and try again

    Export takes too long

    • Large images (4K+) may take 500-800ms
    • Reduce output size via aspect ratio control
    • Use JPEG format for faster export than PNG

    Debug Mode

    Enable debug logging:

    wails dev  # Prints Go errors and exceptions to console
    

    License

    BSD 3-Clause License

    See LICENSE file for details.


    Support & Feedback


    Acknowledgments


    Changelog

    v1.2 (2025-12-24)

    • ✨ Clipboard image import via Ctrl+V
    • ✨ Configurable JPEG compression quality (0-100 scale)
    • ✨ Comprehensive keyboard shortcuts for all tools
    • ✨ Tool selection via single-key shortcuts (V, R, E, A, L, T, C)
    • ✨ Editor annotations with Undo/Redo shortcuts
    • 🚀 Performance improvements for clipboard operations
    • 📝 Enhanced documentation with keyboard reference

    v1.1 (2025-12-03)

    • ✨ Add arrow and line annotations
    • ✨ Add text annotation tool
    • ✨ Implement non-destructive cropping
    • ✨ Add 24 gradient background presets
    • ✨ Support multiple output aspect ratios
    • ✨ Copy file path button + auto-copy on quick save
    • 🚀 Performance improvements for large images
    • 📝 Complete documentation suite

    v1.0 (2025-11-01)

    • 🎉 Initial release
    • ✅ Fullscreen, region, and window capture
    • ✅ Rectangle and ellipse annotations
    • ✅ PNG export
    • ✅ Configuration dialog
    • ✅ System tray integration
    • ✅ Global hotkey support

    Made with ❤️ for screenshot enthusiasts