Git Product home page Git Product logo

screencapture's Introduction

Features(特性)

English:

  • Multi-screen capture, Cross screen shot.
  • Window area highlight.
  • Camera aperture,Copy pixel color:RGB(Ctrl+R),HEX(Ctrl+H).
  • Draw circle(Shift down),ellipse,square(Shift down),rectangle,arrow,ordered number by diffrent colors (fill or not fill).
  • Draw curve,straight line(Shift down),opacity line,mosaic,eraser,text(Mouse Wheel to change font size).
  • Modify the drawn elements at any time(Mouse Over the element and wait 1.6 second).
  • Undo(Ctrl+Z) Redo(Ctrl+Y) support.
  • Pin the cut area on desktop(Ctrl+P), resize pin window by Mouse Wheel.
  • Save to file(Ctrl+S) or clipboard(Ctrl+C).
  • Very fast,Small memory footprint,Low CPU useage.
  • Only one small executable file (with out any dll).
  • Can be easily integrated into any program.
  • Powered by Skia.

Chinese:

  • 跨屏幕截图、高分屏支持、窗口区域高亮。
  • 取景框,支持快捷键复制 RGB 颜色 (Ctrl+R)和 HEX 颜色(Ctrl+H)。
  • 绘制填充、非填充的椭圆、正圆(Shift按下)、矩形、正方形(Shift按下)、箭头、排序标号(拖拽调整箭头方向和大小,滚轮调整大小)。
  • 画曲线、直线(Shift按下)、半透明直线、马赛克、橡皮擦、文本(滚轮调整文字大小)。
  • 可以随时修改已绘制的元素(鼠标移到元素上等待 1.6 秒)。
  • 上一步(Ctrl+Z)、下一步(Ctrl+Y)。
  • 在新窗口中钉住截图区域(Ctrl+P),鼠标滚轮改变钉图窗口大小。
  • 保存成文件(Ctrl+S)、保存到剪切板(Ctrl+C)。
  • 非常快、低内存消耗、低 CPU 使用率。
  • 非常小、仅一个可执行文件(4.9M),无需安装,不依赖任何动态链接库。
  • 可以非常容易的集成到其他应用中。
  • 基于Skia。

Download(下载)

Release (4.9M)

Integration(集成)

(With Node.js Or Electron)

let spawn = require("child_process").spawn;
let child = spawn("./path/to/ScreenCapture.exe")
child.on("close", (code) => {
    /// when code is:
    /// 0 undefined
    /// 1 quit by press close btn;
    /// 2 quit by press right mouse btn;
    /// 3 quit by press esc keyboard
    /// 4 quit when copy rgb color
    /// 5 quit when copy hex color
    /// 6 quit when save to file
    /// 7 quit when save to clipboard
    console.log("the quit code is:",code)
});

Support OS(支持的操作系统)

  • Windows 10 1607 or Later

HotKey(快捷键)

  • Download AutoHotKey and install it.
  • Create a .ahk script file in Startup folder and set the file's content:
/*
C:\Users\[UserName]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ScreenCapture.ahk
^  :  Ctrl
!  :  Alt
+  :  Shift
#  :  Win
The hotkey is Ctrl+Alt+A 
*/
^!A::Run "D:\path\to\ScreenCapture.exe"
  • Double Click the .ahk file,then you can start the ScreenCapture.exe by press Ctrl+Alt+A.
  • The .ahk script will be executed when the system startup.

Sponsorship(赞助)


alipay(支付宝支付)


wechat(微信支付)

Author(作者)

Author's Wechat QR code(作者微信)

Whether there is any topic to talk about, whether it is related to this product or not, I am very happy to meet you.

无论有没有要聊的话题,无论是不是与此产品有关的话题,都很开心能认识你。

Licenses(版权)

This project is under the MIT license.

screencapture's People

Contributors

mikachu2333 avatar xland avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

screencapture's Issues

两个功能建议

非常好的工具,谢谢!

两个功能建议:
1)支持按控件截图。
2)支持快捷键,比如:Ctrl+S用于保存,Ctrl+C用于保存到剪贴板。

