Thursday, 1 February 2018

Warp Text with Ofnuts' 'Bend Path' Plug-In

Making warped text in Gimp or Inkscape was a challenge until recently.

There was an experimental script by saulgoode, that worked but took ages (like 30minutes) to render the text.

It was slightly quicker in Inkscape but not easier. Node editing is still a lengthy process and the Bezier Envelope, an extension written for Inkscape 0.48, has its problems.

When Inkscape 0.92 introduced the 'Perspective/Envelope LPE', things improved slightly, but its still far from perfect and has to be performed on individual letters, often followed by more node editing.

In comparison, making warped text in Adobe Illustrator or Photoshop is easy. Its flexible and has a ton of options. But then again Adobe products arent free :)

Here are some examples of classic warped text, with the names borrowed from Illustrator.

This situation inspired ofnuts from Gimp-Forum to write another excellent path tool for us at the end of 2017.
Its lightning fast, maintains straight lines on the vertical and easy to use.

Download and installation

You can get it here, its called 'ofn-bend-path':

Unzip your download and put the file into your Gimp userfolder for plug-ins.

On windows thats:           C:\Users\name\AppData\Roaming\GIMP\2.10\plug-ins

Note that you also get a folder named 'doc', which contains useful information on how the plug-in works in the form of a html file (double click to open).

Preparing the text

Start with the text you want to warp into shape. Some fonts work better than others.
The examples above were made with 'Times New Roman Bold'.

Also choose your text wisely. Especially the first and the last letter can make all the difference.
Some letters dont warp very well into extreme angles, and some need an extra step of editing afterwards to look nice.

The curvature of the letter S or D for example can look bad.
Letters with straight vertical lines work mostly well.

Here is an example with the word Silly.
Notice how it looks unbalanced, especially at the left upper corner where the S ends and leaves a gap of open space.
This could be improved by editing the path manually, but its an extra step, that might be hard to get right.


Also make sure the kerning is perfect ! Kerning is the space between letters.
You can adjust it by placing the cursor between letters, holding down Alt and using the left and right arrow keys on your keyboard.

Here the space between the L and Y and the two L's is much bigger compared to the other letters. Visually, you get holes, which may or may not look worse when the text is warped.

Usage of the plug-in

For the example, im using the font League Spartan Bold.

Decide on the shape you want to give your text.

We need to make an envelope path that tells the script how to map the text into its new shape.

The width of the envelope can not be smaller than the width of the text !
It must be equal or bigger, otherwise you will get an error !

The height of the text can be smaller or bigger, but most of the time you will probably want a part of your text to stay the same height.

For my example i will go with an upper arc shaped envelope (the gray shape in the image below).

Use guides to make a box around your text and add more guides to help achieve the curvature you want.

Then draw a path with the Paths Tool.

It doesnt matter in what order you create the nodes, but we are limited to two strokes (= paths) !

Draw your first stroke. It can have more than one node but for most cases a simple two node path is enough.

Make sure the 'View → Snap to guides' option is active - this will make the placing of nodes easier.

To get the second path, hold down Shift ! This prevents the new stroke from being connected to the first with another segment but will create the stroke as a part of the same path.

Alternatively, you can duplicate your first stroke in the 'Paths Tab' reposition with the 'Path Tool' by holding down Alt (Move Mode) and merge them later with the right click option: 'Merge Visible Paths'.

Then give your envelope path the desired curvature. Ofnuts has made this easy for us:
instead of trying to get both handles into the exact same position, you can just use one. Neat !

When the envelope path is ready, convert the text you made into a path.

In the Paths Tabs, right click on the Text-Path, go to Tools → Bend.

A dialogue box will open.

Select the correct Envelope Path in the dropdown menu, in case you have more than one.

When ready, click okay, and the result should appear immediately.

Now you can call up a selection from the newly created path, fill it on a new transparent layer, and start decorating. The text path also comes in very handy for adding a stroke.


'Bendiness' is an option i never had a need for, but it allows you to affect how the plug-in handles the warping process. For the plug-in to warp text into the envelope form, it converts all segments into curves by extending its handles. This Bendiness dictates how far the handles are extended. That may still look (visually) like a straight line, but trust me: its a curve now.

At Bendiness: 0 the handle is on top of the anchor while at 200 its completely out ending at the next anchor. The default of 100 is the middle ground.

The other option in the 'Reference lines' dropdown menu is 'Guides'.

