Creating a comic strip using open source tools

Creative Cartooning

Article from Issue 220/2019

Did you know that the Elvie cartoon strip in this magazine is created entirely using open source software? With this behind-the-scenes look at the process, you might be inspired to create the next big webcomic.

It was a little over five years ago that the Elvie cartoon appeared in the first issue of Linux Voice, but its genesis dates back far further. Way back in 1994, two friends, Mark (your correspondent) and Vince (a talented artist), installed CorelDRAW from a magazine cover disk in order to play around with vector graphics. A shared interest in cult TV and science-fiction led to their first comic series, The Greys, under the name of Peppertop Comics [1], with Vince creating the artwork to go with Mark's words.

Life got in the way, and the cartoon fell by the wayside. By 2009, however, Mark had been experimenting with Inkscape [2] – a free software program for creating vector graphics. They decided to migrate the old comics to the new software and try launching the series as a webcomic. It was a moderate success, with a fan following that encouraged Mark and Vince to continue pushing out new cartoons every couple of weeks. Keen to encourage their readers to start playing around with FOSS, they made the source files available for download. Each strip also included additional Easter eggs, which could often only be found by downloading the files and opening them in Inkscape.

A commission for a weekly cartoon in a local newspaper followed. Again, Inkscape was used as the main program of choice. But to give the new strip a different feel, they chose to use hand-drawn graphics that were scanned, then converted to vectors in Inkscape. This approach let them build up a large library of backgrounds, characters and props that could easily be reused again and again, speeding up the creation of the cartoons to maintain the pace of weekly publication.

When the Linux Voice team completed their crowdfunding campaign, Mark approached the editor to ask if the magazine needed a cartoon. The response was positive, but came with a warning: The deadline for the first magazine was only two weeks away! A few frantic evenings thinking up jokes and trying different character designs resulted in a rather rushed first outing for Elvie – named after the "LV" initials of the magazine. Once again, a new approach to creating the comics was used. Inkscape still served duty for the frames and speech bubbles, but the artwork was created using a graphics tablet and the MyPaint [3] application – an arrangement that has remained largely unchanged ever since (Figure 1).

Figure 1: Elvie's first outing shows how her design was rushed.

Choosing a Style

You might think that creating a comic strip or a cartoon is a simple process: you just have to draw the content for the panels, add a little text, and put the finished image online. But in most cases, your new strip will be part of a series. It may not be a "named" series, such as Elvie, but take the example of topical or political jokes in newspapers: Each artist will stick to the same style and position their signature in the same place. So before you start to draw anything, the first step is to decide on a style.

The more you look at other people's comics and cartoons, the more you realize that there are certain rules to follow. The shape and size of a humorous sketch for a greeting card is very different from the full-page image used with a graphic novel. A single panel joke might get away with no border, but once you need to show how things change over a period of time, it's typical to split the story into frames, each with its own outline. Speech could be as simple as a string of text, loosely attached to the character's mouth with a single line, or it might require a complex, colored bubble, shaped to distinguish between different types of speech or thought (Figure 2).

Figure 2: Examples of different types of speech bubble across three styles.

Inevitably, a time will come when your speech bubbles and your frame come into conflict. Usually this is a simple case of too much text for too small a frame, but, especially when designing for print, you may not have the ability to make the frame any larger. The first step is to edit the text down: Many Elvie strips start life as lengthy monologues or discussions between the characters before being pared down to just a handful of words. But editing can only get you so far before you reach a point where the impact of the joke or story is lost. Then you need to decide how to resolve the conflict between bubbles and frames. In the case of Elvie, the usual technique is to cut the bubbles off hard at the borders: this turns a curved shape into one with some straight edges, making it much easier to flow the text into the shape. Other comics let the bubbles float above the borders, breaking out of the confines of the panel to allow the extra text to fit.

If you're designing for an ongoing series, you'll probably also have to consider the standard "furniture" of the strip: its name, your own signature or contact details, and, possibly, an area to include license information. All this eats into the available space for the comic itself: The "Elvie" logo in this magazine has recently been rotated to make it slightly more horizontal in order to claw back a few precious millimeters in the first panel of each strip.

