Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Copy foreground RGB values to clipboard

Participant ,
Jun 23, 2019 Jun 23, 2019

Hi, is there any know script that can take the foreground color of Photoshop and copy the RGB values to the clipboard? If not could someone savvy with scripting create one. I know a lot of user want this. Thanks

4.2K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Jun 23, 2019 Jun 23, 2019

Try this:

var doc = activeDocument;

var bR = foregroundColor.rgb.red;

var bG = foregroundColor.rgb.green;

var bB = foregroundColor.rgb.blue

var myColor = Math.round(bR) + ' ' + Math.round(bG) + ' ' + Math.round(bB);

var d = new ActionDescriptor(); 

d.putString(stringIDToTypeID("textData"), myColor); 

executeAction(stringIDToTypeID("textToClipboard"), d, DialogModes.NO); 

Translate
Adobe
Community Expert ,
Jun 23, 2019 Jun 23, 2019

You can copy hex values. As far as actual rgb values, you can have a script get the numbers, but they would have to be combined in some form like comma separated values, which then would have to be broken apart to paste into different rgb fields.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 23, 2019 Jun 23, 2019

I just want to grab them without having to open the color picker and select each field to copy them. If they were copied to the clipboard like this it would be fine.

255 170 210

68 199 255

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 23, 2019 Jun 23, 2019

How would you select what color to select?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 23, 2019 Jun 23, 2019

I use Window and Mac. I mostly want this for Windows. I would just paste it into Notepad++ and select the color. Or I would save a text file and read them in as a varible parsing the value I want.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 23, 2019 Jun 23, 2019
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 23, 2019 Jun 23, 2019

Also what OS are you using?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 23, 2019 Jun 23, 2019

Try this:

var doc = activeDocument;

var bR = foregroundColor.rgb.red;

var bG = foregroundColor.rgb.green;

var bB = foregroundColor.rgb.blue

var myColor = Math.round(bR) + ' ' + Math.round(bG) + ' ' + Math.round(bB);

var d = new ActionDescriptor(); 

d.putString(stringIDToTypeID("textData"), myColor); 

executeAction(stringIDToTypeID("textToClipboard"), d, DialogModes.NO); 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 24, 2019 Jun 24, 2019

Wow, you can... thanks you so much. This is super helpful. I am loving this already it makes selecting a lot of colors through out the day a dream. I see a user up voted it as helpful the minute you posted it last night. I think many user will find this helpful. Thank you so much again!!!

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 24, 2019 Jun 24, 2019

This is so great I might be on my way to creating scripts as helpful as Chucks someday. This is why examples can be a wealth when a user like Chuck lends a hand. What I was currently working with was asking for RGB values. However, I forgot that most times I want the hex value because I am working in things like HTML, CSS, JavaScript, Adobe Animate, and Adobe Dreamweaver and many others. So, referring Chuck's gracious code I then tracked down this document. I search around for syntax like Chuck"s code to get the property I am looking for. That property being hexValue. So I extended this script just a little to also grab the hex value. I don't think I need any function like Math.round() wrapped around it because it stated the type was a string. I works well this is a dream!!! and thank you again Chuck!

var doc = activeDocument; 

 

var bR = foregroundColor.rgb.red; 

var bG = foregroundColor.rgb.green; 

var bB = foregroundColor.rgb.blue;  

var bx = foregroundColor.rgb.hexValue;

 

var myColor = Math.round(bR) + ' ' + Math.round(bG) + ' ' + Math.round(bB) + ' ' + bx; 

 

var d = new ActionDescriptor();   

d.putString(stringIDToTypeID("textData"), myColor);   

executeAction(stringIDToTypeID("textToClipboard"), d, DialogModes.NO);

To anybody that wants to understand how to use it. Put the code in text file in a text editor. Don't use things like MS Word that add formatting to the text. Use a text specific editor. Save the file any name you want with the .jsx extension. The find your scripts directory in you Adobe Photoshop folder. For example mine live at

C:\Program Files\Adobe\Adobe Photoshop CC 2019\Presets\Script

Then drop the save file with the .jsx file extension in there (eg filename PsdRgbh2Txt.jsx) . Relaunch Photoshop, and it should work.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 24, 2019 Jun 24, 2019

Glad it worked well for you.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jun 24, 2019 Jun 24, 2019

However, I forgot that most times I want the hex value because I am working in things like HTML, CSS, JavaScript, Adobe Animate, and Adobe Dreamweaver and many others

You might also want to consider the color profile of the hex value. For matching color appearance in HTML code you would want the document profile to be sRGB. That might not be a problem if you know your documents are always assigned sRGB, but ensuring sRGB can also be scripted.

This line before your color value code would check the document assignment, and if it's not sRGB make a conversion:

if (app.activeDocument.colorProfileName!="sRGB IEC61966-2.1"){

     doc.convertProfile("sRGB IEC61966-2.1", Intent.RELATIVECOLORIMETRIC, true, true);

     //to assign use this

     //doc.colorProfileName="sRGB IEC61966-2.1";

}

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jun 24, 2019 Jun 24, 2019

OK, also very helpful. I see what you mean. Thanks

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jul 10, 2020 Jul 10, 2020
LATEST

Good night.

How do you think I would be able to do the same, to paste the colors in CMYK too, and that would work in Illustrator too?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines