gifanime 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/Gemfile +8 -0
- data/README.md +24 -0
- data/Rakefile +21 -0
- data/gifanime.gemspec +25 -0
- data/lib/gifanime/version.rb +3 -0
- data/lib/gifanime.rb +29 -0
- data/spec/gifanime_spec.rb +37 -0
- data/spec/images/a.png +0 -0
- data/spec/images/b.png +0 -0
- data/spec/images/c.png +0 -0
- data/spec/spec_helper.rb +4 -0
- metadata +91 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 793525a004879d9e428a657c90888ec2b4c69fb0
|
|
4
|
+
data.tar.gz: 2ef92d6523657a7188763316586497c10f1e8b56
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 91cf8eb636a5a58616244db94b52cdd830227544b4378f2caf9c3baa938fbc7f19da293fb9c5444084345af59b17a082153914b6fdeb5711f9f12b71fd58eda2
|
|
7
|
+
data.tar.gz: 98572d805678f7ba96258e1b3f50375134ca56b3e8786c71b23005f043eb51be7fe1734e6d37b215d53a53ff613b5e471e1ee9a3605edd7fe9521a92701d0ba6
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
gifanime
|
|
2
|
+
========
|
|
3
|
+
|
|
4
|
+
Thin wrapper for RMagick's animated GIF generator
|
|
5
|
+
|
|
6
|
+
# Setup
|
|
7
|
+
|
|
8
|
+
1. install ImageMagick (eg. when OS X, `brew install imagemagick`)
|
|
9
|
+
2. `gem install gifanime`
|
|
10
|
+
|
|
11
|
+
# Usage
|
|
12
|
+
|
|
13
|
+
```ruby
|
|
14
|
+
require "gifanime"
|
|
15
|
+
|
|
16
|
+
gifanime = Gifanime.new("/path/to/output.gif", delay: 10)
|
|
17
|
+
gifanime.add("/path/to/a.png")
|
|
18
|
+
gifanime.add("/path/to/b.jpg")
|
|
19
|
+
gifanime.generate! # => generates /path/to/output.gif
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
# License
|
|
23
|
+
* [MIT](http://makimoto.mit-license.org)
|
|
24
|
+
* and you must follow also [ImageMagick's license](http://www.imagemagick.org/script/license.php).
|
data/Rakefile
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env rake
|
|
2
|
+
# coding: utf-8
|
|
3
|
+
|
|
4
|
+
require 'rubygems'
|
|
5
|
+
require "bundler/gem_tasks"
|
|
6
|
+
require 'bundler'
|
|
7
|
+
|
|
8
|
+
begin
|
|
9
|
+
Bundler.setup(:default, :development)
|
|
10
|
+
rescue Bundler::BundlerError => e
|
|
11
|
+
$stderr.puts e.message
|
|
12
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
|
13
|
+
exit e.status_code
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
require 'rspec/core'
|
|
17
|
+
require 'rspec/core/rake_task'
|
|
18
|
+
|
|
19
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
20
|
+
|
|
21
|
+
task :default => :spec
|
data/gifanime.gemspec
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'gifanime'
|
|
5
|
+
require 'gifanime/version'
|
|
6
|
+
|
|
7
|
+
Gem::Specification.new do |spec|
|
|
8
|
+
spec.name = "gifanime"
|
|
9
|
+
spec.version = Gifanime::VERSION
|
|
10
|
+
spec.authors = ["Shimpei Makimoto"]
|
|
11
|
+
spec.email = ["makimoto@tsuyabu.in"]
|
|
12
|
+
spec.description = %q{Thin wrapper for RMagick's animated GIF generate feature}
|
|
13
|
+
spec.summary = %q{This gem wraps RMagick's Magick::ListImage and makes easy create animated GIFs.}
|
|
14
|
+
spec.homepage = "https://github.com/makimoto/gifanime"
|
|
15
|
+
spec.license = "MIT"
|
|
16
|
+
|
|
17
|
+
spec.files = `git ls-files`.split($/)
|
|
18
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
19
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
20
|
+
spec.require_paths = ['lib']
|
|
21
|
+
|
|
22
|
+
spec.add_dependency "rmagick"
|
|
23
|
+
spec.add_development_dependency "rake"
|
|
24
|
+
end
|
|
25
|
+
|
data/lib/gifanime.rb
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require "RMagick"
|
|
2
|
+
class Gifanime
|
|
3
|
+
attr_accessor :frames, :delay, :iterations, :scene, :ticks_per_secound, :outputfile
|
|
4
|
+
|
|
5
|
+
def initialize(outputfile, options = {})
|
|
6
|
+
@delay = options[:delay]
|
|
7
|
+
@iterations = options[:iterations]
|
|
8
|
+
@scene = options[:scene]
|
|
9
|
+
@ticks_per_secound = options[:ticks_per_secound]
|
|
10
|
+
outputfile = outputfile + ".gif" unless outputfile =~ /\.gif\z/
|
|
11
|
+
@outputfile = outputfile
|
|
12
|
+
@frames = []
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def add(frame)
|
|
16
|
+
frames << frame
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def generate!
|
|
20
|
+
gif = ::Magick::ImageList.new(*frames)
|
|
21
|
+
gif.delay = delay if delay
|
|
22
|
+
gif.iterations = iterations if iterations
|
|
23
|
+
gif.scene = scene if scene
|
|
24
|
+
gif.ticks_per_secound = ticks_per_secound if ticks_per_secound
|
|
25
|
+
gif.write(outputfile)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
GifAnime = Gifanime
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require "gifanime"
|
|
2
|
+
describe Gifanime do
|
|
3
|
+
let(:images) do
|
|
4
|
+
dir = File.dirname(__FILE__)
|
|
5
|
+
%W{
|
|
6
|
+
#{dir}/images/a.png
|
|
7
|
+
#{dir}/images/b.png
|
|
8
|
+
#{dir}/images/c.png
|
|
9
|
+
}
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
describe "#generate!" do
|
|
13
|
+
let(:outputfile) do
|
|
14
|
+
"#{File.dirname(__FILE__)}/images/output.gif"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
let(:gifanime) do
|
|
18
|
+
Gifanime.new(outputfile)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
before do
|
|
22
|
+
images.each do |image|
|
|
23
|
+
gifanime.add(image)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
after do
|
|
28
|
+
path = Pathname.new(outputfile)
|
|
29
|
+
path.delete if path.exist?
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "generates GIF animation" do
|
|
33
|
+
gifanime.generate!.should be_a(::Magick::ImageList)
|
|
34
|
+
File.read(outputfile).should_not be_empty
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
data/spec/images/a.png
ADDED
|
Binary file
|
data/spec/images/b.png
ADDED
|
Binary file
|
data/spec/images/c.png
ADDED
|
Binary file
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: gifanime
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Shimpei Makimoto
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2013-11-09 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: rmagick
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - '>='
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - '>='
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rake
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - '>='
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - '>='
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
41
|
+
description: Thin wrapper for RMagick's animated GIF generate feature
|
|
42
|
+
email:
|
|
43
|
+
- makimoto@tsuyabu.in
|
|
44
|
+
executables: []
|
|
45
|
+
extensions: []
|
|
46
|
+
extra_rdoc_files: []
|
|
47
|
+
files:
|
|
48
|
+
- .gitignore
|
|
49
|
+
- Gemfile
|
|
50
|
+
- README.md
|
|
51
|
+
- Rakefile
|
|
52
|
+
- gifanime.gemspec
|
|
53
|
+
- lib/gifanime.rb
|
|
54
|
+
- lib/gifanime/version.rb
|
|
55
|
+
- spec/gifanime_spec.rb
|
|
56
|
+
- spec/images/a.png
|
|
57
|
+
- spec/images/b.png
|
|
58
|
+
- spec/images/c.png
|
|
59
|
+
- spec/spec_helper.rb
|
|
60
|
+
homepage: https://github.com/makimoto/gifanime
|
|
61
|
+
licenses:
|
|
62
|
+
- MIT
|
|
63
|
+
metadata: {}
|
|
64
|
+
post_install_message:
|
|
65
|
+
rdoc_options: []
|
|
66
|
+
require_paths:
|
|
67
|
+
- lib
|
|
68
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
69
|
+
requirements:
|
|
70
|
+
- - '>='
|
|
71
|
+
- !ruby/object:Gem::Version
|
|
72
|
+
version: '0'
|
|
73
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
74
|
+
requirements:
|
|
75
|
+
- - '>='
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
version: '0'
|
|
78
|
+
requirements: []
|
|
79
|
+
rubyforge_project:
|
|
80
|
+
rubygems_version: 2.0.3
|
|
81
|
+
signing_key:
|
|
82
|
+
specification_version: 4
|
|
83
|
+
summary: This gem wraps RMagick's Magick::ListImage and makes easy create animated
|
|
84
|
+
GIFs.
|
|
85
|
+
test_files:
|
|
86
|
+
- spec/gifanime_spec.rb
|
|
87
|
+
- spec/images/a.png
|
|
88
|
+
- spec/images/b.png
|
|
89
|
+
- spec/images/c.png
|
|
90
|
+
- spec/spec_helper.rb
|
|
91
|
+
has_rdoc:
|