Don't forget to spend some time choosing your fonts! There are lots of comic fonts available commercially from sites such as, and many sites make some fonts available at no charge. You'll want at least a standard dialog font for your characters' speech bubbles, but you might require fonts for sound effects and titles. The same text can have a radically different feel depending on the font you use, so it's worth giving this some thought.

For The Greys, Mark and Vince opted to use the standard Arial font for dialog. It's not a very comic-like font, but it nicely reinforced the clean vector style of the artwork. In the case of Elvie, a decision was made to use fonts that are themselves released under an open font license. Limiting the choice to open fonts greatly reduces the range of available typefaces, but it does mean that the cartoons are totally open, right down to the individual letterforms. The Open Font Library [4] is a good resource for finding fonts under open licenses, but it doesn't take long on the site to realize that there aren't many comic fonts available. For most cartoon work, therefore, you are likely to have to either pay for commercial fonts, or at least use fonts that are free of charge but not freely licensed. If there are any budding font designers out there, creating additional comic and effect fonts under an open license would be a great way to contribute.

The key thing is to pick a style that works for you. If you're not very adept with your tools, stick to something simple, with plain borders and basic speech bubbles. Elvie uses drop shadows on the speech bubbles, fades the first panel out under the logo, and has an awkward cutout in the frames to leave space for the license information. All of this is only possible because of the years of Inkscape experience Mark and Vince have acquired during their years creating The Greys – otherwise such graphical flourishes would just serve to slow the creative process.

Of course, rules are there to be broken – and in the case of cartoons and comics, a little anarchy can make the difference between a good comic and a great one. A strong style will register subconsciously with your readers, making any deviations from the norm even more jarring in a way that can be used creatively. In an example from The Greys, a strip in which a spaceship is under attack quickly starts to tilt and rotate the frames before finishing with the complete destruction of the regular page furniture, leaving the Creative Commons icons rolling across the screen, and the regular border literally hanging on by a few wires. But more subtle tweaks are possible, such as the usual red Elvie logo being replaced with a green "Elfie" equivalent for a cartoon about the game NetHack. That one also played with the borders, shaping them to look like the blockwork of a medieval castle at first glance, but in a way that also mirrored a thought bubble in the final panel, implying that the events of the earlier panels were all in Elvie's head.

Getting Creative

Having decided on your comic's style, it's time to start creating some content. Usually this begins with the script: a joke, a story, or even a rough plot idea. At this point, there's no need to go anywhere near any graphics software; it's just about getting the basics of the text written down. Any old text editor will do the job. Comics do sometimes use bold-italic text to emphasize key words in the speech bubbles, but that doesn't mean you need a full word processor. Simply wrapping any emphasized words *in asterisks* is sufficient. You should just hammer out your initial text as quickly as you can, to avoid forgetting that brilliant punchline or subtle plot point, with little regard to how it will finally appear in the comic. Here's an example of the initial notes for the recent "Cambridge Analytica" strip, from issue #213:

Cambridge Analytica joke:
James is shocked by social media
profiling so has posted warnings
to his friends -- on a social
media site!

With a rough idea written down, it's now time to work on the script in order to split it into individual panels. Are there obvious breaks or pauses in the conversation which warrant a change to another frame? Does the conversation bounce back and forth between characters too much to fit into a single image? Is there a clear punchline that deserves a panel of its own? The brief idea above was expanded into this:

[Panel 1: James is talking to Elvie
in front of a screen showing a
social media site]
James: With the Cambridge Analytica
scandal, I was shocked to hear how
extensively social media companies
can profile you, just based on your
normal activity on the site.
Elvie: So you've decided to delete
all your accounts?
[Panel 2: Close-up on James]
Friend: No... but I have liked,
shared and retweeted the news
stories, to warn all my friends.

Now it's finally time to start drawing something! For an Elvie strip, this usually consists of Mark creating the overall layout in Inkscape. Panels are drawn, sizing them to approximately the right proportions based on what each one needs to contain. The text is put in place, and edited to fill the right space in the cartoon. Speech bubbles are drawn, but the tails are left as separate objects and any part that extends beyond the border is only approximately cut off or hidden. This is about getting an initial idea for how the content fits together, not trying to get it absolutely right from the start.