建议支持Linux

现在信创环境都是Linux环境,期待可以移植到Linux上。

关于文字与钉住截取区域

杏林心雨

在截图上添加文字的功能中,虽然能通过调整文本框大小的方式调整文字大小,但是移动文本框本身却是个难题,比方说我需要将位于下方的文本框移动到上方,我需要首先调整框的上边距,再调整下边距,比较麻烦,用曲线救国了的方式,希望能够有对文本框的抓取功能。而且对字体也缺乏支持,没有加粗,斜体,下划线的样式。
「贴图」功能:图片下方的编辑框不知道为什么会保留,比较碍眼。并且希望能够对贴图使用滚轮进行放大和缩小,方便查看。

建议一个新功能——滚动截图

Windows下常见的截图工具普遍缺乏滚动截图功能。snipaste包括pro版没法滚动截图,faststone capture也没有,sharex有这个功能但是很繁琐。

我在研究您的代码和实现滚动截图的算法。

如果顺利,我将提出pull request。谢谢!

blend2d编译时报错,createFromData多了一个参数

branch:blend2d 分支的最新代码
commit: 0badaeb
error: 错误 C2664 “BLResult BLImage::createFromData(int,int,BLFormat,void *,intptr_t,BLDestroyExternalDataFunc,void *) noexcept”: 无法将参数 6 从“BLDataAccessFlags”转换为“BLDestroyExternalDataFunc” ScreenCapture

将下图中的两个标红处删去即可正常编译运行

image

V2.0.0 plan todo

  • Switch Blend2d render engine to skia
  • Allow modify all history elements by mouse
  • Small toolbar
  • Start draw element when mouse click (number)
  • Finish most enhancements in the issue list
  • Support CMake build system
  • Tool Button tool tip
  • Pin window with out tool bar by default
  • Draw multi line text one time
  • Multi language support
  • Application configurable
  • Support for mac

[bug] 2.0.3 preview 无法在原马赛克的基础上继续绘画

如题。

修改建议:
双击某模式的图标以后进入“仅更改以往元素大小”的模式,例如在马赛克模式的图标上点两次,此时不能绘画只能修改大小,正常模式下不自动进入修改大小的模式,只能绘画

此外,当前版本还有一个问题就是无法在已绘画的区域继续绘画(例如马赛克后在该区域继续添加色块等)

图片

屏幕左边缘截屏时候,截屏工具条被严重遮挡了

如果在屏幕左边缘截屏时候,弹窗的截屏界面中,工具条被严重遮挡,无法使用;期望支持屏幕适应能力,特别影响使用,请优先解决。
由于公司网络限制,无法传图;相信作者应该明白我说的意思;

操作建议

按住 Shift 画线的时候它就是一根笔直的线,现在用鼠标拖动歪歪扭扭的~

对于新版本(2.02)有2个问题

第一个是程序大小忽然暴增,虽然还是很小,但是还是挺敏感的,对比1.0增大2倍多

第二个是不能连续启动多个实例,钉完一个截图画面不能再次启动钉另外的画面

不安装AutoHotKey,设置启动快捷键的方法

创建一个快捷方式,放入C:\ProgramData\Microsoft\Windows\Start Menu\Programs目录中,右键快捷方式-属性-快捷键,就可以自定义启动快捷键了。不过在全屏播放视频或者游戏的时候快捷键会失效,但仍能通过win+s快捷键搜索ScreenCapture使用

支持快捷键嘛?

如果要截取别的屏幕,软件在桌面上咋运行?
比如正在浏览器上,正在全屏观看视频等等...

关于延迟

win10,把快捷方式放到开始菜单里面,然后在开始菜单里面打开程序,这个时候的截图会有开始菜单的残影。

能不能程序启动后,延迟几毫秒再截图?

另外,建议在程序功能栏那里增加一个延迟3-5秒截图的按钮,因为如果要对右键弹出菜单进行截图,好像只能通过延迟截图才能实现?

