Мне нужно экспортировать файл образца Photoshop в удобочитаемый документ со значениями RGB, HSB, HEX и именем образца. Есть ли инструмент, который может экспортировать образцы в такой документ?
Я сделал ограниченный (на данный момент нет поддержки 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 есть что-то подобное. Я не знаю, превышает ли это ваше мировоззрение на милю или это подходит, поэтому я просто публикую это как есть.
инструкции
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
Проверьте, работает ли эта работа Дайте больше информации о том, что именно вы ищете
Я знаю, что это старо, но я использовал этот скрипт для той же цели, что и ОП, и обнаружил небольшую ошибку. Сценарий, кажется, удаляет начальные «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__)
Анудж Раджпут
джуджа