Basically you can tell the plug-in, which parts of the textpath you want to be stretched (the area between two horizontal guides).

The horizontal (guide)lines are mapped to the strokes of the envelope, and everything inside (and outside) is stretched to match.

One way of using this feature is to add padding to your text, which can be useful when you dont want to fit the path tightly into the envelope, but add space to the top and/or bottom.

Alternatively, you can define a line with a guide, that will be mapped to the envelope and the rest follows around it, so to speak.

Which makes this kind of effect possible:

Also dont forget that you can use the plug-in for any kind of shape, not just text, as long as its a path !

Using the result in Inkscape

If you want to use or edit your warped text in Inkscape, export the path with the right-click menu in the paths tab. Make sure to add a descriptive name and the .svg file-ending when you export !


Wednesday, 3 January 2018

How to make a blocky gradient

Gimp's Gradient Editor can be intimidating. Im here to change that.

In this tutorial i will show you how to make a blocky gradient that has lots of uses.

Make sure your colours go from black to white.

Click 'Create New Gradient' at the bottom of the Gradient Tab.
A window will pop up. You can resize this window to make it larger.
Give the gradient a name ('8 Bar') and save it.

Go inside the right-click menu and 'Replicate Segment' by 2.

Select only the left part of the gradient by clicking inside the bar where the little triangles are located.
Change the colour of the segment to black by changing the 'Right Endpoint's Colour'.

Next select the right segment and change it to white.

Now select both segments by holding Shift and replicate again. We want eight bars, so we have to replicate by four times.

And thats the whole procedure. You can exit the gradient editor - it automatically saves.

You should make yourself an arsenal of blocky gradients: 8, 10, 12, 24 and 32 bars are good for a start !
I will show you two uses in the next tutorial.

How to make a sunray in Gimp

You can use your blocky gradient to make a super quick sunray effect.

Prepare a 24 Bar Gradient.

Set up your canvas (im using 700x700px) with guides at 50% horizontal and vertical.

 Activate the 'Gradient Tool' and for the Options', tick 'Adaptive Supersampling' to get the best quality.

For the shape choose Conical and asymetric.

Now drag the mousepointer from the crossing of the guides to the edge of the canvas. You can either restrain angle by holding down Ctrl or use the snap to canvas edges option.

Bam, instant sunray !

In case you wondered what happens when you choose the symetric cone shape: your sunray will come out wrong….

...and this is what happens when you dont use 'Adaptive Supersampling'. Jaggy Edges......

For different colours, here is a quick way of changing the colours and keep it flexible.

Copy the b/w sunray layer to the clipboard.
Create two new layers in your colours of choice.
Add a layermask to the top layer.
With the layermask selected, paste.
A floating layer will appear and you must click the little anchor to merge it down.

Now you can change the colour easily by dragging and dropping colours.
This way, you will never need more than one black & white gradient and still have every colour you want.

But theres more !

Create a 12 Bars sunray.
Put a new layer on top and draw an 8 Bar gradient with the shape set to 'Radial'.

Now change the Blend Mode to ' Difference' and you get a checkerboard Star Wars style.

We can colourise it the same way we did with the sunray.
Go to Edit → Copy Visible.

Create two new layers in the colours you want.
Add a layermask to top layer.
With the layermask selected, paste and anchor.

Tuesday, 2 January 2018

How to make a dynamic colour gradient

Using layermasks to apply colours is a very universal and elegant technique, but if you want the ultimate way of making a quick sunray, here's how you do it:

instead of limiting our custom gradient to black & white, we set it up with dynamic colours right from the start.
Follow all the steps described in the Blocky Gradient Tutorial, but when you apply the colours, use the 'Colour Type' option.

Do this for the left and right colours of both segments !

Now the gradient will pick up the colours of the active Fore- and Backgroundcolours you have chosen in the Main Toolbox.

Monday, 18 December 2017

Into the darkness a shining tutorial

In todays tutorial, im gonna show you how to make a decorative ornament in the spirit of december.

We will be using Inkscape and Gimp, combination style.
Thanks to a simple trick, the Inkscape part will be suitable for beginners and contain no complicated boolean operations or clipping.
Just layering shapes, a simple Live Path Effect and one Extension effect.

Im using Inkscape Version 0.92.

1. Open your 'Document Properties' by pressing 'Shift + Ctrl + D'.
Make sure the measurement units are set to pixels.
Im using a 800x800px canvas.

