Toolbar Icon Size on 4K Monitor
-
Looks like the plugins that scale all have icons in .svg and .pdf(???) as well as .png
I don't know enough about the Sketchup API to comment on how the icons are being loaded
-
The only possible way in my point of view is to resize icons manually. Yes it is not the solution you are looking for. But if you desperately need resizing you can do it.
Backup Plugins folder first.
Make some test resizing of any icon from plugins folder. Remember the best size for you. For example if you use big icons original image is 24/24 px, try resizing to 48/48 or bigger - after restart of Sketchup you will see the result.
Use graphic editor supporting batch processing (XnView), search for .png, narrow the search by size of the icons - this will eliminate some pictures not used as icons, use "delete original file" + "use original path (as output)" and resize icons to size of your tests.
Sounds idiotic but is possible.
(Updating of plugins will bring back original small icons.)
May be someone can write a script to automate this task >>> Search plugins folders for images 24x24px and resize to new value...???Obviously only one external plugin is made with .SVG icons > "PLACE SHAPES TOOLBAR" and the author - Alexander Schreyer - deserves admiration.
-
I too do not have a monitor to investigate this behavior and you didn't give a list of extensions/plugins that misbehave so I can't look at them to see what they do. As of SU 2016 the Ruby API supports vector icons (svg on Windows, pdf on Mac) for toolbars. Your profile says SU 2018, so scaling ought to work. Any extension that has been revised to use vector icons should see them scaled. The older-style png icons will not be scaled.
But I have read that there are remaining issues with very-high-dpi displays when the scaling is set to more than 150%. You write that you have set 300%. You may be encountering that issue - though I can't explain why it would affect some extensions and not others.
-
@slbaumgartner said:
..you didn't give a list of extensions/plugins that misbehave so I can't look at them to see what they do.
Granted I did not list the names, but all of the toolbars that behave are shown:
Solid Tools
SectionCutFace
Bool Tools
3D Warehouse
Wrapr
Dynamic Components
Place Shapes -
Please
Can anyone using a 4K monitor shed any light on this problem? -
It seems that all bitmap icons (png) are not scaled, but only the vector icons are (svg, respectively pdf on mac).
So, the solution is for the plugin developers to start including svg toolbar icons. -
derei is correct. SketchUp has switched to using SVG icons to deal with high res displays. Some extension authors have followed suit. Not all have, however. I expect the icons will get updates one of these days. Considering most of these extensions are free, patience is called for. Or perhaps one could hire someone to make new SVG icons for these extensions.
-
Does anyone know if there is something special that needs to be done in the scripts code to use SVG icons or can we just put SVG icons in the plugins directory?
-
I think SketchUp will look first for SVG icons and use them if they exist.
-
Many thanks to the three of you for taking the time to reply
It seems somewhat incredible that given the vast amount of plugins/extensions .jpg toolbar icons being used by every SU user that SU would be modified to only use svg icons.
How in the world did this get past beta testing???? -
SVG icons were chosen specifically because they can be scaled to compensate for high res screens. Open a PNG icon in your image editor and scale it up so you can see it. The quality will be crap. SVG just makes sense.
-
Could we make a community effort to update all these icons to SVG if the authors don’t do it?
-
That sounds like a good idea. I would suggest offering the same icon packages to the authors so they can include them in updates of their extensions.
-
@pixero said:
Does anyone know if there is something special that needs to be done in the scripts code to use SVG icons or can we just put SVG icons in the plugins directory?
The icon files are given explicitly by the plugin code, which has to choose between the old png for SketchUp versions prior to 2016, and between svg and pdf for Windows vs Mac. It doesn't take a lot of code, but has to be changed, and no, simply dropping a svg file into the folder won't do the trick.
-
...in addition to the relevant comment by slbaumgartner, I would add that there is no automated way to generate a nice SVG from a PNG. Basically, the icon has be redrawn in SVG (via Inskape or similar drawing software).
Fredo
-
@dave r said:
SVG icons were chosen specifically because they can be scaled to compensate for high res screens. Open a PNG icon in your image editor and scale it up so you can see it. The quality will be crap. SVG just makes sense.
Thank you, Dave.
Yes, it does make good sense, but only if there is an easy path for changing all of the hundreds of current plugin/extension icons. This is based on the assumption that as time goes on more and more people will upgrade to 4k. But, apparently, the consensus is that 4k will remain a niche. -
Could someone post a code snippet that shows how to implement svg or pdf icons so I could start updating my own plugins at least.
-
Here's an example from one of my extensions:
if(not file_loaded?(__FILE__)) cmd = UI;;Command.new("RakeAndSplay") {Sketchup.active_model.select_tool(SLBPlugins;;RakeAndSplayTool.get_tool)} cmd.menu_text = "Rake and Splay" if(Sketchup.version.to_i >= 16) if(RUBY_PLATFORM =~ /darwin/) cmd.small_icon = Sketchup.find_support_file("rake_and_splay.pdf", "Plugins/SB_rake_and_splay") cmd.large_icon = Sketchup.find_support_file("rake_and_splay.pdf", "Plugins/SB_rake_and_splay") else cmd.small_icon = Sketchup.find_support_file("rake_and_splay.svg", "Plugins/SB_rake_and_splay") cmd.large_icon = Sketchup.find_support_file("rake_and_splay.svg", "Plugins/SB_rake_and_splay") end else cmd.small_icon = Sketchup.find_support_file("rake_and_splay_16.png", "Plugins/SB_rake_and_splay") cmd.large_icon = Sketchup.find_support_file("rake_and_splay_24.png", "Plugins/SB_rake_and_splay") end tb = UI;;Toolbar.new("Rake and Splay").add_item(cmd) tb.restore if tb.get_last_state == 1 UI.menu("Tools").add_item cmd end file_loaded(__FILE__)
-
Thanks.
-
Thank you, slbaumgartner
Would you tell me how to use this for each plugin extension?
Advertisement