Open Source Ruby Library for parsing Photoshop PSD-fil
Ruby API som støtter konvertering av PSD til lerret, eksport av PSD-data, tilgang til PSD-skjærdata og tilgang til PSD-lag inne i Ruby-apper.
PSD.rb er et lett, brukervennlig Ruby-bibliotek med åpen kildekode som gjør det mulig for programvareutviklere å analysere Adobe Photoshop PSD-fil eller trekke ut metadata og annen brukbar informasjon ved hjelp av Ruby-kode. Biblioteket lar brukere håndtere Photoshop-dokumentdata i en håndterbar trestruktur. Målet bak utviklingen av PSD.rb var å gi bedre PSD-skrapingsmuligheter til utviklere som regelmessig arbeider med Photoshop PSD-filer.
Biblioteket håndterer alle de viktigste funksjonalitetene når det gjelder tilgang og åpning av filen og leting etter ønskede data og hente dem i operativ form. PSD.rb-biblioteket er veldig enkelt å håndtere og gjør det mulig for utviklere å jobbe med et Photoshop-dokument i en håndterlig trestruktur og søke opp viktige data som dokumentstørrelse, dokumentstruktur, mappenavn og størrelse, mappens opasitet, mappesynlighet , skriftnavn, skriftfarge eller størrelse, vektormaskedata, flate bildedata og mye mer
Komme i gang med PSD.rb
Den anbefalte måten å installere PSD.rb på er å bruke RubyGems. Bruk følgende kommando for en jevn installasjon.
Installer PSD.rb via GitHub
$ gem install psd
Eksporterer PSD-data ved hjelp av Ruby API
PSD.rb-biblioteket med åpen kildekode gjør det mulig for programvareprogrammerere å eksportere data fra en PSD-fil enkelt ved å bruke Ruby-kommandoer. Mens vi jobber i trestrukturen, kan vi rekursivt eksportere hvilken som helst node til et objekt, som inkluderer all vanlig informasjon. Det er også mulig å eksportere PSD-en til en flatet bildefil med bare et par linjer med Ruby-kode. Husk å lagre den med kompatibilitetsmodus aktivert, ellers vil et tomt bilde bli produsert
Eksporter PSD-data via 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
Konverter PSD til Canvas med Ruby
Åpen kildekode PSD.rb-biblioteket har gitt komplett funksjonalitet for å konvertere PSD til lerret inne i Ruby-applikasjoner. Biblioteket støtter parsing av den importerte PSD-en og konverterer den til lerretsobjekter. Etter det kan du iterere lagene til PSD-objektene og enkelt legge til objektene i lerretet. Etter den rekkefølgen er de lagt til objektene og du er ferdig. Du kan også eksportere lerretet til PDF, SVG, PNG, PEG og mer.
Få tilgang til PSD Slices-data
PSD.rb-biblioteket gir programvareutviklere muligheten til å få tilgang til PSD-skiver direkte i sine egne applikasjoner. Den støtter også å få en rekke av alle stykker i dokumentet med bare et par linjer med Ruby-kode. Det er også mulig å søke i skiver etter navn eller ID. Biblioteket gir også støtte for eksportskiver som PNG.
Få tilgang til PSD Slices-data via 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
Få tilgang til PSD-lagdata
PSD.rb-biblioteket med åpen kildekode gjør det mulig for programvareprofesjonelle å få tilgang til PSD-lagdata ved å bruke Ruby-kommandoer. Du kan enkelt få et navn så vel som dimensjoner på laget ved å bruke et par linjer med Ruby-kode. Utviklere kan også få tilgang til forskjellige andre typer informasjon lagret i laginfoblokker som størrelse, farge, fonter og så videre.
Få tilgang til PSD Layer via 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);"}