ไลบรารี Ruby โอเพ่นซอร์สสำหรับการแยกวิเคราะห์ไฟล์ Photoshop PSD

Ruby API ที่รองรับการแปลง PSD เป็นแคนวาส ส่งออกข้อมูล PSD เข้าถึงข้อมูลสไลซ์ PSD และเข้าถึงเลเยอร์ PSD ภายในแอป Ruby  

PSD.rb เป็นไลบรารี Ruby โอเพ่นซอร์สที่มีน้ำหนักเบาและใช้งานง่าย ซึ่งช่วยให้นักพัฒนาซอฟต์แวร์สามารถแยกวิเคราะห์ไฟล์ Adobe Photoshop PSD หรือแยกข้อมูลเมตาและข้อมูลที่ใช้งานได้อื่นๆ โดยใช้รหัส 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 ผ่านรูบี้ 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 Slice

ไลบรารี 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 คุณสามารถรับชื่อและขนาดของชั้นโดยใช้รหัสทับทิมสองบรรทัด นักพัฒนายังสามารถเข้าถึงข้อมูลประเภทอื่น ๆ ที่เก็บไว้ในบล็อกข้อมูลชั้นเช่นขนาดสีตัวอักษรและอื่น ๆ

เข้าถึง 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);"}
 ไทย