Blogger Template by Blogcrowds

Showing posts with label basic. Show all posts
Showing posts with label basic. Show all posts

Playing with Gradient

I was playing with gradients in Gimp and Inkscape and in this process, I came to know about a few things which I think would be apt if I share here (even though many may find it redundant or silly ;p ).
Here is a small account of basics about Gradient, how to create and share gradients.


Gradient, as you may know is gradual change or blending of color. As you will see in nature the colors of objects are not constant all over even though their skin is of same color. Just for example look at the nearest wall(if its painted with single color ), does the shade appear to vary ? Either due to the lighting or shape, the color of the object will appear to vary. That is where a simple gradient comes into picture. When you are imitating or illustrating objects it is quite necessary to use gradients to give it a realistic touch.

(Black to white Gradient)


(RGB Gradient)



Now talking about the gradient and how is it represented in softwares like Gimp and Inkscape,



(simple representation of a gradient)

These are the basic features of a gradient irrespective of software:

1) Stops or stoppoints(endpoint): a gradient has atleast 2 stoppoints. Each stoppoint has properties of color,opacity(represented in terms of RGBA (Red,Green,Blue,Alpha) and position.

2) The region between 2 stoppoints is called a segment. The color from left stoppoint blends into right stoppoint within this segment. Blending function(linear,curved,sinusoidal, etc.,) is a function which defines how the colors blend into each other within a segment. There is also a midpoint which defines the middle point for the blending process.



The above image shows how the blending function can make a difference.

A simple gradient will have 2 stoppoints and one segment, complex gradients may have more than one segments.

The way a gradient is represented in Gimp and Inkscape is different. Gimp defines gradient keeping segments in mind, Inkscape defines based on stoppoints.

So, now you know what all constitutes a gradient,Creating a gradient becomes a simple task.

Creating gradient with Gimp:


Press CTRL+G with Gimp open to launch the gradient dialog. Click on the ‘new gradient’ button to launch the gradient editor.




Right click on the segment brings up the menu for editing the gradient. The options there are quite self descriptive which you can try for yourself(some description is available here).
The gradient will be saved in the gradient folder of your Gimp work folder(check for the exact location in the preferences dialog box) as a .ggr file.

If you are wondering what is a .ggr file you can just open it with your favorite text editor to see what it is made up of. Gimp GGR format explains the format of GGR file. Sometimes you may find it difficult to set the position of some endpoint using the gradient editor, in that case editing the .ggr file with a text editor will come handy.


In Inkscape, the gradient editor does not use midpoint between stoppoints and allows only linear blending function.

Creating gradient with Inkscape:


Draw any simple object (a rectangle would be fine), In the fill & stroke dialog box select linear gradient for fill.Now click on the edit button and your gradient editor appears. As I said earlier Inkscape uses endpoints to define a gradient, creating a gradient in Inkscape is nothing but adding stops and defining values of RGBA and position(offset) for that stops.


If you have appetite for more of gradients, you should try SpectraG, an opensource gradient editing software written by Rosros in Python. It represents gradients with formulas, so you need a understanding of little math but it appears to be a very interesting and immersing gradient editor. It allows importing and saving to .ggr format among various others.

(a snapshot of spectraG)


Gradients are represented by different softwares in different formats. Gimp saves gradients as .ggr files, Adobe’s products use .ai, Inkscape saves within .svg file itself.

Importing gradients between Gimp & Inkscape is simple.

To import Inkscape gradient into Gimp, just place the SVG file containing the gradient into the gimp gradients folder and refresh the Gradient dialog. The gradients will be imported and you can see them in the gradients dialog.

To import Gimp gradient into Inkscape, you just need to drag and drop the gradients into Inkscape.Now you can just go on filling objects with gradient.
[Inkscape will throw an error while importing some .ggr files (files with CRLF end-of-file). What you can do to import is save it in unix format using a text editor like notepad++. and then import].

There is huge collection of gradients at Gradients Central that you can download and use.



Drawing shadows along with objects gives an illustration some amount of reality. I was trying to illustrate shadows and felt like sharing some thoughts that I had. Probably a beginner may find it interesting. Anyways here it is...

To draw a shadow, one needs to be clear about properties of three things:
1) source of light (position, brightness, size)
2) the subject itself which casts the shadow (position, shape & size)
3) the surface on which shadow falls (position, shape & size)
Now how do these properties affect the shadow cast by the subject... ?
These two videos give you a basic idea of how shadow can be drawn and how the properties affect them. A must see... How to draw shadows and Drawing perspective shadows.

Some points to be noted are:
Size of shadow depends on distance between the source of light, object and surface of shadow. The size of the shadow increases as the distance between source of light and object decreases.
The shadow appears blurred if either there are many sources of light or if it is far from the subject.
The position(angle) of the source of light decides in which direction the shadow is cast.

