Skip to main content
Participant
April 13, 2023
Answered

How do I export a large number of swatch colors as their HEX values

  • April 13, 2023
  • 3 replies
  • 975 views

I am helping a scientist use PS to analyse a specimen image. They want to select dozens of points and create a table of numbers identifying the colors (any way is fine: RGB, HEX, etc.). I can make swatches and click on individual colors then copy each one, but we have a lot of samples, so this isn't great. Is there would be a way to export swatches into a text file? Thanks!

This topic has been closed for replies.
Correct answer Chuck Uebele

Here's a little script that will record color samplers, as I mentioned previously. It will record the samples to a file named colors.txt on your desktop, in a folder called "color samples." Make some color samples and run the script. If you want to add more to the file, clear the color samplers, with the clear all button in the menu bar, add more samples and run the script again. If you want to start over and make a new color sample file, either delete the current colors.txt file, or rename it to save it. Then start the process of setting sample points again.

 

This script will record RGB values, but can be changed to record HEX.

 

 

#target photoshop
var colorFolder = new Folder('~/desktop/color samples/')
var colorFile = new File('~/desktop/color samples/colors.txt')
if(!colorFolder.exists){colorFolder.create()}
var doc = activeDocument;

var colorList = '';
if(colorFile.exists){colorList = readFile (colorFile)};

for(i=0;i<doc.colorSamplers.length;i++){
    colorList += doc.colorSamplers[i].color.rgb.red +',' + doc.colorSamplers[i].color.rgb.green + ',' +doc.colorSamplers[i].color.rgb.blue + '\n'
    }

writeFile (colorFile, colorList)

function readFile(file) {
	if (!file.exists) {
		alert( "Cannot find file: " + deodeURI(file.absoluteURI));
		}
	else{
		file.encoding = "UTF8";
		file.lineFeed = "unix";
		file.open("r", "TEXT", "????");
		var str = file.read();
		file.close();

		return str;
		};
};

function writeFile(file,str) {

		file.encoding = "UTF8";
		file.open("w", "TEXT", "????");
		//unicode signature, this is UTF16 but will convert to UTF8 "EF BB BF"
		file.write("\uFEFF");
		file.lineFeed = "unix";
		file.write(str);
		file.close();
		
	};

 

3 replies

Chuck Uebele
Community Expert
Chuck UebeleCommunity ExpertCorrect answer
Community Expert
April 14, 2023

Here's a little script that will record color samplers, as I mentioned previously. It will record the samples to a file named colors.txt on your desktop, in a folder called "color samples." Make some color samples and run the script. If you want to add more to the file, clear the color samplers, with the clear all button in the menu bar, add more samples and run the script again. If you want to start over and make a new color sample file, either delete the current colors.txt file, or rename it to save it. Then start the process of setting sample points again.

 

This script will record RGB values, but can be changed to record HEX.

 

 

#target photoshop
var colorFolder = new Folder('~/desktop/color samples/')
var colorFile = new File('~/desktop/color samples/colors.txt')
if(!colorFolder.exists){colorFolder.create()}
var doc = activeDocument;

var colorList = '';
if(colorFile.exists){colorList = readFile (colorFile)};

for(i=0;i<doc.colorSamplers.length;i++){
    colorList += doc.colorSamplers[i].color.rgb.red +',' + doc.colorSamplers[i].color.rgb.green + ',' +doc.colorSamplers[i].color.rgb.blue + '\n'
    }

writeFile (colorFile, colorList)

function readFile(file) {
	if (!file.exists) {
		alert( "Cannot find file: " + deodeURI(file.absoluteURI));
		}
	else{
		file.encoding = "UTF8";
		file.lineFeed = "unix";
		file.open("r", "TEXT", "????");
		var str = file.read();
		file.close();

		return str;
		};
};

function writeFile(file,str) {

		file.encoding = "UTF8";
		file.open("w", "TEXT", "????");
		//unicode signature, this is UTF16 but will convert to UTF8 "EF BB BF"
		file.write("\uFEFF");
		file.lineFeed = "unix";
		file.write(str);
		file.close();
		
	};

 

Participant
March 9, 2026

It works and I was able to modify it to give exactly what I needed. Thank you!

Chuck Uebele
Community Expert
Community Expert
April 14, 2023

As Jane mentioned, a script could do this. A simple script's work flow could be like this:

User samples color point, then hits a hotkey to run a script that records the values to a text file that can be imported into a spread sheet. The script could be made to record the 10 saved color samplers, so the script would not have to be run after each sampling. 

jane-e
Community Expert
Community Expert
April 14, 2023

Is there would be a way to export swatches into a text file?

By @Kristen23994564c4c7

 

Not out of the box, but we never know what our volunteer scripters can come up with. I've edited your post and tagged it for scripting.

 

Jane