iShot--macOS上最好用的截图工具

Posted 掘墓人的小铲子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iShot--macOS上最好用的截图工具相关的知识,希望对你有一定的参考价值。

由于写文章配图的需要,经常要截图,截图效果的好坏自然也会影响到文章的观感,所以截图的工具也得挑顺手的才行,今天就来聊一下 Mac 上的截图软件。

截图问题

首先说一下我写文章遇到的有关截图的两个问题,也可以说是痛点,能解决了这两个问题,那么就是顺手的好工具。

1、边角问题

最早一直用的是微信自带的截图,挺方便的,截图质量好,带标记,基本满足了截图的需求。但是,前不久发现一个问题,由于 macOS 下的窗口是圆角的,如果窗口的颜色和截图时背景颜色不一致,可能会出现四个角颜色是背景色的问题,这么说还是有点绕,上个图说明一下。

微信截图

仔细看上面的图,是不是发现下面两个角有点发“黑”?但其实,并不是发黑,而是我的桌面壁纸颜色,我把截图的场景还原一下,看下图。

截图场景

也就是说,我的浏览器窗口四个角的颜色是我的桌面壁纸的颜色,我通过 Photoshop 放大截图,证明了四个角确实如此。

Photoshop放大效果

这个问题,我称之为「边角问题」,边角问题就在于,四个角的颜色既不是窗口截图本身的颜色,也不是透明色,导致观感上有点“出戏”。一开始的时候我还用 Photoshop 污点修复处理一下,可是每次这么整也不是办法啊。

2、边框问题

还有一个问题就是边框的问题,简单说就是图片的颜色和文章的背景一样了,导致看不出来图片的边界,还是用图片说明问题吧。

看下面这张图,是不是找不到图片左下部分的边界在哪。

无边框

而下面这张,就可以看到图片的边界。

有边框

这个问题我称之为「边框问题」,倒不是什么大问题,但是看不到边界会感觉会很奇怪,很别扭。我总不能截完图了再用 Photoshop 给图片加个边框吧,那效率也太低了。

截图软件对比

基于以上的两个问题,我找了 Mac 上几款有名气的截图软件做了对比测试。

1、系统

macOS 系统自带的截图工具,窗口截图自带透明的边框,四个角肯定是透明的,并且整体的透明边框不能关闭,每次截完图还需要自己裁剪,很麻烦,也没解决边框问题。

使用习惯不够本地化,举个例子,圈选等操作很别扭,不能在截完图之后直接操作,还需要打开文件再进行操作。

2、微信

文章最开始也说到了,微信截图不能去除边角问题,也不能解决边框问题。

3、QQ

QQ就很奇葩了,有时候能解决边角问题,也就是会将四个角设置为透明色,有时候就不行了,我没摸到规律,很迷,也不能解决边框问题。

4、截图

腾讯出的截图软件,就叫「截图」。

窗口截图自带阴影边框,无法调节或删除,不能解决边角问题和边框问题。

5、Xnip

Xnip 截图的边角虽然没有显示出背景颜色,但是它给四个角添加了白色,如果网页背景色是黑色,截图也是黑色,就会发现四个角是白色,很奇怪。

可以开启阴影,但是无法自定义阴影大小,不能解决边框问题。

滚动截图默认有水印,需要购买或订阅 Pro 版才能去除水印。

6、Snipast

第一次运行 Snipast 提示要去设置里打开权限,给了权限重启软件之后就卡死了,重启了电脑才能正常运行,不知道是不是个例。

边角和边框都存在问题,而且设置过于复杂,感觉不是一个轻量级的截图工具。

7、iShot

终于到了我们今天的主角--「iShot[1]」。

iShot官方介绍图

边角问题完美解决,四个角都是透明的,不管是在黑色还是白色的网页下展示都不会有问题。边框问题完美解决,添加 1 像素的阴影,即可显示出图片的边框。支持屏幕录制,且可以导出为视频或 GIF。支持滚动截图,无水印。支持屏幕取色。支持局部高亮。设置简单。免费。

再看一下 iShot 截图的观感,四个角颜色为透明且有边框:

iShot 截图

iShot 偏好设置界面如下:

iShot 偏好设

更多使用说明请查看:iShot 视频教学[2]

可以说,iShot 满足了我对截图软件的所有要求,甚至有超出预期的功能。一款好的软件大抵如此,不需要复杂的设置,但是能解决你的问题,用就是了!

以后写文章截图我应该只用 iShot 了。

后记

标题改成「iShot-- 我认为 macOS 上最好用的截图工具」可能会更好,因为确实是“我认为”,每个人的需求不一样,我只是通过对比发现 iShot 确实解决了上述的两个问题,所以对我来说它就是最好的一款截图工具,我也只是将自己觉得好的软件推荐给大家。

另外,作者还有两个软件,也一并推荐一下。

iRightMouse 超级右键[3]

支持鼠标右键新建文件、复制文件到指定目录等等功能,三步并作一步,快,无止境。

自动切换输入法[4]

自动在不同的 APP 之间切换输入法、中英文,让您的文字输入行云流水,从此告别繁琐的手动切换输入法,大幅提高输入效率。

引用链接

