使用模板向图像添加形状、注释和文本的工具

通常我需要在图片(JPG、PNG格式)和截图(同样是PNG格式的图片)上做一些标注,比如画箭头、线条、基本形状如正方形、椭圆等,并添加一些文字。我还需要能够裁剪、调整大小等操作。
我尝试过Gimp,但只能输入文字和进行所有图像变换,却找不到画框等功能。
最后我选择了Openoffice.org的绘图工具,但我知道那并不是我想要的,因为在oodraw中,我需要将我的图片插入到一个绘图中,并调整它(或者绘图)的大小以适应,然后进行修改,最后导出为PNG格式...
有没有一款图像编辑器可以在JPG和PNG文件上添加形状和文字,并保存修改后的文件?如果这个工具还能有模板集合(就像dia一样)来提供形状,那就更好了。
14个回答

警告:Shutter在Ubuntu 18.04中严重损坏,并在某些版本中被暂时从Ubuntu中删除,但现已在22.04及更高版本中再次可用。 Shutter(您可以从Ubuntu软件中心安装,或者使用命令sudo apt-get install shutter)是一个具有多种选项的工具,用于拍摄和注释屏幕截图。(注意:您可以对任何选择的图像进行注释,不仅限于屏幕截图。)

Shutter example screenshot


+1 for shutter. 非常棒的截图工具。唯一缺少的就是对imgur的支持。 - aperson
@fluteflue:会试试Shutter - 虽然你发布的图片已经很接近我想要的效果了。 - koushik
合适的快门。注意事项: - koushik
92个注意事项:1.界面是间接的-需要点击工具栏按钮以使用内置编辑器进入允许进行注释的窗口。2.sudo aptitude install shutter不会安装所需的libgoo-canvas-perl,这是启用编辑按钮所必需的!一开始无法弄清楚:shutter抱怨缺少Goo::Canvas/libgoocanvas,而aptitude search libgoocanvas显示已安装了libgoocanvas3-未满足(运行时)依赖关系是libgoo-canvas-perl。想在这里提一下,以防有人在阅读后想尝试shutter。 - koushik
1原来有一个错误报告,但被标记为无效 :( http://bugs.launchpad.net/ubuntu/+source/shutter/+bug/549679 - 8128
那绝对不是正确的做法。谢谢你的指点。我会跟进的。 - koushik
6我刚刚覆盖了对那个错误报告的决定,并上传了一个修复程序到Maverick。libgoo-canvas-perl现在是一项推荐安装,并默认安装。 - andrewsomething
1我经常使用Shutter,但它需要安装许多文件/库(mono stack),所以它是一个相当庞大的应用程序。 - artfulrobot
1@andrewsomething 你也可以推荐给Debian Squeeze哦。 :) - Lenik
1@XieJilei Debian在不稳定版和测试版中修复了这个问题,但没有将其回溯到稳定版(Squeeze)。我不知道那里的维护者是否有兴趣这样做,但你可以随时询问:http://www.debian.org/Bugs/Reporting - andrewsomething
3@aperson 图片网站Imgur现在提供支持了:) - davetapley
1如果你在启动 Shutter 后安装 libgoo-canvas-perl,请确保在从桌面和图标托盘关闭程序后重新启动它。 - ssh
哦不... (testAWS1)@pc03:~$ shutter 分段错误 (核心已转储) - Tom
截图后,如果需要编辑,编辑按钮位于右上角,我在我的宽屏幕上很快就找到了。 - iman
2现在在18.04版本中对我来说完全崩溃了。:(( 不仅仅是编辑按钮 -- 我很惊讶还有人能够运行它。:/ - Dɑvïd
@Dɑvïd 谢谢你提供的链接,完全解决了我的问题。我正在使用Ubuntu Budgie 18.04,并且已经成功运行起来了。 - thorne51
1如果Shutter中的编辑按钮被禁用,请使用此处的说明:https://itsfoss.com/shutter-edit-button-disabled/ - rlib
已经有文字工具可用:https://github.com/lupoDharkael/flameshot/issues/187 - Stefano
如果您在Ubuntu 19.10上添加了位于https://shutter-project.org/downloads/third-party-packages/的非官方PPA,它将在系统中正常运行。 - Alan Evangelista
Ubuntu软件中心的快门在我的Ubuntu 18.04上运行得非常好。 - karel
1snap install shutter 在20.04上安装了这个软件,但是软件本身存在一些问题(观察到堆栈溢出导致的崩溃),而且我找不到任何标注工具。它还启动缓慢,加载许多插件需要很长时间。因此给予负面评价。 - Roel Van de Paar
10.95版本已发布,修复了https://launchpad.net/shutter/+announcement/28417的问题。已删除大部分依赖项。PPA中的Deb尚未更新。 - Arul

Flameshot

它带有一些很酷的注释功能,如自由绘制、直线、箭头、方框、圆形、高亮、模糊等。 它还提供了许多屏幕按钮和大量的自定义选项。

enter image description here

它是用QT/C++编写的,非常容易在Ubuntu(18.04+)上安装。
apt install flameshot

你也可以尝试编译适用于旧版本的代码。

2看起来一个新的文本工具已经实施,并将在下一个版本中发布。耶!我会记录一个增强请求以进行透明度控制,然后我们将看开发人员是否接受。;) - Dɑvïd
1这个软件包在我的发行版仓库中找不到,但是我在另一个发行版的仓库里找到了一个二进制文件。你可以在这里找到它:https://repology.org/metapackage/flameshot/packages - virtualxtc
1这太棒了,谢谢!对于 Ubuntu 18.04 以下版本,请从 https://launchpad.net/~harish2704/+archive/ubuntu/ppa1/+packages 下载 deb 包。 - Mr Coder
4+1 对这个我表示赞同,但很遗憾的是,由于某种奇怪的原因,它似乎不允许添加注释(文本)。 - user1283068
3我已经安装了最新版本,并且文本注释已经可用。 - tomaskazemekas
1当前版本提供了文本注释功能。 - Gaurav Gandhi
9这不是一个通用的图像标注工具,而是一个截屏工具。据我所知,你只能对使用它拍摄的截屏进行标注,而不能将现有的图像导入其中。 - Alex
1这个工具真是太棒了!它帮助我快速而简洁地提供关于软件错误和解决方案的反馈,还能与用户界面一起进行截图和标注,并将其保存在剪贴板中,以便轻松粘贴到Slack、Teams、电子邮件或Jira问题中。 - Marecky
@Alex,没错。我喜欢这个工具的截图和编辑功能,但事实上不能用它来进行编辑,而这正是被要求的。-1 - 0xC0000022L
@0xC0000022L, 仔细阅读问题,它要求提供一张屏幕截图,并且这个工具/答案提供了解决方案。 - Gaurav Gandhi
@GauravGandhi确实,仔细阅读问题:“经常需要在图片和截图上做注释”(我删除了括号中的部分,以使句子的实际结构和含义更加突出)...问题显然不是关于截屏。但我会承认这个事实并不一定值得一个踩(在更新URL后撤回了它)。 - 0xC0000022L
我不信任这个工具。在截图已经被拍摄并正在编辑的过程中,我遇到了一个奇怪的全屏截图效果(照片闪光灯空白)。没有其他原因可以解释这种情况。此外,它还有一个图片上传功能,显然是为了上传图片而编写的代码。虽然只发生了一次,没有进一步的证据,但我还是卸载了它。 - Roel Van de Paar
@RoelVandePaar,这可能是一个系统用户界面的小故障,而且这个工具是开源的,可以阅读代码和文档来了解它的工作原理以及上传代码的使用方式。https://github.com/flameshot-org/flameshot - Gaurav Gandhi
它在最新的20.04版本上无法运行。 - mevsme
@mevsme,我刚刚测试过,在全新的Ubuntu 20.04上可以正常运行。你是在尝试使用最小安装变体吗? - Gaurav Gandhi
1+1就是说,喜欢它! - Armin.G

Ksnip

因为我使用KDE桌面环境,使得像Shutter这样的GTK主题应用程序并不理想。在进行了一些研究后,我选择了ksnip作为截图工具。它几乎具备了你所需的所有功能(如果需要裁剪,只需通过再次截图来实现)。

ksnip screen shot of a ksnip screen shot

安装

您可以通过在此处下载.deb软件包https://github.com/DamirPorobic/ksnip/releases来安装ksnip。

或者,您可以通过apt命令检查是否已经在您的Ubuntu版本的软件源中:

$ sudo apt install ksnip

或者通过快照:
$ sudo snap install ksnip

从源代码构建和安装

$ sudo apt install g++ build-essential \
libqt5core5a libqt5dbus5 libqt5gui5 \
libqt5network5 libqt5svg5-dev libqt5widgets5 \
libqt5x11extras5-dev qt5-default qt5-qmake \
qttools5-dev qttools5-dev-tools \
cmake cmake-extras extra-cmake-modules

$ git clone https://github.com/ksnip/kColorPicker
$ cd kColorPicker/
$ mkdir build && cd build
$ cmake .. && make
$ sudo make install

$ git clone https://github.com/ksnip/kImageAnnotator
$ cd kImageAnnotator/
$ mkdir build && cd build
$ cmake .. && make
$ sudo make install

$ git clone https://github.com/ksnip/ksnip
$ mkdir build && cd build
$ cmake .. && make
$ sudo make install

9截至2020年中,ksnip是对现有图像进行注释的首选工具。我尝试过flameshot、kazam、spectacle、shutter、XnView MP、krita、KolourPaint和nomacs,但最终选择了ksnip。 - Roger Dahl
2Ksnip现在也作为snap软件包提供,sudo snap install ksnip,在纯净的Ubuntu上工作良好(我正在使用18.04)。 - Dale C. Anderson
3现在唯一可行的方法是使用 snap install ksnip 进行安装。 - Roel Van de Paar
1非常烦人的是它无法正确地捕捉窗口。它会在窗口周围包括(有时不均匀的)0-20像素的边框。 - Roel Van de Paar
2021年,这是目前在Ubuntu 20.04上唯一有效的工具。 - Kostanos
1我可以确认@RoelVandePaar,在图像的左侧和顶部,选择区域外面添加了额外的像素。右侧和底部与选择区域对齐。 - raphael75

我会使用Inkscape(可以从Ubuntu软件中心安装或使用sudo apt install inkscape命令安装)。

Install via the software center

你需要右键点击图片,选择“打开方式”→ “其他应用程序…”,然后从列表中选择Inkscape。在第一次这样做之后,你可以直接右键点击 → “打开方式”→ “Inkscape”。
这将把图片导入到Inkscape中,并调整页面大小以适应图片。然后你可以进行批注。
要保存图片,你需要使用“文件”→ “导出位图”,点击“浏览…”并选择原始图片。

2+1给Inkscape。哥们儿,这太棒了。在我看来,这确实有一定的学习曲线——虽然比起Photoshop来说小一点。 - koushik
22我喜欢Inkscape,但不同意它是一个适合编辑屏幕截图的好工具。只看看添加一个简单的箭头有多难。 - snowguy
我来这里是寻找一种替代这种方法的选择。如果Inkscape能够在1秒内打开并意识到我只是为了注释屏幕截图而打开它,那就太棒了。但事实上,它不能,并且我们被迫跳过各种麻烦并等待其加载,这在你需要连续进行30个截图时并不好。 - Mr. Developerdude
7这就像用重型武器杀苍蝇一样... - Fran Marzoa
我不同意@snowguy的观点,因为在我的特定用例中,我只需要在图像中使用黑色方框来屏蔽一些机密信息,这非常容易做到。我第一次启动Inkscape只花了20秒钟就完成了。我认为这是一个很棒的编辑截图工具。 - Alex
这并不是一个真正的截图标注工具。 - Roel Van de Paar
这不可避免地引出了以下问题:“如何使用Inkscape绘制箭头?” - Serge Stroobandt

你也可以尝试一下GnuPaint或者Krita。不确定它们是否完全符合你的需求,但它们可能适合你。两者都可以在软件中心找到。
GnuPaint

enter image description here

Krita

enter image description here


gpaint对我来说是一个完美的推荐,它非常小巧、依赖性低,基础功能足够快速标注截图。 - Maks
@Maks:假设你已经添加了一些文本。你如何将其微调到截图中所需的位置(例如,不遮挡图像的其他元素)? - Dan Dascalescu
11对于任何寻找的人来说,Gnu Paint没有撤消功能... 这使它相当无用。 - Ben Winding
1gpaint真的很好。不过,如果能有几个撤销操作的级别就更棒了。 - simgineer

在Ubuntu(或Linux Mint)上,试试Kolourpaint。它易于使用,并具备你所描述的功能。

enter image description here

Install via the software center


2绝对是最好的答案 - 对不起,我用大写字母表达了一下..但我认为这是值得的。我发现其他大多数应用程序都存在错误或臃肿的问题。而这个应用程序非常稳定,只做它需要做的事情,并且与“屏幕截图”中的“打开方式”功能完美配合。而且它的安装包很小。Krita非常臃肿..安装包超过300MB,而这个只有67MB。OP并没有要求屏幕截图功能..我无法理解为什么flameshot会成为一个答案,除非这只是一个无耻的广告插件。Ksnip和gnupaint在其他版本的Ubuntu上不可用(我使用的是Xubuntu)。 - Michael M
只有一个问题...为什么我在每个工具上看到文字而不是图标,比如在图标组的左上方看到“选择(自由形式)”而不是图标? - Michael
同意,对我来说这个方法也是最好的。 - thomas.cloud
安装简单,使用直观! - Beni Bogosel

我使用LibreOffice Impress https://www.libreoffice.org/discover/impress/ 进行批注。
只需将图像复制粘贴到幻灯片中,并添加所有形状和文本作为批注。然后导出为多种可用格式,如JPEG、PDF等。
使用Impress进行批注会将“批注”保留为单独的图层,使您可以随时编辑它们。另一方面,如果您使用Shutter编辑工具进行批注,一旦保存了带有批注的图像,就无法撤消更改(您需要从初始状态重新批注整个图像或使用橡皮擦工具对现有批注进行更正)。

1虽然对于这个任务来说,想到演示软件可能并不明显,但这确实是一个非常好的建议。 - Cie6ohpa
1如果不能在之后编辑注释,那就显得相当无用了。另一个问题是幻灯片的纵横比和尺寸。 - Serge Stroobandt
@SergeStroobandt 我相信 @rlib 是在解释其他软件 — 例如提供的例子:Shutter — 的缺点是在关闭文件后无法修改批注。我觉得这只是为了对比 Impress 在这方面的优势而提到的。 - Levente

如果您想留在GIMP中,您可以添加方框和圆形/椭圆形。使用矩形或椭圆形选择工具,在蚂蚁线出现时,单击主菜单上的“编辑/描边选择”,然后进行线条样式选择。

有一些GIMP插件可以绘制箭头(我没有尝试过),但是只需要几分钟就可以找到一个剪贴画网站,复制箭头图像,使用这些说明将其转换为透明背景的gif,并将其作为新图层添加到图像中。箭头图层可以移动、旋转、缩放、着色等。


很有用的信息。我知道可以用GIMP来做这件事。我确实想继续使用GIMP,因为我已经在很多其他方面使用它了。谢谢你的建议。 - koushik
1我尝试了箭头插件,发现它很难使用。我无法预览箭头的形状。每次都需要点击箭头菜单项来添加箭头线条。虽然不是最理想的情况,但总比没有好。 - Lenik
我也使用过箭头插件。不是一个好的解决方案。它只能绘制直线箭头,如果你同时绘制一些长箭头和一些短箭头,那么长箭头的箭头头部会变得太大,在短箭头旁边看起来很奇怪。 - snowguy
1Gimp是一款位图编辑器。简单的类似矢量的操作,更不用说添加标题或箭头了,这些都不是Gimp设计的目的。使用适合工作的正确工具。 - Dan Dascalescu

Xournal++是一款用于手写笔记或在PDF文件中做注释的工具,或者你可以将任何剪贴到文档(文字、图形)中的内容进行标注。我在在线讲课时经常使用Xournal++结合触控笔进行真正的手写输入,这是我首选的工具。这样我就可以将任何参考资料作为背景,如PDF文档或图片,并在解释主题时实时添加注释。

使用Snap安装,更多安装选项请点击此处

sudo snap install xournalpp

这是一个来自Xournal++网站的示例截图。

Xournalpp demo


你可以使用Firefox或Chrome网页浏览器来完成这个操作。在Firefox上,你需要安装Fireshot插件,在Chrome上则是"屏幕截图"。
https://​addons.mozilla.org/en-US/firefox/​addon/​fireshot

很抱歉,fireshot只能在Windows系统上运行。这里是一些类似的插件,请自行测试。 https://addons.mozilla.org/en-US/firefox/search/?q=screen+grab&appver=11.0&platform=linux 在Chrome浏览器上,可以使用Screen Capture插件。
https://chrome.google.com/webstore/detail/cpngackimfmofbokmjmljamhdncknpmg

这个工具能捕捉除了网页内容以外的其他区域吗?比如说,它能捕捉Chrome DevTools吗? - Dan Dascalescu