Community Help Needed Converting PNGs to SVGs

@Strike_Digital see this quite from the top post.

I assume this means they would like faceted circles replaced with normal curves, because it will make it nicer, and align with the goal of “as few control points as possible”

1 Like

Thanks, I missed that part :+1:

That is definitely preferable. But not a requirement at this point if it takes too long.

I’m asking for help and so don’t want to make the requirements too high for that. There will definitely be cleanup passes afterward, maybe lots, so regardless everything will be perfect eventually.

Oh, and if there is anyone really bored…

Do not assume the ones I did are perfect; they are not.

I tried to recreate the circle around 'ops.generic.cursor.svg" as best I could, but it is multiple segments and I still see flaws in the circle silhouette, and the segments might be a bit off. For example I see the very top and bottom red-white joins do not happen at the midpoint grid line.

Similar with “ops.generic.select_box.svg” in that it took a lot of fiddling to turn the dashed outline parts into simple shapes. But there are probably inconsistencies of length and spacing there.

OK, so it seems I’ve likely wasted most of my time so far on ones that will no longer be needed.

Along with others putting up there hand, so I don’t want to start working on something else only to find out someone else is also doing it.

As such, at this stage I’m just going to stop. Here’s a zip file of all the ones I’ve done so far.

If any more are needed, then give me a specific list of which png files to convert and I will.

Icons-AG.txt (29.3 KB) NOTE, this is really a .zip file, but the system won’t let me upload a file with that extension. So just rename it and open.

4 Likes

@Harleya I have completed the ops.armature SVGs. If needed, I can also provide my original source files.

ops.armature.bone.roll
ops.armature.extrude_cursor
ops.armature.extrude_move

3 Likes

When working on my set yesterday I had a few questions regarding potential cleanup passes.

  1. Fixing unevenness
    Turns out some of the icons are quite wonky in terms of symmetry and parallelism. Is it fine to fix that?
Example

The thin lines are the vector paths that are actually symmetric.

  1. Grid Alignment
    I noticed in your examples (e.g. ops.transform.translate), that you made sure to properly align features like lines or arrow tips to the grid.
    Should we do that, too, or is that something you’d prefer to do yourself to ensure consistency?

  2. Strokes vs. Fills
    Should “line-like” features be traced as fills, or as strokes with thickness?
    I’d imagine the latter to be easier to tweak and it can still be converted to a fill with “Stroke to Path”.

  3. Size
    The icons in your example SVGs fit into a 1400 x 1400 box, leaving a 100 px margin.
    The margin on the PNG seems to be bigger, so scaling the PNGs to fit into the template svg-file, makes the icon noticeably smaller than 1400x1400.
    Should we target a icon size of 1400x1400, as well?

2 Likes

You probably know that I am personally really picky about this stuff, but I really try not impose that on others.

I also find the current icons quite wonky, but acknowledge that some of that comes from the export process. No matter how well you align things in the blend file it comes into blender with positions truncated to a rough grid (256 positions).

So fixing unevenness would be awesome. But I still don’t want to discourage anyone from helping that might not have the time to do so.

Strokes vs. Fills

I’m honestly not sure. I haven’t even confirmed that strokes with thickness rasterize correctly. That is easily confirmed by just viewing such a SVG in the Blender File Browser in thumbnail view. Fairly certain all the other icons are just paths though. Strokes are easier to deal when editing though.

Size

Although the regular UI icons have that consistent sizing it might be best to leave sizing as a later cleanup step. Looking at “toolbar.blend” there are some icons that vary a lot in their size within their space. So there might be some compromises to be made. My general concern about padding/margins is twofold: I don’t want to render unnecessary blank space, but I also want a way of inferring the design’s size separate from a uniform document size. As in I can subtract that known padding and know the content extents.

Grid Alignment

With our tiny regular icons, that alignment to the grid is pretty important. With the sizes of these icons the alignment of features to the grid matter much less. But it can still be noticeable in some circumstances. With the “box select” icon for example, if the outer lines are not the same width and same distance from the outer edges the resulting bitmap can make them look asymmetrical when small.

3 Likes

Correcting my own earlier comment: Some more brush. icons stay, and some further icons are removed. Namely ops.curves (NOT ops.curve!) icons are removed, as well as ops.gpencil.sculpt_ ones.

I removed all the unused brush tool icons now (UI: Remove unused brush tool icons).