Click the X to close the 'Document Properties' (Inkscape remembers the settings automatically), then hit 5 to fit the canvas boundaries into the workarea.

Make sure the 'Align & Distribute' dialogue (Shift + Ctrl + A) is open and set to 'Page'.
Save the project→ 'File → Save as…' with a suitable name and a filepath you can easily remember.

2. Draw a black star with 24 corners and a 'Spoke Ratio' of 0,857.
Make sure you hold down Ctrl while you drag up, to make the top corner perfectly straight.

Your final star should be 697x697px.

Align the object to the canvas area.

3. Draw a white 575x575px circle on top of the star and align to the page.

4. Duplicate the black star, and scale it down, so its inside the white circle, but a bit smaller.
(in my case 560x560px)

5. Select both stars, give them a 4px black Stroke and remove the Fill. Then perform a 'Combine'.

6. Add the Live Path Effect: 'Stitch Sub-Paths'.
The stars will transform into some sort of crosshair.
Change the 'Number of paths' to 256.

Put the star-rays we just created to the bottom of the drawing.

7. Duplicate the white circle, give it a black Stroke of 8px and scale it down to 564x564px.

8. Duplicate the circle. Remove the Fill and change the Stroke width to 3px. Scale it down to 541x541px.

9. Draw a square. Give it a white Fill and a black 8px Stroke.
Rotate by 45° and align to the canvas. Give it a size of 630x630px.

10. Duplicate the square. Remove the Fill, change the Strokewidth to 3px.
Give it a size of 602x602px.

11. Duplicate one of the circles, give it a Stroke of 4px and make it 415x415px in size.
Also convert into a path (Ctrl + Shift + C).

12. Draw a small black circle (8x8px) and convert into a path.
Select the 415px circle from step 11, then the small 8px with the Shift key pressed down and call up the 'Scatter Extension'.
Apply with the values you see in the screenshot.

13. Now its time to add some text.
Im using the font 'Liberation Serif' 70px with a Stroke of 1px to make it a bit fatter.

Spacing is currently broken in Inkscape Version 0.92. 
I used a 'Spacing between Baseline' of 66, but to get the words 'a' and 'Light' to sit nicely, you have to use manual kerning. Put the cursor in front of the word you want to change and use the up/down arrow keys on your keyboard, while holding down Alt.

14. Add another rotated square with a 3px Stroke and no Fill. Make it 372x372px.

15. Duplicate the text and give it a green 13px Stroke. This is gonna help to decide where we want the square to be broken.

16. Next zoom in and draw little shapes with the 'Bezier Tool' that will be used as overlays.
Theoretically we could also break the path with the Node Tool, but that would be destructive and hard to undo. (I gave my shapes a red Stroke so you can better see them in the screenshot.)

When happy, delete the helper text-copy with the green Stroke and put the original black text on top of the drawing.

17. Almost ready !
If you want to use the ornament as it is, you must add a white background to the image.
Otherwise you will have a transparent background.
Just draw a white 800px square, align it and put it at the bottom of the image.

18. To export go to 'File – Export PNG Image…' and make sure the 'Page' button is highlighted.


In the second part of the tutorial we will add colour and shine with the help of Gimp.

01. Open the image in Gimp.

02. To get rid of the white, apply 'Colour To Alpha' (thats under 'Colours')

03. Add a background layer #121212 and put it behind the ornament.

04. With the ornament layer selected, lock the alpha channel and drag and drop #fad130 over it.

05. Apply LayerFX – Satin to the ornament layer.

06. To smooth the Satin out, alpha select the ornament and apply a Gaussian Blur of 2px to the Satin layer.

07. For a texture effect, add a new 50ies grey (#808080) layer on top of all and remove the alpha channel.
Apply G'MIC – Degredations – Scanlines.

08. Next apply G'MIC – Deformations – Water.

09. Alpha select the original ornament and apply a 'Layermask From Selection' to the 'Texture Layer'

10. Change the Blendmode to 'Hard Light' at ca. 35%.

11. To make the text more stand out, we will edit the texture mask.
Use the Fuzzy Select Tool in Add Mode on the ornament layer and with the texture layermask selected, fill the selection with a very dark grey (or even black) #262626.
This will filter out almost all of the texture on the text.

And that was the final step. Congratulations you made it !
Happy Holidays !