The shape of shadow is also defined by the surface on which shadow is cast. shadow is irregular on irregular surfaces.

The 3 dimensional subject is cast as a two dimensional shadow whose shape is defined by the relative position of subject and source. For example see what objects can cast a square shadow and what shadows a cube can cast ... That would give you an idea.

After getting basic idea about shadow, the next point is how do we illustrate a shadow in Inkscape.

The basic method is duplicate the subject to create the shadow, give it a grey color and decrease its opacity. Then do the transforms like skew, stretch and move. What transforms and how much you need to perform depend on the properties of source of light,subject and surface that you saw earlier.

For 2D image editing softwares, the above idea can give good results for flat or simple sjubects. When the subject is a 2D illustration of a complex 3D object some amout of imagination and manual editing of the nodes of shadows is necessary.



Here is a small how to for illustrating shadow for a human figure. You can apply the technique for other objects also.

1) Draw ellipses using ellipses tool, rotate and arrange them as above to get a human form.

2) To draw the shadow, duplicate the subject (select subject and press ctrl+d)
select all the ellipses and do a path->union.
give it a grey (888888ff) color fill and 75% opacity.

3) Group the ellipses of subject (Ctrl+g)
For time being, place the shadow object above the subject.
Align(ctrl+shift+a, center along vertical, center along horizontal axes) them both so that they overlap each other completely.

4) Angle of source of light:
Click on the shadow layer twice, you will see the handle for skew operation.
Play with the skew operation holding shift key. This will give the angle at which the shadow is formed.
Depending on the position of source of light you can settle for a shadow.

5) Elevation of source of light

Now click on the shadow object once, you can see the squeeze or stretch handle.
play with this handle. this gives the elevation or the height of the source of light.
settle for required elevation.

So now we have a shadow of the object on a flat surface(floor).
What if there is a wall some distance behind the man, would the shadow be the same ?

lets see how to illustrate that.

A) Select the shadow and the wall surface and duplicate them.
Tthen do a path-->intersection. give this new shadow object the same fill and opacity as that of the shadow.
Send the old shadow to bottom (select shadow and press end key)
We need to do a skew to the new shadow as we did earlier for angle of shadow, this time the shadow must be vertical as below.
B) The shadow that you got is not a perfect one, we need to do the stretch operation.
Decrease the opacity of the wall so that you can see the old shadow.
Draw a reference line from the old shadow to the man's head.
Now stretch the new shadow as we had done earlier until it touches the reference line.
Now reset the opacity of wall and delete the reference line.
The final result


Applying the same technique you can illustrate shadows on complex surfaces. Here is an example of shadow on steps.

One of my friend mailed me (after reading my posts about Inkscape). He said "what's the difference between Gimp and Inkscape ? they both seem to be same..." He isn't a techi so thought of mailing him back with some basic information, here is the excerpt...

Images can be represented in computers in two ways,
1) Raster images ( bitmap ).
2) Vector images.

Raster images are represented in terms of pixels. A pixel is the smallest displayable unit. Each pixel is in turn represented by colors like red,green,blue (RGB). These pixels when arranged in rectangular fashion form an raster image. The image size is represented in terms of pixels. A 100*100 pixel image consists of an rectangular array of 100X100 pixels. Depending on the display device, you can see the appropriate image. Now if you zoom in or enlarge this image, then the quality decreases...the pixels are now displayed as square boxes. This is one of the disadvantages of raster images.

Vector images are represented in terms on points, lines, curves, polygons. Any object is represented by its attributes like position, shape, proportions, color, transparency etc., The main advantage of vector over raster is its ability to stretch or expand. As the vector image is represented by its attributes, when ever you scale the image, it expands without the loss of quality.


vector images are easily re sizable where as raster images cannot be expanded without the loss of quality.

Vector image files take same amount of memory space to store what ever the size of the image be as the number of attribute required to represent the image are same. For scalar images, as size increases, the number of pixels increases so does the memory occupied by the file.

The only disadvantage of vector images is that it is very difficult to represent real & life like images. Even if you try to represent them, they will take a lot of memory.

Coming to the actual question,
Gimp is a raster image editing software where as Inkscape is vector image editing software. If you know the difference between raster & vector image representation this single line answers your question.

The images that we capture from cameras are raster images. We use softwares like Gimp or Photoshop to edit/retouch or do some color corrections. Vector editors like Inkscape and Adobe Illustrator are widely used to create logo's, design patterns, animations and also in printing industry.

Further Inkscape uses Scalable Vector Graphics (SVG) to represent graphics. SVG is nothing but an XML file whose file format is defined by the world wide web consortium. SVG format also supports animations by allowing scripts to be included.

Older Posts Home