Экспорт листа образцов Photoshop в удобочитаемый документ

Мне нужно экспортировать файл образца Photoshop в удобочитаемый документ со значениями RGB, HSB, HEX и именем образца. Есть ли инструмент, который может экспортировать образцы в такой документ?

Ответы (3)

Я сделал ограниченный (на данный момент нет поддержки LAB, HSB или плашечных цветов) python aco -> text dumper. Сам сценарий является одноразовым и быстро выполняется, поэтому вам нужно изменить имя файла на чтение или назвать выходной файл test.aco:

#!/usr/bin/python
# -*- coding: utf-8 -*-
# quick script no warranties whatsoever
import struct



class ColorSwatch():
    def __init__(self, fp):
        self.rawdata  = struct.unpack(">5H",fp.read(10))
        namelen, = struct.unpack(">I",fp.read(4))
        cp = fp.read(2*namelen)
        self.name = cp[0:-2].decode('utf-16-be')
        self.typename = self.colorTypeName()


    def colorTypeName(self):
        try:
            return {0:"RGB", 1:"HSB",
                    2:"CMYK",7:"Lab",
                    8:"Grayscale"}[self.rawdata[0]]
        except IndexError:
            print self.rawdata[0]

    def __strCMYK(self):
        rgb8bit = map(lambda a: (65535 - a)/655.35, self.rawdata[1:])
        return "{name} ({typename}): {0}% {1}% {2}% {3}%".format(*rgb8bit,**self.__dict__)

    def __strRGB(self):
        rgb8bit = map(lambda a: a/256,self.rawdata[1:4])
        return "{name} ({typename}): #{0:x}{1:x}{2:x}".format(*rgb8bit,**self.__dict__)

    def __strGrayscale(self):
        gray = self.rawdata[1]/100.
        return "{name} ({typename}): {0}%".format(gray,**self.__dict__)

    def __str__(self):
        return {0: self.__strRGB, 1:"HSB",
                2:self.__strCMYK,7:"Lab",
                8:self.__strGrayscale}[self.rawdata[0]]()

with open("test.aco", "rb") as acoFile:
    #skip ver 1 file
    head = acoFile.read(2)
    ver, = struct.unpack(">H",head)
    if (ver != 1):
        raise TypeError("Probably not a adobe aco file")
    count = acoFile.read(2)
    cnt, = struct.unpack(">H",count)
    acoFile.seek(cnt*10,1)

    #read ver2 file
    head = acoFile.read(2)
    ver, = struct.unpack(">H",head)
    if (ver != 2):
        raise TypeError("Probably not a adobe aco file")
    count = acoFile.read(2)
    count, = struct.unpack(">H",count)
    for _ in range(count):
        swatch = ColorSwatch(acoFile)
        print str(swatch)

Кажется, на http://ps-scripts.sourceforge.net/xtools.html есть что-то подобное. Я не знаю, превышает ли это ваше мировоззрение на милю или это подходит, поэтому я просто публикую это как есть.

Вау. Этот скрипт работает безотказно. Спасибо @joojaa Но я тоже когда-нибудь попробую XToolkit. Это работает для меня прямо сейчас
@AnujRajput Описание файла aco можно найти здесь: adobe.com/devnet-apps/photoshop/fileformatashtml .

инструкции

1 Запустите Photoshop, выберите меню «Окно» и выберите «Образцы». Откроется панель «Образцы».

2 Щелкните небольшое всплывающее меню в правом верхнем углу панели «Образцы». Всплывающее меню отображается в виде направленной вниз стрелки и ряда горизонтальных линий. Откроется список возможных действий.

3 Нажмите «Загрузить образцы» из списка. Это направит вас в папку, в которой Photoshop сохраняет файлы образцов.

4 Выберите файл «No_Swatches.aco» и нажмите «Загрузить». Это очистит существующие образцы на панели, чтобы вы могли начать с нуля.

5 Добавьте столько цветов на панель «Образцы», сколько хотите, выбрав цвет и щелкнув пустое место на панели «Образцы». Назовите образец и нажмите «ОК». Повторяйте, пока все выбранные вами цвета не будут представлены в виде образцов.

6 Нажмите всплывающее меню еще раз. Откроется список возможных действий.

7 Нажмите «Сохранить образцы для обмена» в списке.

8 Перейдите к месту, где вы хотите сохранить новый файл Swatches. Назовите файл и нажмите «Сохранить». Это создаст файл .ASE или Adobe Swatch Exchange, который теперь можно загружать во многие другие программы Adobe, включая Illustrator и InDesign.

Советы и предупреждения Хотя использование образцов — это самый простой способ экспорта цветов из Photoshop, вы также можете использовать значения, перечисленные в параметрах HSB, RGB, CMYK, LAB или Hex Color, чтобы соответствовать правильному цвету в других программах.

http://www.ehow.com/how_8476041_export-colors-photoshop.html

Проверьте, работает ли эта работа Дайте больше информации о том, что именно вы ищете

Я добавил шаги со связанного веб-сайта. На всякий случай, если ссылка не работает.
Мне нужно подготовить проектную документацию. ASE не удобочитаем.

Я знаю, что это старо, но я использовал этот скрипт для той же цели, что и ОП, и обнаружил небольшую ошибку. Сценарий, кажется, удаляет начальные «0» в шестнадцатеричном коде, вызывая ошибки, такие как «# 26843» вместо «# 026843».

Я не знаю python, но, глядя на другие примеры преобразования RGB в шестнадцатеричный код с помощью python, я понял, как исправить ошибку и распечатать действительный список шестнадцатеричных цветов.

Если у кого-то еще есть такая же проблема, это, кажется, исправление:

Старый код:

def __strRGB(self):
    rgb8bit = map(lambda a: a/256,self.rawdata[1:4])
    return "{name} ({typename}): #{0:x}{1:x}{2:x}".format(*rgb8bit,**self.__dict__)

Новый код

def __strRGB(self):
    rgb8bit = map(lambda a: a/256,self.rawdata[1:4])
    return "{name} ({typename}): #{0:02x}{1:02x}{2:02x}".format(*rgb8bit,**self.__dict__)