The Inkscape drawing is saved and will go on to form the basis of the final strip. Because the text, panels, and bubbles are all vector objects, they can be edited, tweaked, and moved around right up to the last moment – something that's much harder if you only use raster graphics for your comic. In the case of Elvie, however, the characters and sets are drawn as raster graphics, using MyPaint. To help get the sizes and proportions right for each panel, Inkscape's ability to export to PNG format is used to create an initial raster version of the layout, at the full resolution required for the final appearance in the magazine.

The resultant 600dpi image, measuring about 4000 pixels wide, is imported into its own layer in MyPaint. A suitable brush is chosen in the program – typically some sort of pencil or marker pen – and then Mark starts to sketch the positions of the characters and other key elements. These are typically drawn in light blue: This is a hold-over from working on hand-drawn comics, where light pressure with a blue pencil lets the artist play with sketch ideas that can then be inked over in black. The blue pencil lines provide a clear contrast so, unlike with grey pencil lines, it's very clear where parts of the outline might still be missing. The blue lines are erased before the outline is scanned or filled and, again, the contrasting color helps to show where sketch lines have yet to be removed. You can see the result of this step in Figure 3.

Figure 3: Mark's Elvie sketches still leave much to the imagination.

It's time for a real artist to take over, so Vince sketches his own version of Mark's scribblings. As with most drawing software, MyPaint has support for multiple layers. Typically the new content is drawn on a layer above the original sketch. The panel borders and speech bubbles may be roughly reproduced in yet another layer, allowing the first sketch to be hidden completely without losing track of the areas of the cartoon that shouldn't be drawn into. The end result is still a sketch, but one that starts to get much closer to the final design (Figure 4).

Figure 4: Vince's Elvie sketches get much closer to the final design.

This is the ideal time to make changes. It's rare for a sketch to be perfect the first time, so there's usually an iterative process in which tweaks are made and resubmitted for an additional round of discussions. This happens throughout the entire creative process, but if there are changes required, it's much easier to make them at the sketch stage rather than later on. Typically a sketch might be revised three or four times before the next step: outlining.

Look at almost any comic, cartoon, or graphic novel, and you'll notice that the characters and objects typically have a black, or at least dark, outline. This helps to define the edges of the elements, separating characters from background, or clothes from the people wearing them. In a 2D medium, it's easy for everything to look flat, as though it's at the same distance from the reader, so sharp edges help the brain to distinguish between parts of the image. For some styles, this outline is barely visible; for others – particularly comedy works that aren't trying for any semblance of reality – the outline can be quite thick. In the case of Elvie, there tends to be a thick outline around the outside of characters, and inner lines are much thinner.

Drawing outlines over the blue sketches takes place on yet another layer or, more often than not, a new layer for each part of the scene. In the case of the example strip, there were separate layers for Elvie, James, and the background. Some strips have many, many more. Splitting the parts into separate layers makes it easier to tweak the exact position of everything later on. This is also a good time to split the individual panels into separate files.

In addition to the outline layers, it's typical to also create a color or fill layer for each element. Each of these layers will eventually hold the final colors for the element, but for now they're usually filled with white simply to stop the outlines of other elements from showing through (Figure 5).

Figure 5: After outlining and filling, the final layout starts to take shape.

For most comics, there is a step known as flatting, in which individual parts of the image are filled with an appropriate flat color. This new color replaces the single white color from the previous step with an impression of how the final colors might look. Flat colors are also easy to select with the magic wand tool in graphics programs, allowing you to limit the extent of any changes you make as you further refine your image. For Elvie, the images are boldly colored, with little use of gradients or subtle color changes, so flatting usually gives something close to the final color palette for the cartoon (Figure 6).

Figure 6: Flatting adds in the base colors for the final strip.

There's one more step to perform in the raster software: the addition of highlights, shadows, and fine details. You can easily spend a lot of time on this step, trying to make your image look as good as possible. Or, if the style of your comic suits it, you can go for a quick-and-dirty approach with sharp transitions and scant regard for small excursions beyond the outline of your element. A very close look at any Elvie strip will likely expose sections of color that leave their own territory, but minor infractions are allowed to pass uncorrected as it helps to keep the loose and easy feel of the strip. In Figure 7, you can see the result of adding highlights and shadows to the image, as well as a close-up of one of the many color breaches.

Figure 7: Highlights, shadows, and an inability to color inside the lines that most people beat in childhood.

