I have stumbled upon a problem regarding the creation of a logo for a Piaggio vehicle (the truck below). Because of the grooves I want to scale a certain part of the logo and make it look good when you look at the logo from the front.

My question: How to do this in Inkscape?

I had hoped there were some transformations which could be done, where I insert a horizontal rectangle over the logo and just that part of the logo gets scaled.

Is there anything like that? I've already done all the measurements and math.

piaggio ape

  • What logo are you talking about? I don't see any logo – LateralTerminal Mar 15 '18 at 19:49
  • Are you asking how to add a logo to the side panel of the truck and have the logo distort to conform to the ridges? Please edit your question. It's not clear what you are actually asking. – Billy Kerr Mar 15 '18 at 19:55
  • If so, use a raster image editor like GIMP or Photoshop, not Inkscape. Look up tutorials on using a displacement map. – Billy Kerr Mar 15 '18 at 19:57

No problem - except the magic scaling box which makes the rest of the image to step aside - it does not exist - at least not in Inkscape's basic configuration. There is path function "Lattice deformation", but it behaves differently and simply doesn't give the needed control.

Some workarounds exist. At first we try dividing your logo with masks and scaling one part separately.

Let's assume this is your logo.

enter image description here

Red lines are not a part of a logo, but show to us the calculated edges of one bumb (=the zone you want to stretch higher, it's between red lines).

At first group the shapes to keep them easily selectable together. Do the selections in the objects panel, because Inkscape allows accidental moving of shapes inside the groups.

Duplicate (Ctrl+D) your logo twice and draw 3 (here green) rectangles over your logo. They define the different areas. Top = no stretching, middle = to be stretched, lowest = no stretching.

enter image description here

Be sure that you understand exactly all snapping modes and you can draw exactly sized rectangles.

Set clipping masks (Object > Clip > Set) for the zones, drag the zones apart.

Scale the middle zone vertically (Object > Transform > Scale) Here the stretching is exaggerated to make it clearly noticable, its to 200%

enter image description here

Drag the parts together. Again: Know the snaps!

Group the parts.

enter image description here

There are two caveats:

1) If you are going to convert this to PNG for tape printing, you will probably notice there's one pixel seam between the zones. Inkscape unfortunately makes exactly fitting seams transparent. You can avoid this by having a little shifted copy below or stretching or moving the parts a little to create an overlap. One pixel wide overlap is enough.

2) This probably cannot be used at all for a plastic cutter because there's no solid curves. You must do it totally otherwise. You cannot use clipping masks.

One possiblity

  • convert all shapes, including all strokes to paths, if they already aren't
  • add to every path a node at all crossings with the seam lines
  • break every path at the inserted nodes
  • stretch the mid part
  • join again the paths one by one

NOTE: Gradients, blurs and raster effects get trashed. It's better to insert them after the stretchings and rejoinings.

(quite a job, I say, if the logo is complex)

Another possiblity is to use booleans (Path > intersect to create the zones and Path > Union to combine the zones after stretching). That also is a lot of work for complex shapes because booleans do not work with groups.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.