Краткий справочник

Шпаргалка по парсеру Photoshop PSD.rb

Краткое справочное руководство по PSD.rb: парсинг файлов Photoshop PSD в Ruby, обход дерева слоев, извлечение типографики и экспорт PNG.

· Опубликовано

[!NOTE] Архивная библиотека: PSD.rb — это автономный Ruby-парсер файлов Photoshop .psd.

PSD.rb преобразует файлы PSD в структурированные объекты Ruby без необходимости установки Adobe Photoshop.

Открытие и парсинг

require 'psd'

psd = PSD.new('design.psd', parse_layer_images: true)
psd.parse!

Обход дерева слоев (Tree Traversal)

# Корневой узел документа
node = psd.tree

# Вспомогательные методы обхода
node.root
node.descendants
node.ancestors
node.siblings
node.subtree

# Фильтрация по типу слоя
groups = node.descendant_groups
layers = node.descendant_layers

Свойства слоя (Layer Properties)

layer = node.children.first

layer.name         # => "Header Background"
layer.top          # => 0 (Y coordinate)
layer.left         # => 0 (X coordinate)
layer.width        # => 1440
layer.height       # => 800

layer.visible?     # => true
layer.hidden?      # => false
layer.layer?       # => true
layer.group?       # => false

layer.blending_mode # => "normal", "multiply", etc.
layer.opacity       # => 0..255 (divide by 255 for CSS opacity)

Извлечение текста и параметров шрифта

if layer.text
  puts layer.text[:value]             # Текстовое содержимое
  puts layer.text[:font][:name]       # Семейство шрифта (например, 'Helvetica')
  puts layer.text[:font][:sizes]      # Размеры шрифта
  puts layer.text[:font][:colors]     # Массивы цветов RGBA
  puts layer.text[:font][:css]        # Готовое CSS-определение шрифта
end

Экспорт изображений слоев

# Сохранить изображение слоя в файл PNG
layer.image.save_as_png("layer_#{layer.name}.png")

Полезные ссылки

Связанные темы