Class: APNGAsmGUI::Adapter
- Inherits:
-
Object
- Object
- APNGAsmGUI::Adapter
- Defined in:
- lib/apngasm-gui/adapter.rb
Instance Method Summary collapse
- #export(frame_list, filename, frames_status) ⇒ Object
- #import(frame_list, filename) ⇒ Object
-
#initialize ⇒ Adapter
constructor
A new instance of Adapter.
- #save_frames(filename) ⇒ Object
- #set_apngframe(frame) ⇒ Object
- #set_filename(filename) ⇒ Object
Constructor Details
#initialize ⇒ Adapter
Returns a new instance of Adapter.
7 8 9 |
# File 'lib/apngasm-gui/adapter.rb', line 7 def initialize @apngasm = APNGAsm.new end |
Instance Method Details
#export(frame_list, filename, frames_status) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/apngasm-gui/adapter.rb', line 24 def export(frame_list, filename, frames_status) @apngasm.reset filename = set_filename(filename) frame_list.list.each do |frame| if frame.apngframe.nil? @apngasm.add_frame_file(frame.filename, frame.delay) else set_apngframe(frame) end end @apngasm.assemble("#{filename}.png") save_frames(filename) if frames_status GC.start end |
#import(frame_list, filename) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/apngasm-gui/adapter.rb', line 11 def import(frame_list, filename) @apngasm.reset apngframes = @apngasm.disassemble(filename) filename = File.basename(filename, '.png') new_frames = [] apngframes.each_with_index do |apngframe, i| new_frames << APNGAsmGUI::Frame.new("#{filename}_#{i}.png", frame_list, apngframe) end new_frames end |
#save_frames(filename) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/apngasm-gui/adapter.rb', line 42 def save_frames(filename) @apngasm.reset @apngasm.disassemble("#{filename}.png") FileUtils.mkdir_p(filename) unless File.exist?(filename) @apngasm.save_pngs(filename) @apngasm.save_json("#{filename}/animation.json", filename) end |
#set_apngframe(frame) ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'lib/apngasm-gui/adapter.rb', line 50 def set_apngframe(frame) filename = "#{File.basename(frame.filename, '.png')}" Dir::mktmpdir(nil, File.dirname(__FILE__)) do |dir| frame.apngframe.save("#{dir}/#{filename}.png") @apngasm.add_frame_file("#{dir}/#{filename}.png", frame.delay) end end |
#set_filename(filename) ⇒ Object
59 60 61 62 63 |
# File 'lib/apngasm-gui/adapter.rb', line 59 def set_filename(filename) dirname = File.dirname(filename) basename = File.basename(filename, '.png') new_filename = "#{dirname}/#{basename}" end |