Creating circular thumbnails in the terminal

Circular pictures (like the one to the right) has become increasingly popular on the web. We have, for example, included circular pictures in RITMO’s annual report, and we therefore also wanted to use circular pictures in a presentation at our upcoming LARGO conference. The question, then, is how to create such circular pictures?

The circular pictures in the annual report are made through a CSS overlay. So if you try to right-click and save one of those, you will get the original rectangular version. It is, of course, possible to add circular thumbnails in the presentation software, using the circular crop function in PowerPoint or add mask function in Keynote. The challenge with these, however, is that you may get into trouble if you move your presentation from one program to another. I often prefer to make presentations in Google Presentation, and there is no such feature there.

The most bullot-proof solution is therefore to create new circular images. This can be done in photo editing programs, such as the circle image function in GIMP. But for a centre of the size of RITMO (50+ people), and with many people coming and leaving all the time, I would rather prefer an automatic solution. I therefore decided to figure out how to do this in the terminal.

It turns out that Imagemagick comes to the rescue once again. Here is a one-liner for creating a circular PNG image from a JPG file:

convert alexander.jpg \( +clone -threshold -1 -negate -fill white -draw "circle 100,100 100,0" \) -alpha off -compose copy_opacity -composite alexander_circle.png

This will take a regular image like this:

and make it into a circular image like this:

Since the original was a 200x200px image, I used the code “circle 100,100 100,0” in the script to ensure that the circle would be in the centre of the image.

The next step was to extend the script to read all the JPG files in a folder and convert them into circular images. This can be done like this (at least on Ubuntu):


for i in *.jpg;
  name=`echo $i | cut -d'.' -f1`;
  convert "$i" \
  \( +clone -threshold -1 -negate -fill white -draw "circle 100,100 100,0" \) \
  -alpha off -compose copy_opacity -composite $name.png;

Save the script as (or whatever else you prefer), make it runable (chmod u+x, and run it (sh, and you get a bunch of circular images that you can be used in any program around. Scripting is fun!

Rotate lots of image on Ubuntu

I often find myself with a bunch of images that are not properly rotated. Many cameras write the rotation information to the EXIF header of the image file, but the file itself is not actually rotated. Some photo editors do this automagically when you import the files, but I prefer to copy files manually to my drive.

I therefore have a little one-liner that can rotate all the files in a folder:

find . *.jpg -exec jhead -autorot {} \;

It works recursively, and is very quick!

Sort images based on direction (portrait/landscape)

I have lots and lots of photos on my computer (and servers!). Sometimes I have a pile of photos of which I want to find only the ones that are in portrait or landscape mode. This can be done manually for a few images, but browsing through thousands of them is more tricky. Then I often tend to use a nifty little shell script that I found here. It effectively sorts all images into two folders automagically.

Remove standard bookmarks in Nautilus

Yet another note to self on how to fix things in Ubuntu after a fresh install, found at askubuntu, this time to remove the standard bookmarks in the Nautilus file browser. I use a different setup of folders, and don’t really need these unused bookmarks. I wish it could have been easier to just right-click and delete to remove them (like for your own bookmarks), but it turns out to be a bit more tricky.

The default bookmarks are actually built from ~/.config/user-dirs.dirs, and this file is rebuilt on login from /etc/xdg/user-dirs.defaults. So it is necessary to modify both of the files, which may most easily be done with:

nano ~/.config/user-dirs.dirs

sudo nano /etc/xdg/user-dirs.defaults

In the nano editor you should comment out the ones that you don’t want.

And after a login the bookmarks are gone.

Move windows between screens on Ubuntu

As part of the fun of reinstalling an OS, you need to set up all the small things again (and you also get rid of all the small things you had set up and that you don’t need any longer…). This message is mainly a note to self about how to move windows between screens on Ubuntu with a key combination, found at stackexchange:

  1. Install CompizConfig Settings Manager:  sudo apt install compizconfig-settings-manager compiz-plugins-extra
  2. Run Compiz from the dash
  3. Click Window Management
  4. Enable the Put plug-in (select the check-box)
  5. Click on Put
  6. Configure the shortcut for Put to next Output (click enable). I like to use <super-less>, since that key combination is very convenient on a Norwegian keyboard
  7. Log out and back in to make changes take effect