113

Often I need to annotate (draw some arrows, lines, basic shapes like squares, ellipses etc and enter some text) on top of pictures (JPG, PNG images) and screenshots (again png images). I would also need to be able to crop, resize etc.

I tried the Gimp but I could only enter text and perform all image transformations but couldn't find a way to draw boxes etc.

I finally settled to Openoffice.org draw, but I know that isn't what I want, because in oodraw I need to insert my pic into a drawing and resize it (or the drawing) to fit and then go about making changes and finally export to png...

Is there any image editor that allows adding shapes and text to jpg & png files and save the modified file in its place? If the tool can also have template collections (like dia does) for shapes that is an added bonus.

13 Answers 13

108

Warning: broken. Shutter is severely broken in Ubuntu 18.04 and not available in later versions.

Shutter (which you can install from the Ubuntu Software Centre or sudo apt-get install shutter) is a tool which has a variety of options for taking and annotating screenshots. (Note: You can annotate any images of your choice, not just screenshots.)

Shutter example screenshot

22
  • 9
    2 notes: 1. Inteface is indirect - need to click on the toolbar button for editing with in-built editor to get to the window which allows annotations to be made. 2. sudo aptitude install shutter doesn't install libgoo-canvas-perl which is required for enabling the edit button! Couldn't figure it out straight away: shutter complains of missing Goo::Canvas/libgoocanvas while aptitude search libgoocanvas show libgoocanvas3 is installed - the unmet (runtime) dependency is libgoo-canvas-perl. Thought of putting it here in case anyone wants to try out shutter after reading this.
    – koushik
    Sep 6 '10 at 6:22
  • 1
    Turns out there is a bug report, but it's been marked invalid :( bugs.launchpad.net/ubuntu/+source/shutter/+bug/549679
    – 8128
    Sep 6 '10 at 7:00
  • 6
    I just over-ruled the decision on that bug report, and uploaded a fix to maverick. libgoo-canvas-perl is now a Recommends and is installed by default. Oct 5 '10 at 2:34
  • 3
    @aperson imgur support is there now :)
    – davetapley
    Aug 10 '12 at 4:10
  • 2
    And now completely borked for me in 18.04. :(( And not just the edit button -- I'm amazed people have it running at all. :/
    – Dɑvïd
    Jun 9 '18 at 12:03
57

Flameshot

It comes with some cool annotation features like Freehand drawing, Lines, Arrows, Boxes, Circles, Highlighting, Blur, etc. It also comes with many on-screen buttons as well lots of customization options.

enter image description here

Its written with QT/C++ and it's very easy to install in Ubuntu(18.04+).

apt install flameshot

You can also try to compile for older versions.

16
  • 2
    It looks like a new text tool is implemented and will be in the next release. Yay! I'll log an enhancement request for opacity control, and we'll see if the dev goes for it. ;)
    – Dɑvïd
    Jun 9 '18 at 12:00
  • 1
    It wasn't in my distros repository, but I was able to find a binary in another distro here: repology.org/metapackage/flameshot/packages
    – virtualxtc
    Nov 8 '18 at 0:36
  • 3
    +1 for this one but it's such a shame that it for some strange reason doesn't seem to allow annotations (text) to be added. Mar 15 '19 at 9:18
  • 2
    I have installed the latest release and text annotations are already available. Aug 9 '19 at 6:47
  • 7
    This is not a general image annotation tool, it's a screenshot tool. As far as I can tell, you can only annotate screenshots you took with it, not open existing images into it.
    – Alex
    Jan 23 '20 at 9:10
14

Ksnip

Because I run KDE using GTK themed apps like Shutter is not ideal. After doing some research I settled on ksnip as a screenshot tool. It has pretty much everything you asked for (if you need to crop, just do it by taking another screenshot).

ksnip screen shot of a ksnip screen shot

Install

You can install ksnip buy downloading the .deb packages here https://github.com/DamirPorobic/ksnip/releases

or check if it's already in your version of Ubuntu's repository vi apt:

$ sudo apt install ksnip

Or via snap:

$ sudo snap install ksnip

Build and install from source

$ 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
5
  • 5
    As of mid-2020, ksnip is the way to go for annotating existing images. I tried flameshot, kazam, spectacle, shutter, XnView MP, krita, KolourPaint, and nomacs.
    – Roger Dahl
    Jun 28 '20 at 3:22
  • 2
    Ksnip now comes as a snap too sudo snap install ksnip, and works just fine on vanilla Ubuntu (i'm using 18.04). Sep 16 '20 at 17:01
  • 3
    snap install ksnip Is the only viable route now Nov 6 '20 at 22:32
  • It is very annoying it does not grab windows correctly. It includes (and at times non-uniform) border of 0-20 pixels around the window. Nov 6 '20 at 23:58
  • 2021, this is the only tool that works now a day in Ubuntu 20.04
    – Kostanos
    Aug 24 at 10:04
10

I would use Inkscape

(that can be installed from the Ubuntu Software Centre or sudo apt install inkscape).

Install via the software center

enter image description here You will need to right click the image, select Open WithOther Application… and chose Inkscape from the list. After you have done this the first time, you can just Right Mouse ClickOpen WithInkscape.

This will import the image into Inkscape and the page will be sized to fit the image. You can then make your annotations.

To save it, you need to use FileExport Bitmap, click Browse… and chose your original image.

7
  • 2
    +1 to inkscape. Man, this is awesome. IMO there is a learning curve though - albeit smaller than, say, photoshop.
    – koushik
    Sep 6 '10 at 5:47
  • 20
    I love inkscape but don't agree that it is a good tool for editing screnshots. Just see how hard it is to add a simple arrow.
    – snowguy
    Jul 11 '12 at 15:24
  • I came here looking for an alternative to this approach. If Inkscape could open in under 1 second and recognized that In fact I just opened it for annotating a screencapture then that would be awesome. But it doesnt, and we are forced to jump thorough hoops and wait for it to load which is not good when you have 30 screenshots to do in rapid succession. Mar 23 '15 at 12:54
  • 6
    This is like killing flies with heavy artillery... Jul 13 '17 at 15:39
  • I don't agree with @snowguy for my particular use case. I just needed to censor some confidential information in an image with black boxes and that was incredibly easy to do. Took me all of 20 seconds from launching Inkscape for the first time in my life. I think it's a great tool for editing screenshots.
    – Alex
    Jan 23 '20 at 9:28
7

You also might want to try GnuPaint or Krita. Not sure if it's exactly what you're looking for, but they might work for you. Both are in the Software Center.

GnuPaint

enter image description here

Krita

enter image description here

4
  • gpaint was the perfect recommendation for me, minimal small, deps and basic to quickly mark up a screenshot
    – Maks
    Sep 7 '14 at 5:55
  • @Maks: let's say you've added some text. How can you nudge it around to the desired position in the screenshot (e.g. to not obscure other elements of the image)? Nov 1 '16 at 0:47
  • 9
    For anyone looking, Gnu Paint does not have an undo function... rendering it pretty useless Jun 29 '18 at 1:59
  • gpaint is really nice. a couple levels of undo would really rock though.
    – simgineer
    Apr 12 '19 at 1:01
5

On Ubuntu (or Linux Mint), try Kolourpaint. It's easy to use and has the features you describe.

enter image description here

Install via the software center

2
  • 2
    ABSOLUTELY THE BEST ANSWER - sorry about the caps .. but I think its worth it. I found most other app to be buggy or bloated. This one is solid, does only what it needs to, and works perfectly with the Open With feature in Screenshot. Also its a small install. Krita is very bloated .. install was over 300MB, this is just 67MB. OP did not ask for screen-shotting feature .. I cannot fathom why flameshot is an answer unless its just a shameless plug. Ksnip and gnupaint aren't available for other flavors of Ubuntu (I'm on Xubuntu)
    – StartupGuy
    Mar 14 '19 at 19:20
  • Just one question... why instead of icons do I see text for each tool e.g. "Selection (Free-Form)" instead of the icon in the upper left of the group of icons?
    – Michael
    Aug 16 at 16:03
4

If you want to stay in gimp, you can add boxes and circles/ellipses. Use the rectangle or ellipse selection tool, and when you have the marching ants, on the main menu click Edit/Stroke Selection, then make your line style choice.

There are gimp plug ins to do arrows (that I have not tried), however it took only a few minutes to find a clip art site, copy an arrow image, convert it to a transparent-background gif using these directions, and add it as a new layer to the image. The arrow layer can be moved, rotated, scaled, colored, etc.

4
  • Informative. I knew there was a way to do it with the gimp. I also indeed want to stay with the gimp - since I already use it for so many other things. Thanks for the tip.
    – koushik
    Sep 7 '10 at 9:25
  • 1
    I have tried the arrow plugin, it's hard to use. I can't preview the arrow shape. I had to click the arrow menu item for each arrow line. Better then none, though. May 23 '12 at 6:43
  • I also have used the arrow plugin. Not a good solution. It only does straight arrows and if you do some long arrows and some short arrows the long arrows head gets too big and looks strange next to a shorter arrow.
    – snowguy
    Jul 11 '12 at 15:25
  • 1
    Gimp is a bitmap editor. Simple vector-like operations, let alone adding captions or arrows, are just not what Gimp was designed for. Use the right tool for the job. Nov 1 '16 at 0:46
4

I use LibreOffice impress https://www.libreoffice.org/discover/impress/ for annotations.

Just copy paste the image into the slide and add all the shapes and text which will serve as annotations. Then export to any of many available formats, like JPEG, PDF, etc.

Annotating with Impress keeps "annotations" as a separate layer allowing you to edit them at any time. On the other hand, if you annotate with, say, Shutter editing tool, once you saved the image with the annotations, you cannot undo the changes (you'll need to re-annotate the entire image from the initial state or use eraser tool to make corrections to existing annotations).

2
  • 1
    Although It is not obvious to think at presentation software for this task, this is indeed a very good suggestion.
    – user23731
    Apr 16 '20 at 6:43
  • 1
    Seems pretty useless if one cannot edit the annotations afterwards. An additional issue is the aspect ratio and size of the slide. Jun 28 at 12:07
2

You can use firefox or Chrome web browser to do this. On firefox you have to install fireshot addon and on chrome "screen capture"

https://​addons.mozilla.org/en-US/firefox/​addon/​fireshot

Unfortunately fireshot works on Windows only. Here's a list of such addons. Please test them on your own. https://addons.mozilla.org/en-US/firefox/search/?q=screen+grab&appver=11.0&platform=linux

Screen Capture will do on Chrome

https://chrome.google.com/webstore/detail/cpngackimfmofbokmjmljamhdncknpmg
1
  • Can you capture other areas than the web page content with this tool? E.g. can you capture the Chrome DevTools? Nov 1 '16 at 0:48
2

I recommend the "Awesome Screenshot" extension, You can easily add there text, simple arrows and other shapes.

Google Chrome

https://chrome.google.com/webstore/detail/awesome-screenshot-screen/nlipoenfbbikpbjkfpfillcgkoblgpmj

Firefox

https://addons.mozilla.org/en-US/firefox/addon/awesome-screenshot-capture-

Opera

https://addons.opera.com/en/extensions/details/awesome-screenshot-capture-annotate/

1
  • Please mention the limitations of Awesome Screenshot. Can you take a screenshot of the browser's DevTools, for example? Nov 1 '16 at 0:49
1

Xournal++ is the tool for freehand note taking or annotating pdf files, or anything you cut and paste in your document(text, graphics). I use Xournal++ in combination with a stylus for true free hand input as my goto tool when giving lectures online. This allows me to use any reference material as a background such as pdf documents or images and add annotations in real time while explaining the subject at hand.

Install using snap, more instructions here.

sudo snap install xournalpp

Here is an example screenshot from Xournal++ website

Xournalpp demo

0

You can take a look here, u'll find a lot of funny chrome extensions:

https://chrome.google.com/webstore/search-extensions/screenshot?hl=en-US

And this articile talks about some others:

http://www.hongkiat.com/blog/top-web-annotation-and-markup-tools/

1
  • 2
    Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference (ie. post examples of the Chrome Extensions)
    – Oyibo
    Dec 31 '12 at 17:47
0

You can use Pixtick. Web tool, no installation required and free. http://www.pixtick.com

2
  • 3
    Your answer would be improved by adding screenshots showing that the tool you recommend can do what the OP asks.
    – Elder Geek
    Sep 2 '14 at 15:02
  • 6
    requires flash....
    – virtualxtc
    Nov 8 '18 at 0:27

Not the answer you're looking for? Browse other questions tagged or ask your own question.