Библиотека Ruby с открытым исходным кодом для анализа PSD-файла Photoshop

API Ruby, который поддерживает преобразование PSD в холст, экспорт данных PSD, доступ к данным фрагментов PSD и доступ к слою PSD внутри приложений Ruby.  

PSD.rb — это легкая и простая в использовании библиотека Ruby с открытым исходным кодом, которая позволяет разработчикам программного обеспечения анализировать PSD-файл Adobe Photoshop или извлекать метаданные и другую полезную информацию с помощью кода Ruby. Библиотека позволяет пользователям обрабатывать данные документов Photoshop в управляемой древовидной структуре. Цель разработки PSD.rb заключалась в том, чтобы предоставить разработчикам, регулярно работающим с PSD-файлами Photoshop, лучшие возможности парсинга PSD.

Библиотека выполняет все основные функции, связанные с доступом и открытием файла, поиском нужных данных и получением их в рабочей форме. Библиотека PSD.rb очень проста в обращении и позволяет разработчикам работать с документом Photoshop в управляемой древовидной структуре и искать важные данные, такие как размер документа, структура документа, имя и размер папки, непрозрачность папки, видимость папки. , название шрифта, цвет или размер шрифта, данные векторной маски, данные плоского изображения и многое другое.

Previous Next

Начало работы с PSD.rb

Рекомендуемый способ установки PSD.rb — использование RubyGems. Пожалуйста, используйте следующую команду для плавной установки.

Установите PSD.rb через GitHub

$ gem install psd

Экспорт данных PSD с использованием Ruby API

Библиотека PSD.rb с открытым исходным кодом позволяет программистам легко экспортировать данные из файла PSD с помощью команд Ruby. Работая в древовидной структуре, мы можем рекурсивно экспортировать любой узел в объект, который включает в себя всю общую информацию. Также можно экспортировать PSD в файл плоского изображения, написав всего пару строк кода на Ruby. Не забудьте сохранить его с включенным режимом совместимости, иначе будет создано пустое изображение.

Экспорт PSD данных через Ruby API

require 'fileutils'
require 'benchmark'
require './lib/psd'
file = ARGV[0] || 'examples/images/example.psd'
psd = PSD.new(file, parse_layer_images: true)
results = Benchmark.measure "Layer image exporting" do
  psd.parse!
  psd.tree.descendant_layers.each do |layer|
    path = layer.path.split('/')[0...-1].join('/')
    FileUtils.mkdir_p("output/#{path}")
    layer.image.save_as_png "output/#{layer.path}.png"
  end
end
puts Benchmark::CAPTION
puts results.to_s

Преобразование PSD в Canvas с помощью Ruby

Библиотека PSD.rb с открытым исходным кодом предоставляет полную функциональность для преобразования PSD в холст внутри приложений Ruby. Библиотека поддерживает синтаксический анализ импортированного PSD и преобразование его в объекты холста. После этого вы можете повторять слои объектов PSD и легко добавлять объекты на холст. После этого порядок, добавленные объекты и все готово. Вы также можете экспортировать холст в PDF, SVG, PNG, PEG и другие форматы.

Доступ к данным срезов PSD

Библиотека PSD.rb дает разработчикам программного обеспечения возможность доступа к фрагментам PSD непосредственно из их собственных приложений. Он также поддерживает получение массива всех фрагментов документа с помощью всего пары строк кода Ruby. Также возможен поиск фрагментов по их имени или по их идентификатору. Библиотека также поддерживает экспорт фрагментов в формате PNG.

Доступ к PSD срезам данных через Ruby API

require 'benchmark'
require './lib/psd'
require 'pp'
psd = nil
file = ARGV[0] || 'examples/images/example.psd'
results = Benchmark.measure "PSD parsing" do
  psd = PSD.new(file)
  psd.parse!
end
if psd.resources[:slices]
  psd.resources[:slices].data.to_a.each do |slice|
    pp slice
  end
end

Доступ к данным слоя PSD

Библиотека с открытым исходным кодом PSD.rb позволяет специалистам по программному обеспечению получать доступ к данным PSD уровней с использованием команд Ruby. Вы можете легко получить имя, а также размеры слоя, используя пару строк кода Ruby. Разработчики также могут получить доступ к различным другим типам информации, хранящейся в информационных блоках, таких как размер, цвет, шрифты и так далее.

Доступ PSD слоев через Ruby API

//Get Name & Dimensions of a layer
psd.tree.descendant_layers.first.name
psd.tree.descendant_layers.first.width
//Get Other Layer Info
psd.tree.descendant_layers.first.text[:font]
# Returns
{:name=>"HelveticaNeue-Light",
 :sizes=>[33.0],
 :colors=>[[255, 19, 120, 98]],
 :css=>
  "font-family: \"HelveticaNeue-Light\", \"AdobeInvisFont\", \"MyriadPro-Regular\";\nfont-size: 33.0pt;\ncolor: rgba(19, 120, 98, 255);"}
 Русский