After many trips back and forth between Vince and Mark (a typical Elvie panel will go through about 10-15 revisions), the raster image is completed. Nearly. Vince sends the MyPaint file to Mark to import into Gimp, where it's easier to finely adjust the positions of the individual layers. Any remaining layers with construction lines are turned off, and the image is cropped to give a clean edge. The final panels are exported as PNG files.

Return to the Vector World

Back in Inkscape the PNG images are imported by dragging them into the window. Once again layers are used: This time a single layer holds all the raster images to allow them to be stacked easily behind the speech bubbles and borders. Inkscape defaults to 90dpi for rasters, resulting in the imported images being far too big for the panels. Zooming out is quickly achieved by holding the Ctrl key while spinning the mouse wheel, so it's trivial to reach the zoom level required for the edges of the raster to become visible. Now the image can be selected, and the resize handles used to scale it down to suit the panel it's being put into. Once again, the Ctrl key comes into play, this time ensuring that the image is scaled in proportion. When the size is close enough, Mark zooms back in for fine positioning and size adjustment. The aim is to get as much of the image content as possible into the panel while not clashing with the speech bubbles – and making sure there's at least a little of the image that extends beyond the panel border.

The final strip needs to have crisp, clean edges, so any part of the image that does extend beyond the border has to be clipped. This is achieved by duplicating the border shape, cutting it from the strip (Ctrl+X), and then pasting back onto the raster layer, but at exactly the same coordinates it was removed from, using the Edit | Paste In Place option in Inkscape (Ctrl+Alt+V). The pasted border remains selected, and the raster can be added to the selection with a Shift-click. From the menus, Object | Clip Set will set the duplicated border as a "clipping path" for the raster image – meaning that any part of the PNG that falls outside the border will not be drawn. Thus each panel image is constrained to its own area and doesn't leak out beyond the edges (Figure 8).

Figure 8: Before and after clipping a panel in Inkscape.

At this point, the drawing work is almost complete. There may be some final tweaking of the text and speech bubbles, but the leaders are still separate objects, sitting on top of the speech bubbles rather than joining to them. Selecting both the leader and the bubble and then using the Path | Union menu entry combines the two objects into a single composite path to give the final shape that an Elvie bubble requires. If the bubbles extend beyond the panel edge, you'll need another round of clipping.

Although the artistic content is finished, there's still some practical work to do before the strip is sent for publication. The SVG format that Inkscape uses may be a web standard, but there's not even full compatibility between different browsers, let alone with a professional print workflow, so sending the Inkscape file directly isn't an option. Although it should be possible to export in another vector format that's more familiar to Adobe software – such as EPS or PDF – experience has shown that even those formats can expose issues between different platforms and programs. Instead the cartoon is exported as a 600dpi PNG image. There is some loss of fidelity with this approach: Remember that the raster images for the panels are also 600dpi, but have been scaled arbitrarily so an original pixel in the raster may not fall in the same position as one in the export. Inkscape interpolates between pixels to overcome this mismatch, and the resolution is high enough that, although the export may not technically be perfect, the end result is easily good enough.

With a large PNG image in hand, it's time for one last trip to Gimp. Through their history of comics appearing in print, Mark and Vince are well aware that the colors that are displayed on screen can be significantly different from those that end up on the paper. For Elvie, the specific colors aren't terribly important – nobody's going to notice if her hair has a touch more cyan than intended – but the overall lightness of the whole strip does make a difference. Compared with Mark's PC, comics tend to print darker than expected, so a preset color adjustment curve is used to brighten the finished cartoon a little before we finally export it and send it to the magazine.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Animation with OpenToonz

    OpenToonz is a professional animation tool for comic and manga artists.

  • Krita Storyboard Docker

    Krita 5 includes an editor that makes it easy to prepare storyboards for any purpose, including unexpected ones.

  • Comix

    The renaissance of comics, with their hand-rendered heroes, is thrilling millions at movie theaters and in print. The Comix reader gives you a convenient way to follow your favorite stories on your PC.

  • “Hai Ti!” Comics

    If you want to promote the use of open source software, you might like this innovative approach out of Africa – comic strips.

  • Optimizing Vector Graphics

    Inkscape creates W3C-compliant SVG files, but they are usually larger than they need to be for the web. We'll show you how to optimize SVG files for faster load times.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More