Skip to main content
Inspiring
December 5, 2019
Answered

Is it possible for a ScriptUI iconbutton to have @2x PNG or SVG icons? My icons are pixelated.

  • December 5, 2019
  • 2 replies
  • 2839 views

I'm building a simple ScriptUI toolbar with icon buttons…

 

var theIcon = myPanel.grp.group1.add("iconbutton", undefined, "~/icons/renderfarm.png",{style: "toolbutton"});
theIcon.size = [22, 22];
theIcon.onClick = function() {
}

 

 

Problem is, they look fuzzy and pixelated on my MacBook Pro with its high dpi Retina Screen. If this was a website I was building, I would simply use a separate "icon@2x.png" or simply use a single image that was twice as large as I need it and scale it down in css. Or use SVG. Are any of these options available in ScriptUI?

 

I can't find *any* information online about how to address this issue, such as how to scale an icon to 50%. When I adjust theIcon.size it just changes the size of the containing box, and even just crops the icon if the box is too small.

 

I see 3rd party scripts with nice smooth icons so I'm curious how they're achieving this.

Correct answer Marc Autret

ScriptUI should support the `@2x` suffix, according to https://helpx.adobe.com/au/photoshop/using/ScriptUI.html#HiDPIsupport

 

Best,

Marc

2 replies

Marc Autret
Marc AutretCorrect answer
Legend
February 19, 2021

ScriptUI should support the `@2x` suffix, according to https://helpx.adobe.com/au/photoshop/using/ScriptUI.html#HiDPIsupport

 

Best,

Marc

Inspiring
February 19, 2021

Neat! I assume this was added after I originally posted. I'm sure I tried that back then and it didn't work.

Inspiring
February 19, 2021

Oh wait, just noticed that your link is for Photoshop, not After Effects. Can anyone confirm that this now works in AE too?

Nathan Lovell_52
Inspiring
December 5, 2019

You will want to have all of your icon sizes predefined as there is no real way to scale like in HTML, and the usual size for icons is 25-35px on the low end.

 

As for achieving smooth icons and different looks, that's all internal scripting using event listeners and multiple images with ON and OFF states. We all have the same types of elements and buttons to work with, and it's just a a matter of how creatively you choose to use them!

Inspiring
December 6, 2019

Thanks Nathan. Good to know I'm not missing something haha.