I hereby decree

by David LeMieux

 

A Dead Colors fan emailed me a request:

 Could you, by any chance, make a color palette containing all of the dead colors for PhotoShop? 


When I finally found the email I was sitting at the @Scale Conference and decided I'd give it a try. I could have, of course, gone in to photoshop and created a new palette manually and then exported it (which, due to my finding the email late, was what the fan ended up doing before I could respond) but I didn't want to take the time.

I did a quick search for the Adobe file specification for .aco files and found this information by Larry Tesler. The code that generates the dead colors list was originally written in PHP, but I decided that with the specification and a quick refactor I could generate the color file using Node.

I did find something perhaps noteworthy. The spec information says that the versions are 0 and 1 but I could never get the file to work until on a whim I tried using 2 - so either I am tapping some undocumented third version or the values are supposed to be 1 and 2. On top of that I ran in to some issues early due to my not using unsigned integers.

The resulting library is on Github. You give it a list of color information including the display name and hex color value and it will create a color palette that you can import in to at least the latest version of Photoshop. Next steps would include adding reading, but due to the many different color encoding types this will take some time and I really only needed the write capability to satisfy the original request.

The dead colors aco file is available on the Dead Colors page. I was able to send it to the fan but too late. He had already done it manually taking hours of his time.

I may have had to go through the hours of pain of making one myself before receiving this message, but it still makes me so happy that you responded.


It was a fun exercise and I was able to get most of it done while I also listened to talks at the conference.

node-aco on github

 

blog comments powered by Disqus