# SnapPic **Repository Path**: tszz/snap-pic ## Basic Information - **Project Name**: SnapPic - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-28 - **Last Updated**: 2026-05-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SnapPic Windows 图片离屏截图工具。读取图片后通过 GDI 在内存中按原分辨率渲染并截取像素,输出 PNG 文件。 - 不弹窗,后台静默处理 - 输出分辨率与源图一致 - 支持超过屏幕尺寸的大图 - 支持单张与批量目录处理 ## 环境要求 - Windows 10 / 11 - Go 1.21+ ## 编译 ```powershell go build -o snappic.exe . ``` ## 用法 ### 单张图片 ```powershell # 输出到同目录,文件名追加 _screenshot.png snappic.exe -i photo.jpg # 指定输出路径 snappic.exe -i photo.jpg -o shot.png # JPEG 输出(默认质量 92,体积更小;-q 对 JPEG 效果明显) snappic.exe -i photo.jpg -o shot.jpg snappic.exe -i photo.jpg -o shot.jpg -q 90 snappic.exe -i photo.jpg -q 85 # 仅指定 -q 时默认输出为 *_screenshot.jpg # 指定输出文件的创建/修改时间 snappic.exe -i photo.jpg -o shot.png -t "2024-06-01 10:30:00" # positional 简写 snappic.exe photo.jpg snappic.exe photo.jpg shot.png ``` ### 批量目录 ```powershell snappic.exe -i C:\images\in -o C:\images\out snappic.exe -i C:\images\in -o C:\images\out -f jpg -q 90 snappic.exe -i C:\images\in -o C:\images\out -t "2024-06-01 10:30:00" ``` 批量模式下,输出目录会自动创建;默认输出同名 `.png`,`-f jpg` 时输出 `.jpg`。 ## 参数说明 | 参数 | 说明 | |------|------| | `-i` | 输入图片文件或目录 | | `-o` | 输出文件或目录(批量模式必填) | | `-t` | 设置输出文件的创建时间与修改时间(可选) | | `-q` | JPEG 质量 1–100(越低文件越小;1–99 时输出 `.jpg`,即使 `-o` 写了 `.png`) | | `-f` | 批量输出格式:`png`(默认)或 `jpg` | `-t` 支持格式: - `2006-01-02 15:04:05` - `2006-01-02 15:04` - `2006-01-02` - RFC3339(如 `2024-06-01T10:30:00+08:00`) 未指定时区时按本地时区解析。 ## 支持格式 输入:`.jpg`、`.jpeg`、`.png`、`.gif`、`.bmp`、`.webp` 输出:`.png`(默认)、`.jpg` / `.jpeg`(有损,体积更小) ## 实现说明 程序使用 Windows GDI 离屏渲染: 1. 解码输入图片 2. 在内存 DC 中创建与源图同尺寸的 DIB 3. 通过 `BitBlt` 渲染后,用 `GetDIBits` 读回像素 4. 保存为 PNG(无损,未指定 `-q` 时)或 JPEG(`-q` 1–99 有损压缩,默认质量 92) 此方式不依赖屏幕分辨率,也不会因窗口超出屏幕导致底部黑边。 ## 示例 ```powershell snappic.exe -i C:\Users\zhaoj\Desktop\OK\OK -o C:\Users\zhaoj\Desktop\OK\OK2 ``` ## 许可证 MIT