See the exact list of removed tool icons here: UI: Remove unused brush tool icons · e6a4245099 - blender - Blender Projects

Or the list or current tool icons here: blender/CMakeLists.txt at 7ce067d73bafe558d2cf4b4d65fae5880a3146ff - blender - Blender Projects

@Harleya best to update the icons .zip in the opening post I guess?

2 Likes

I’ve got a finished version of the mesh icons:

Icons

ops.mesh.bevel
ops.mesh.bisect
ops.mesh.dupli_extrude_cursor
ops.mesh.extrude_faces_move
ops.mesh.extrude_manifold
ops.mesh.extrude_region_move
ops.mesh.extrude_region_shrink_fatten
ops.mesh.inset
ops.mesh.knife_tool
ops.mesh.loopcut_slide
ops.mesh.offset_edge_loops_slide
ops.mesh.polybuild_hover
ops.mesh.primitive_cone_add_gizmo
ops.mesh.primitive_cylinder_add_gizmo
ops.mesh.primitive_grid_add_gizmo
ops.mesh.primitive_sphere_add_gizmo
ops.mesh.primitive_torus_add_gizmo
ops.mesh.rip
ops.mesh.rip_edge
ops.mesh.spin
ops.mesh.vertices_smooth
ops.mesh.vertices_smooth-cleaned_up

Each one should have a group for each of the different colours it contains. Some of them are still a little wonky, but I could go through and fix them if it’s an issue.

They use a mixture of strokes and fills, I did check in the Blender file browser though, and they all seemed to render correctly.

I can’t upload a zip file here, is there a preferred site where I could share it?

4 Likes

Thanks for the thorough answer!

Since I’m pretty much done with my current set I’ll claim the ops.curve ones next.

I went ahead and created the ops.view3d SVG

ops.view3d.ruler

4 Likes

I completed the ops.sequencer SVGs as well.

ops.sequencer.retime
ops.sequencer.blade

If needed, I can provide a Dropbox link containing all of my source files as well as all of my exports :).

2 Likes

Thank you so much! I have updated the files and captures in the first comment to help keep track of what is done.

1 Like

I did,
ops.gpencil.draw.line
ops.gpencil.draw.line

and
ops.gpencil.draw.poly
ops.gpencil.draw.poly

to try this soft: https://www.godsvg.com/
edit:
ops.gpencil.draw
ops.gpencil.draw
and
ops.gpencil.draw.eraser
ops.gpencil.draw.eraser

3 Likes

I think you missed my last post, as that zip file of those done, doesn’t include any of mine.

1 Like

I am so sorry, I did miss your post with the “txt” zip file. I have yours in now. Oh, and sorry that you worked on some that were since removed.

Here are my first two sets and I tried to make the dashed line in the lasso and circle select icons a bit more even.
These are also zip-files disguised as .txt.

ops.transform.txt (23.2 KB)
ops.curve.txt (13.9 KB)
ops.generic.txt (3.6 KB)

Credit: I copied the pencil for ops.curve.draw from @dupoxy’s gpencil icons :slight_smile:
Here are the the icons as SVGs as a preview:

ops.transform

ops.transform.bone_envelope
ops.transform.bone_size
ops.transform.edge_slide
ops.transform.pushpull
ops.transform.resize_cage
ops.transform.shear
ops.transform.shrinkflatten
ops.transform.tilt
ops.transform.tosphere
ops.transform.vert_slide
ops.transform.vertex_random

ops.curve

ops.curve.draw
ops.curve.extrude_cursor
ops.curve.extrude_move
ops.curve.pen
ops.curve.radius
ops.curve.vertex_random

ops.generic

ops.generic.select_circle_lone-noel
ops.generic.select_lasso__lone-noel

No one seems to have claimed brush.uv_sculpt, yet, so I’d do those next.
And I could do the remaining ops.gpencil icons after that unless @dupoxy is working on those.

9 Likes

Wow, these are so well constructed. The lasso and circle select icons are soooo much better than my attempt.

1 Like

@lone_noel et al.

There are two PNGs in my set that that don’t look right. I’m guessing that ops.gpencil.edit_to_sphere and ops.paint.vertex_color_fill actually look much different than the following:

ops.gpencil.edit_to_sphere

ops.paint.vertex_color_fill

But I’m not finding them in the source “toolbar.blend” file. Any idea what these two are supposed to look like?