希望增加一些快捷键以增强功能

  1. 希望增加一个复制到剪贴板同时保存到文件的功能
    看了代码,发现因为 App::Quit(7); 没法直接复用,只能另开一个函数就没提pr(业余爱好cpp,只会用笨办法改……)

功能建议:option

是否能考虑添加调用option以实现更多集成用法,例如:

ScreenCapture.exe --sfile PATH 框选后立刻保存在指定路径
ScreenCapture.exe --region REGION --clipboard 立即将指定区域存入剪贴板
ScreenCapture.exe --currentscreen --clipboard 立即将当前屏幕存入剪贴板
ScreenCapture.exe --desktop --wait MILLSECS 等待后立即将所有屏幕存入剪贴板

谢谢

解决编译问题

CMakeLists.txt
第一行需要加上opengl32
加上第二行指定程序入口函数

    TARGET_LINK_LIBRARIES(ScreenCapture skia Dwmapi winmm kernel32 user32 shell32 imm32 opengl32)
    set_target_properties(ScreenCapture PROPERTIES WIN32_EXECUTABLE TRUE)

V2.0.7版本

大佬您好,可以更新一下V2.0.7版本的源码吗?我想看看修改Bug的内容

被第三方软件调用

首先膜拜一下大佬🙇‍♂️

我现在有一个需求,截图识别二维码,使用的是 tauri 技术栈。rust 虽然有截图库,但找到几个好像都是全屏截图,我想实现鼠标截图,这个功能对我来说目前有点困难。

所以,大佬能不能封装成 extern "C" 的 dll 库,或者 带运行参数的 独立 exe 。

这样我可以调用对外函数,鼠标截图后返回图片数据,我再用 rust 解析图片。

哈哈,当然这个请求有些过分了,不能实现也无所谓。

最后祝大佬身体健康,万事如意~

在Win7上有些Bug

运行后不能截图,也不能按Esc取消,只能从任务管理器中结束进程。这个现象出现了一次,没能复现,但发现Windows任务栏图标显示混乱。
image
软件工具条的图标显示不正确,但想了想,可能跟我采用MacType将字体替换成了自制字体有关,退出MacType后重试是正常的。不过这些图标是不是可以作为资源打包到exe里?

优化ScreenCapture启动了多个实例

#14

关于这个问题,上面链接提到的问题,应该是快捷键触发了多次。看了Main函数入口并没有限制只能启动多个示例。

代码可以这样优化

`

int APIENTRY wWinMain(In HINSTANCE hInstance, In_opt HINSTANCE hPrevInstance, In LPTSTR lpCmdLine, In int nCmdShow)
{
//判断只能启动一个实例
HANDLE hMutex = CreateMutex(NULL, TRUE, _T("ScreenCapture"));
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
CloseHandle(hMutex);
return -1;
}
Font::Init();
new MainWin();
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
Font::Dispose();
auto code = MainWin::GetQuitCode();
CloseHandle(hMutex);
return code;
}

`

作者看看。

建议: 鼠标悬停显示button details

当用户截图后,用户不知道button的作用,对于使用者来说十分不友好,建议当鼠标悬停在某一button时候,显示button的详细信息(e.g.: 当 鼠标悬停文字工具显示文字工具提示)

关于新功能的提议

屏幕截图应用程序非常常见。我们可以为镜头添加一些可选的自定义样式吗。
举个例子,在MacOS上有一个名为iShot的应用程序,它可以捕捉到屏幕截图,结果生成的图像讲带有一个圆角矩形外框。这非常有创意,我们也可以提供一些这样的功能供用户选择,比如一个纸片外框,或者价格标签🏷...

工具栏显示问题

  1. 未正常显示:笔记本1080显示器,外接扩展4k显示器(150%缩放);外接4k显示器全屏截图时工具栏正常在截图区域内显示,但笔记本屏幕全屏截图时,工具栏未显示出来。
  2. 在1080屏幕上,工具栏大小、图标及文字感觉有点大,不知道是不是拉伸了,不过这个不是问题,不影响使用。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.