How-to Convert a Command Line Result into an Image in Linux

Here’s a technique to convert a command line result into an image in Linux using ImageMagick.

You could also do a screenshot (with PrtSrc key) and use Gimp to trim the image, but this method is faster and does not require a graphical interface.

command line to PNG example
Result of ./cmd2png.sh ifconfig ifconfig_cmd.png

The simplest command to convert the result of ifconfig into an image:

ifconfig | convert label:@- cmd.png

This will give an image with a white background and black text, but If you want to have a black background with white text you can use the following:

ifconfig | convert -background black -fill white \
label:@- cmd.png

If you want to change the font and the font size:

ifconfig | convert -background black -fill white \
-font Helvetica -pointsize 14 \
label:@- cmd.png

You can retrieve the list of fonts with this command:

convert -list font | grep Font:

Finally, use this command to add an extra black border for a better looking image:

ifconfig | convert -background black -fill white \
-font Helvetica -pointsize 14 \
-border 10 -bordercolor black \
label:@- cmd.png

If you are always going to use this command often and always apply the same style, you could also write a script:

#!/bin/sh

$1 | convert -background black -fill white \
-font Helvetica -pointsize 14 \
-border 10 -bordercolor black \
label:@- $2

Let’s name the script cmd2png.sh then run the script as follows:

./cmd2png.sh “ifconfig eth0” “ifconfig_cmd.png”

Those commands were tried in Ubuntu 10.04 LTS.

3
Leave a Reply

avatar
3 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
Dirk HaarDirk HaarSiddharta Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
Siddharta
Guest
Dirk Haar
Guest

VERY helpful, even after this long time…
All the other ways like batching GIMP, ImageMagick oder phatch have neither an easy way nor any good example how to add text to a wallpaper in a simple way.
After hours of searching, installing and trying here I am – THANK YOU!
Your help esulted in this little script:
#——————————————-
#!/bin/bash
# gather some info and store it as text in ~/sysinfo.txt
# especially to fill a text box on a wallpaper with GIMP
echo > ~/sysinfo.txt
echo >> ~/sysinfo.txt
echo >> ~/sysinfo.txt
echo >> ~/sysinfo.txt
date >> ~/sysinfo.txt
uname -o >> ~/sysinfo.txt # OS
uname -n >> ~/sysinfo.txt # Rechner
uname -s -r >> ~/sysinfo.txt # Kernel & Release
uname -v >> ~/sysinfo.txt # Version
uname -p >> ~/sysinfo.txt
bash –version > /tmp/bashversion
head -1 /tmp/bashversion >> ~/sysinfo.txt
ls /home >> ~/sysinfo.txt # User
lscpu >> ~/sysinfo.txt
df -h >> ~/sysinfo.txt
cinnamon –version >> ~/sysinfo.txt
xrandr >> ~/sysinfo.txt

cat ~/sysinfo.txt | convert -size 1680×1050 -roll x+1100 -background black -fill DeepSkyBlue -font Ubuntu-Mono-Regular -pointsize 12 label:@- ~/.cinnamon/backgrounds/sysinfo.png
#——————————————-

If you use it, don’t forget to change the last folder/file to your own wallpaper folder and switch the wallpaper once after first run.
The first empty echoes were needed because I couldn’t find out how to shift the text a little lower (my task bar is on top), but I don’t mind.
I added a cron job which call this script every 30 min.

You could add command
convert -list color
to improve the list above.

Dirk Haar
Guest

Of course my comment “GIMP” is fault – left over from an older version where I tried to use the gimp command line interface (without positive results). Sorry for that.

Btw., in Ubuntu 15(?) and so in my Linux Mint 18 (and I guess aready in 17.3) policies had been changed for security reasons so that the “label:@-“parameter doesn’t work anymore; a manual change of this policies was not succesful yet. :-((