[1] iShot: https://apps.apple.com/cn/app/ishot-%E6%88%AA%E5%9B%BE-%E9%95%BF%E6%88%AA%E5%9B%BE-%E6%A0%87%E6%B3%A8%E5%B7%A5%E5%85%B7/id1485844094?mt=12
[2] iShot 视频教学: https://www.better365.cn/ishottv.html
[3] iRightMouse 超级右键: https://apps.apple.com/cn/app/irightmouse-%E8%B6%85%E7%BA%A7%E5%8F%B3%E9%94%AE/id1497428978?mt=12
[4] 自动切换输入法: https://apps.apple.com/cn/app/%E8%87%AA%E5%8A%A8%E5%88%87%E6%8D%A2%E8%BE%93%E5%85%A5%E6%B3%95/id1470350547?mt=12

最好用的取色器,颜色转换器

  你有没有遇到过这样的情况,浏览网页或者浏览图片或者工作中,突然看到一个颜色,特别想拿到这个RGB颜色或者16进制颜色。(然后解决的方法就是截图存下来,拿到PS里去查看颜色。)

 

  你还有没有遇到过这样的情况,只有一个RGB颜色或者16进制颜色,却无法转换。(然后解决的方法就是截图存下来,拿到PS里去转换颜色。)

  所以今天花了点时间做了一款小工具。虽然很小但却很好用,大小仅有39kb。但是代码却很强大,甚至会被杀软误报(由于使用了键盘钩子,完全无毒请放心使用)。

(一)颜色拾取

  引用系统API

        /// <summary>
        /// 获取指定窗口的设备场景
        /// </summary>
        /// <param name="hwnd">将获取其设备场景的窗口的句柄。若为0,则要获取整个屏幕的DC</param>
        /// <returns>指定窗口的设备场景句柄,出错则为0</returns>
        [DllImport("user32.dll")]
        public static extern IntPtr GetDC(IntPtr hwnd);

        /// <summary>
        /// 释放由调用GetDC函数获取的指定设备场景
        /// </summary>
        /// <param name="hwnd">要释放的设备场景相关的窗口句柄</param>
        /// <param name="hdc">要释放的设备场景句柄</param>
        /// <returns>执行成功为1,否则为0</returns>
        [DllImport("user32.dll")]
        public static extern Int32 ReleaseDC(IntPtr hwnd, IntPtr hdc);

        /// <summary>
        /// 在指定的设备场景中取得一个像素的RGB值
        /// </summary>
        /// <param name="hdc">一个设备场景的句柄</param>
        /// <param name="nXPos">逻辑坐标中要检查的横坐标</param>
        /// <param name="nYPos">逻辑坐标中要检查的纵坐标</param>
        /// <returns>指定点的颜色</returns>
        [DllImport("gdi32.dll")]
        public static extern uint GetPixel(IntPtr hdc, int nXPos, int nYPos);

  不知道为何用下面的引用就是获取不到颜色,一直返回-1

private static extern int GetPixel(IntPtr hdc, Point p);

  调用方法如下

     public Color GetColor(int x, int y)
        {
            IntPtr hdc = GetDC(IntPtr.Zero); uint pixel = GetPixel(hdc, x, y);
            ReleaseDC(IntPtr.Zero, hdc);
            Color color = Color.FromArgb((int)(pixel & 0x000000FF), (int)(pixel & 0x0000FF00) >> 8, (int)(pixel & 0x00FF0000) >> 16);
            return color;
        }

效果如图

技术分享图片

  由于颜色拾取是根据鼠标位置来拾取的,那怎么把颜色锁住呢?这就需要键盘钩子了,需要监听鼠标按键,光程序内部的MouseClick是不行的,当窗体没有激活的时候也需要获取颜色。所以用到了键盘钩子,键盘钩子代码量太大就不发了,有兴趣的可以联系我。键盘钩子会被部分杀软报毒,原因是它可以监视鼠标和键盘,打密码也会被监视,这个就有点恐怖了。

(二)颜色转换

  这个功能的代码就相对简单了。不管怎么转换只要能拿到Color就可以互相转换。代码如下:

  RGB转Color

        try
            {
                string rgbstr = txt_rbg1.Text.Replace(",", ",");
                int[] list = Array.ConvertAll<string, int>(rgbstr.Split(‘,‘), x => Convert.ToInt32(x));
                if (list.Length == 3)
                {
                    Color c = Color.FromArgb(list[0], list[1], list[2]);
                    JConvert(c);
                }
            }
            catch
            {
                return;  

16进制颜色转Color

        try
            {
                Color c = System.Drawing.ColorTranslator.FromHtml(txt_color161.Text);
                JConvert(c);
            }
            catch
            {
                return;
            }    

效果如图技术分享图片

 

最后放出链接

https://pan.baidu.com/s/1aiNgsIDnKLTx8nq1XtvOBA

以上是关于iShot--macOS上最好用的截图工具的主要内容,如果未能解决你的问题,请参考以下文章

最好用的取色器,颜色转换器

神器| 最好用的PDF软件!全能PDF工具套装!包括但不限于阅读编辑转换等功能!

电脑办公常用的几个小软件,精简,实用,功能强大,推荐给大家

史上最好用的免费pdf相关修改工具,以及开源office

Sketch上最好用的插件合集

ubuntu软件推荐