Thư viện Ruby mã nguồn mở để phân tích cú pháp tệp Photoshop PSD

Ruby API hỗ trợ chuyển đổi PSD sang canvas, xuất dữ liệu PSD, truy cập dữ liệu lát cắt PSD và truy cập lớp PSD bên trong ứng dụng Ruby.  

PSD.rb là một thư viện Ruby mã nguồn mở nhẹ, dễ sử dụng cho phép các nhà phát triển phần mềm phân tích cú pháp tệp Adobe Photoshop PSD hoặc trích xuất Siêu dữ liệu và các thông tin hữu dụng khác bằng cách sử dụng mã Ruby. Thư viện cho phép người dùng xử lý dữ liệu tài liệu Photoshop theo cấu trúc cây có thể quản lý được. Mục đích đằng sau việc phát triển PSD.rb là cung cấp khả năng cạo PSD tốt hơn cho các nhà phát triển làm việc với các tệp PSD Photoshop thường xuyên.

Thư viện xử lý tất cả các chức năng chính liên quan đến việc truy cập và mở tệp cũng như tìm kiếm dữ liệu mong muốn và truy xuất nó ở dạng hoạt động. Thư viện PSD.rb rất dễ xử lý và cho phép các nhà phát triển làm việc với tài liệu Photoshop trong cấu trúc cây có thể quản lý và tìm kiếm dữ liệu quan trọng như kích thước tài liệu, cấu trúc tài liệu, tên và kích thước thư mục, độ mờ của thư mục, khả năng hiển thị thư mục , Tên phông chữ, màu hoặc kích thước phông chữ, dữ liệu mặt nạ vectơ, dữ liệu hình ảnh phẳng và hơn thế nữa

Previous Next

Bắt đầu với PSD.rb

Cách được khuyến nghị để cài đặt PSD.rb là sử dụng RubyGems. Vui lòng sử dụng lệnh sau để cài đặt suôn sẻ.

Cài đặt PSD.rb qua GitHub

$ gem install psd

Xuất dữ liệu PSD bằng API Ruby

Thư viện PSD.rb mã nguồn mở cho phép các lập trình viên phần mềm xuất dữ liệu từ tệp PSD một cách dễ dàng bằng các lệnh Ruby. Trong khi làm việc trong cấu trúc cây, chúng ta có thể xuất đệ quy bất kỳ nút nào sang một đối tượng, bao gồm tất cả thông tin chung. Cũng có thể xuất PSD sang tệp hình ảnh phẳng chỉ với một vài dòng mã Ruby. Hãy nhớ lưu nó với Chế độ tương thích được bật, nếu không sẽ tạo ra một hình ảnh trống

Xuất khẩu PSD dữ liệu qua 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

Chuyển đổi PSD sang Canvas bằng Ruby

Thư viện PSD.rb mã nguồn mở đã cung cấp đầy đủ chức năng để chuyển đổi PSD sang canvas bên trong các ứng dụng Ruby. Thư viện hỗ trợ phân tích cú pháp PSD đã nhập và chuyển đổi nó thành các đối tượng canvas. Sau đó, bạn có thể lặp lại các lớp của các đối tượng PSD và thêm các đối tượng vào canvas một cách dễ dàng. Sau thứ tự đó, các đối tượng được thêm vào và bạn đã hoàn thành. Bạn cũng có thể xuất canvas sang PDF, SVG, PNG, PEG, v.v.

Truy cập dữ liệu PSD Slices

Thư viện PSD.rb cung cấp cho các nhà phát triển phần mềm khả năng truy cập các lát cắt PSD trực tiếp bên trong các ứng dụng của riêng họ. Nó cũng hỗ trợ lấy một mảng tất cả các lát trong tài liệu chỉ với một vài dòng mã Ruby. Cũng có thể tìm kiếm các lát theo tên của họ hoặc theo ID của họ. Thư viện cũng cung cấp hỗ trợ cho các lát xuất khẩu dưới dạng PNG.

Truy cập PSD dữ liệu của Slices qua 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

Truy cập dữ liệu lớp PSD

Thư viện PSD.rb cho phép các chuyên gia phần mềm truy cập dữ liệu PSD lớp sử dụng lệnh Ruby. Cô có thể dễ dàng lấy tên cũng như kích thước của lớp sử dụng một vài dòng mã Ruby. Các nhà phát triển cũng có thể truy cập nhiều loại thông tin khác được lưu trữ trong các khu thông tin lớp như kích thước, màu sắc, phông chữ, vân vân.

Truy cập PSD lớp qua 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);"}
 Tiếng Việt