Бібліотека 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 і перетворює його на об’єкти canvas. Після цього ви можете повторювати шари об’єктів PSD і з легкістю додавати об’єкти на полотно. Після цього порядку додані об’єкти готові. Ви також можете експортувати полотно у PDF, SVG, PNG, PEG тощо.

Доступ до даних фрагментів PSD

Бібліотека PSD.rb дає розробникам програмного забезпечення можливість отримувати доступ до фрагментів PSD безпосередньо у своїх власних програмах. Він також підтримує отримання масиву всіх фрагментів у документі лише за допомогою кількох рядків коду Ruby. Також можна шукати фрагменти за їх назвою або ідентифікатором. Бібліотека також підтримує експорт фрагментів у форматі PNG.

Доступ PSD Slices даних через 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);"}
 Українська