webp-ffi 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +4 -0
- data/README.md +8 -8
- data/lib/{webp_ffi → webp}/c.rb +1 -1
- data/lib/{webp_ffi → webp}/error.rb +1 -1
- data/lib/{webp_ffi → webp}/libc.rb +1 -1
- data/lib/{webp_ffi → webp}/options.rb +1 -1
- data/lib/webp/version.rb +3 -0
- data/lib/{webp_ffi/webp_ffi.rb → webp/webp.rb} +3 -3
- data/lib/webp_ffi.rb +7 -7
- data/spec/webp_ffi_spec.rb +16 -16
- data/webp-ffi.gemspec +2 -2
- metadata +9 -9
- data/lib/webp_ffi/version.rb +0 -3
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -45,16 +45,16 @@ Or install it yourself as:
|
|
45
45
|
|
46
46
|
## Usage
|
47
47
|
|
48
|
-
###
|
48
|
+
### Encoder end Decoder versions
|
49
49
|
|
50
50
|
Basic info about libwebp (encoder and decoder versions):
|
51
51
|
|
52
52
|
$ irb
|
53
53
|
2.0.0p0 :001 > require 'webp_ffi'
|
54
54
|
=> true
|
55
|
-
2.0.0p0 :002 >
|
55
|
+
2.0.0p0 :002 > WebP.decoder_version
|
56
56
|
=> "0.2.0"
|
57
|
-
2.0.0p0 :003 >
|
57
|
+
2.0.0p0 :003 > WebP.encoder_version
|
58
58
|
=> "0.2.0"
|
59
59
|
|
60
60
|
### WebP size (width and height)
|
@@ -62,7 +62,7 @@ Basic info about libwebp (encoder and decoder versions):
|
|
62
62
|
Get size (width and height) from webp image:
|
63
63
|
|
64
64
|
filename = File.expand_path(File.join(File.dirname(__FILE__), "spec/factories/4.webp"))
|
65
|
-
|
65
|
+
WebP.webp_size(File.open(filename, "rb").read)
|
66
66
|
=> [2000, 2353]
|
67
67
|
|
68
68
|
### Encode png, jpg or tiff image to WebP image
|
@@ -71,12 +71,12 @@ Encode png, jpg or tiff image to webp:
|
|
71
71
|
|
72
72
|
filename = File.expand_path(File.join(File.dirname(__FILE__), "spec/factories/4.png"))
|
73
73
|
out_filename = File.expand_path(File.join(File.dirname(__FILE__), "tmp/4.webp"))
|
74
|
-
|
74
|
+
WebP.encode(filename, out_filename)
|
75
75
|
|
76
76
|
Encode png, jpg or tiff image to webp (with options):
|
77
77
|
|
78
|
-
|
79
|
-
|
78
|
+
WebP.encode(filename, out_filename, quality: 50, resize_w: 100, resize_h: 200)
|
79
|
+
WebP.encode(filename, out_filename, quality: 75, crop_x: 0, cropt_y: 0, crop_w: 100, crop_h: 100)
|
80
80
|
|
81
81
|
Possible encode options:
|
82
82
|
|
@@ -109,7 +109,7 @@ Decode webp image to png:
|
|
109
109
|
|
110
110
|
filename = File.expand_path(File.join(File.dirname(__FILE__), "spec/factories/4.webp"))
|
111
111
|
out_filename = File.expand_path(File.join(File.dirname(__FILE__), "tmp/4.png"))
|
112
|
-
|
112
|
+
WebP.decode(filename, out_filename)
|
113
113
|
|
114
114
|
## Contributing
|
115
115
|
|
data/lib/{webp_ffi → webp}/c.rb
RENAMED
data/lib/webp/version.rb
ADDED
data/lib/webp_ffi.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
require 'ffi'
|
2
2
|
require 'ffi-compiler/loader'
|
3
3
|
|
4
|
-
module
|
4
|
+
module WebP
|
5
5
|
module C
|
6
6
|
extend FFI::Library
|
7
7
|
ffi_lib FFI::Compiler::Loader.find('webp_ffi')
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
require "
|
12
|
-
require "
|
13
|
-
require "
|
14
|
-
require "
|
15
|
-
require "
|
16
|
-
require "
|
11
|
+
require "webp/options"
|
12
|
+
require "webp/c"
|
13
|
+
require "webp/error"
|
14
|
+
require "webp/libc" # not used right now
|
15
|
+
require "webp/webp"
|
16
|
+
require "webp/version"
|
data/spec/webp_ffi_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe WebP do
|
4
4
|
factories = {
|
5
5
|
webp: ["1", "2", "3", "4", "5", "6", "7"],
|
6
6
|
png: ["1", "2", "3", "4"],
|
@@ -44,18 +44,18 @@ describe WebpFfi do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it "calculate plus 100 by test_c (verify C)" do
|
47
|
-
|
48
|
-
|
47
|
+
WebP::C.test_c(100).should == 200
|
48
|
+
WebP::C.test_c(150).should == 250
|
49
49
|
end
|
50
50
|
|
51
51
|
it "decoder version" do
|
52
|
-
|
53
|
-
|
52
|
+
WebP.decoder_version.should_not be_nil
|
53
|
+
WebP.decoder_version.should =~ /^([0-9]+)\.([0-9]+)\.([0-9]+)$/
|
54
54
|
end
|
55
55
|
|
56
56
|
it "encoder version" do
|
57
|
-
|
58
|
-
|
57
|
+
WebP.encoder_version.should_not be_nil
|
58
|
+
WebP.decoder_version.should =~ /^([0-9]+)\.([0-9]+)\.([0-9]+)$/
|
59
59
|
end
|
60
60
|
|
61
61
|
context "webp_size" do
|
@@ -63,7 +63,7 @@ describe WebpFfi do
|
|
63
63
|
it "#{image} image size == #{factories[:info][image][:size]}" do
|
64
64
|
filename = File.expand_path(File.join(File.dirname(__FILE__), "factories/#{image}.webp"))
|
65
65
|
data = File.open(filename, "rb").read
|
66
|
-
info =
|
66
|
+
info = WebP.webp_size(data)
|
67
67
|
info.class.should == Array
|
68
68
|
info.size.should == 2
|
69
69
|
info.should == factories[:info][image][:size]
|
@@ -72,7 +72,7 @@ describe WebpFfi do
|
|
72
72
|
it "raise InvalidImageFormatError for non-webp image" do
|
73
73
|
filename = File.expand_path(File.join(File.dirname(__FILE__), "factories/1.png"))
|
74
74
|
data = File.open(filename, "rb").read
|
75
|
-
expect {
|
75
|
+
expect { WebP.webp_size(data) }.to raise_error WebP::InvalidImageFormatError
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
@@ -81,28 +81,28 @@ describe WebpFfi do
|
|
81
81
|
it "#{image}.png image" do
|
82
82
|
in_filename = File.expand_path(File.join(File.dirname(__FILE__), "factories/#{image}.png"))
|
83
83
|
out_filename = File.expand_path(File.join(@out_dir, "#{image}.png.webp"))
|
84
|
-
|
84
|
+
WebP.encode(in_filename, out_filename).should be_true
|
85
85
|
end
|
86
86
|
end
|
87
87
|
factories[:jpg].each do |image|
|
88
88
|
it "#{image}.jpg image" do
|
89
89
|
in_filename = File.expand_path(File.join(File.dirname(__FILE__), "factories/#{image}.jpg"))
|
90
90
|
out_filename = File.expand_path(File.join(@out_dir, "#{image}.jpg.webp"))
|
91
|
-
|
91
|
+
WebP.encode(in_filename, out_filename).should be_true
|
92
92
|
end
|
93
93
|
end
|
94
94
|
factories[:tiff].each do |image|
|
95
95
|
it "#{image}.tif image" do
|
96
96
|
in_filename = File.expand_path(File.join(File.dirname(__FILE__), "factories/#{image}.tif"))
|
97
97
|
out_filename = File.expand_path(File.join(@out_dir, "#{image}.tif.webp"))
|
98
|
-
|
98
|
+
WebP.encode(in_filename, out_filename).should be_true
|
99
99
|
end
|
100
100
|
end
|
101
101
|
factories[:webp].each do |image|
|
102
102
|
it "raise EncoderError on #{image}.webp image" do
|
103
103
|
in_filename = File.expand_path(File.join(File.dirname(__FILE__), "factories/#{image}.webp"))
|
104
104
|
out_filename = File.expand_path(File.join(@out_dir, "#{image}invalid.webp.png"))
|
105
|
-
expect {
|
105
|
+
expect { WebP.encode(in_filename, out_filename) }.to raise_error WebP::EncoderError
|
106
106
|
end
|
107
107
|
end
|
108
108
|
end
|
@@ -112,7 +112,7 @@ describe WebpFfi do
|
|
112
112
|
it "#{image}.png image" do
|
113
113
|
in_filename = File.expand_path(File.join(File.dirname(__FILE__), "factories/#{image}.png"))
|
114
114
|
out_filename = File.expand_path(File.join(@out_dir, "#{image}.50png.webp"))
|
115
|
-
|
115
|
+
WebP.encode(in_filename, out_filename, quality: 50)
|
116
116
|
end
|
117
117
|
end
|
118
118
|
end
|
@@ -122,7 +122,7 @@ describe WebpFfi do
|
|
122
122
|
it "#{image}.png image" do
|
123
123
|
in_filename = File.expand_path(File.join(File.dirname(__FILE__), "factories/#{image}.png"))
|
124
124
|
out_filename = File.expand_path(File.join(@out_dir, "#{image}.50png.webp"))
|
125
|
-
expect {
|
125
|
+
expect { WebP.encode(in_filename, out_filename, crop_w: 30000) }.to raise_error WebP::EncoderError
|
126
126
|
end
|
127
127
|
end
|
128
128
|
end
|
@@ -132,7 +132,7 @@ describe WebpFfi do
|
|
132
132
|
it "#{image}.webp image" do
|
133
133
|
in_filename = File.expand_path(File.join(File.dirname(__FILE__), "factories/#{image}.webp"))
|
134
134
|
out_filename = File.expand_path(File.join(@out_dir, "#{image}.webp.png"))
|
135
|
-
|
135
|
+
WebP.decode(in_filename, out_filename).should be_true
|
136
136
|
end
|
137
137
|
end
|
138
138
|
end
|
data/webp-ffi.gemspec
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require '
|
4
|
+
require 'webp/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "webp-ffi"
|
8
|
-
spec.version =
|
8
|
+
spec.version = WebP::VERSION
|
9
9
|
spec.authors = ["Alexey Vasyliev"]
|
10
10
|
spec.email = ["leopard.not.a@gmail.com"]
|
11
11
|
spec.description = %q{Ruby wrapper for libwebp}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webp-ffi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -113,13 +113,13 @@ files:
|
|
113
113
|
- ext/webp_ffi/webp_ffi.c
|
114
114
|
- ext/webp_ffi/webp_ffi.h
|
115
115
|
- lib/webp-ffi.rb
|
116
|
+
- lib/webp/c.rb
|
117
|
+
- lib/webp/error.rb
|
118
|
+
- lib/webp/libc.rb
|
119
|
+
- lib/webp/options.rb
|
120
|
+
- lib/webp/version.rb
|
121
|
+
- lib/webp/webp.rb
|
116
122
|
- lib/webp_ffi.rb
|
117
|
-
- lib/webp_ffi/c.rb
|
118
|
-
- lib/webp_ffi/error.rb
|
119
|
-
- lib/webp_ffi/libc.rb
|
120
|
-
- lib/webp_ffi/options.rb
|
121
|
-
- lib/webp_ffi/version.rb
|
122
|
-
- lib/webp_ffi/webp_ffi.rb
|
123
123
|
- spec/factories/1.png
|
124
124
|
- spec/factories/1.webp
|
125
125
|
- spec/factories/2.png
|
@@ -153,7 +153,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
153
153
|
version: '0'
|
154
154
|
segments:
|
155
155
|
- 0
|
156
|
-
hash:
|
156
|
+
hash: 2929211234645012291
|
157
157
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
158
|
none: false
|
159
159
|
requirements:
|
@@ -162,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
162
162
|
version: '0'
|
163
163
|
segments:
|
164
164
|
- 0
|
165
|
-
hash:
|
165
|
+
hash: 2929211234645012291
|
166
166
|
requirements: []
|
167
167
|
rubyforge_project:
|
168
168
|
rubygems_version: 1.8.25
|
data/lib/webp_ffi/version.rb
DELETED