ruby-vips 2.0.17 → 2.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 +4 -4
- data/.github/ISSUE_TEMPLATE/bug_report.md +42 -0
- data/.github/workflows/test.yml +80 -0
- data/.standard.yml +17 -0
- data/.yardopts +0 -1
- data/CHANGELOG.md +13 -0
- data/Gemfile +3 -1
- data/README.md +4 -4
- data/Rakefile +13 -21
- data/TODO +3 -6
- data/VERSION +1 -1
- data/example/annotate.rb +6 -6
- data/example/connection.rb +18 -9
- data/example/daltonize8.rb +6 -6
- data/example/draw_lines.rb +30 -0
- data/example/example1.rb +4 -4
- data/example/example2.rb +6 -6
- data/example/example3.rb +5 -5
- data/example/example4.rb +2 -2
- data/example/example5.rb +4 -4
- data/example/inheritance_with_refcount.rb +35 -36
- data/example/progress.rb +3 -3
- data/example/thumb.rb +6 -6
- data/example/trim8.rb +1 -1
- data/example/watermark.rb +2 -2
- data/example/wobble.rb +1 -1
- data/lib/ruby-vips.rb +1 -1
- data/lib/vips.rb +121 -75
- data/lib/vips/blend_mode.rb +29 -25
- data/lib/vips/connection.rb +4 -4
- data/lib/vips/gobject.rb +18 -11
- data/lib/vips/gvalue.rb +54 -54
- data/lib/vips/image.rb +232 -155
- data/lib/vips/interpolate.rb +3 -2
- data/lib/vips/methods.rb +165 -15
- data/lib/vips/mutableimage.rb +154 -0
- data/lib/vips/object.rb +84 -85
- data/lib/vips/operation.rb +161 -82
- data/lib/vips/region.rb +6 -6
- data/lib/vips/source.rb +11 -12
- data/lib/vips/sourcecustom.rb +7 -8
- data/lib/vips/target.rb +12 -13
- data/lib/vips/targetcustom.rb +9 -10
- data/lib/vips/version.rb +1 -1
- data/ruby-vips.gemspec +26 -22
- metadata +28 -48
- data/.rubocop.yml +0 -22
- data/.rubocop_todo.yml +0 -473
- data/.travis.yml +0 -57
- data/install-vips.sh +0 -26
data/lib/vips/region.rb
CHANGED
@@ -4,12 +4,12 @@
|
|
4
4
|
# Author:: John Cupitt (mailto:jcupitt@gmail.com)
|
5
5
|
# License:: MIT
|
6
6
|
|
7
|
-
require
|
7
|
+
require "ffi"
|
8
8
|
|
9
9
|
module Vips
|
10
10
|
attach_function :vips_region_new, [:pointer], :pointer
|
11
11
|
|
12
|
-
if Vips
|
12
|
+
if Vips.at_least_libvips?(8, 8)
|
13
13
|
attach_function :vips_region_fetch, [:pointer, :int, :int, :int, :int, SizeStruct.ptr], :pointer
|
14
14
|
attach_function :vips_region_width, [:pointer], :int
|
15
15
|
attach_function :vips_region_height, [:pointer], :int
|
@@ -44,24 +44,24 @@ module Vips
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def initialize(name)
|
47
|
-
ptr = Vips
|
47
|
+
ptr = Vips.vips_region_new name
|
48
48
|
raise Vips::Error if ptr.null?
|
49
49
|
|
50
50
|
super ptr
|
51
51
|
end
|
52
52
|
|
53
53
|
def width
|
54
|
-
Vips
|
54
|
+
Vips.vips_region_width self
|
55
55
|
end
|
56
56
|
|
57
57
|
def height
|
58
|
-
Vips
|
58
|
+
Vips.vips_region_height self
|
59
59
|
end
|
60
60
|
|
61
61
|
# Fetch a region filled with pixel data.
|
62
62
|
def fetch(left, top, width, height)
|
63
63
|
len = Vips::SizeStruct.new
|
64
|
-
ptr = Vips
|
64
|
+
ptr = Vips.vips_region_fetch self, left, top, width, height, len
|
65
65
|
raise Vips::Error if ptr.null?
|
66
66
|
|
67
67
|
# wrap up as an autopointer
|
data/lib/vips/source.rb
CHANGED
@@ -4,10 +4,10 @@
|
|
4
4
|
# Author:: John Cupitt (mailto:jcupitt@gmail.com)
|
5
5
|
# License:: MIT
|
6
6
|
|
7
|
-
require
|
7
|
+
require "ffi"
|
8
8
|
|
9
9
|
module Vips
|
10
|
-
if Vips
|
10
|
+
if Vips.at_least_libvips?(8, 9)
|
11
11
|
attach_function :vips_source_new_from_descriptor, [:int], :pointer
|
12
12
|
attach_function :vips_source_new_from_file, [:pointer], :pointer
|
13
13
|
attach_function :vips_source_new_from_memory, [:pointer, :size_t], :pointer
|
@@ -42,26 +42,26 @@ module Vips
|
|
42
42
|
#
|
43
43
|
# Pass sources to {Image.new_from_source} to load images from
|
44
44
|
# them.
|
45
|
-
#
|
45
|
+
#
|
46
46
|
# @param descriptor [Integer] the file descriptor
|
47
47
|
# @return [Source] the new Vips::Source
|
48
48
|
def self.new_from_descriptor(descriptor)
|
49
|
-
ptr = Vips
|
49
|
+
ptr = Vips.vips_source_new_from_descriptor descriptor
|
50
50
|
raise Vips::Error if ptr.null?
|
51
51
|
|
52
52
|
Vips::Source.new ptr
|
53
53
|
end
|
54
54
|
|
55
|
-
# Create a new source from a file name.
|
55
|
+
# Create a new source from a file name.
|
56
56
|
#
|
57
57
|
# Pass sources to {Image.new_from_source} to load images from
|
58
58
|
# them.
|
59
|
-
#
|
59
|
+
#
|
60
60
|
# @param filename [String] the name of the file
|
61
61
|
# @return [Source] the new Vips::Source
|
62
62
|
def self.new_from_file(filename)
|
63
63
|
raise Vips::Error, "filename is nil" if filename.nil?
|
64
|
-
ptr = Vips
|
64
|
+
ptr = Vips.vips_source_new_from_file filename
|
65
65
|
raise Vips::Error if ptr.null?
|
66
66
|
|
67
67
|
Vips::Source.new ptr
|
@@ -72,18 +72,17 @@ module Vips
|
|
72
72
|
#
|
73
73
|
# Pass sources to {Image.new_from_source} to load images from
|
74
74
|
# them.
|
75
|
-
#
|
76
|
-
# @param data [String] memory area
|
75
|
+
#
|
76
|
+
# @param data [String] memory area
|
77
77
|
# @return [Source] the new Vips::Source
|
78
78
|
def self.new_from_memory(data)
|
79
|
-
ptr = Vips
|
79
|
+
ptr = Vips.vips_source_new_from_memory data, data.bytesize
|
80
80
|
raise Vips::Error if ptr.null?
|
81
81
|
|
82
|
-
# FIXME do we need to keep a ref to the underlying memory area? what
|
82
|
+
# FIXME do we need to keep a ref to the underlying memory area? what
|
83
83
|
# about Image.new_from_buffer? Does that need a secret ref too?
|
84
84
|
|
85
85
|
Vips::Source.new ptr
|
86
86
|
end
|
87
|
-
|
88
87
|
end
|
89
88
|
end
|
data/lib/vips/sourcecustom.rb
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# Author:: John Cupitt (mailto:jcupitt@gmail.com)
|
5
5
|
# License:: MIT
|
6
6
|
|
7
|
-
require
|
7
|
+
require "ffi"
|
8
8
|
|
9
9
|
module Vips
|
10
|
-
if Vips
|
10
|
+
if Vips.at_least_libvips?(8, 9)
|
11
11
|
attach_function :vips_source_custom_new, [], :pointer
|
12
12
|
end
|
13
13
|
|
14
|
-
# A source you can attach action signal handlers to to implement
|
14
|
+
# A source you can attach action signal handlers to to implement
|
15
15
|
# custom input types.
|
16
16
|
#
|
17
17
|
# For example:
|
@@ -23,7 +23,7 @@ module Vips
|
|
23
23
|
# image = Vips::Image.new_from_source source
|
24
24
|
# ```
|
25
25
|
#
|
26
|
-
# (just an example -- of course in practice you'd use {Source#new_from_file}
|
26
|
+
# (just an example -- of course in practice you'd use {Source#new_from_file}
|
27
27
|
# to read from a named file)
|
28
28
|
class SourceCustom < Vips::Source
|
29
29
|
module SourceCustomLayout
|
@@ -44,7 +44,7 @@ module Vips
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def initialize
|
47
|
-
pointer = Vips
|
47
|
+
pointer = Vips.vips_source_custom_new
|
48
48
|
raise Vips::Error if pointer.null?
|
49
49
|
|
50
50
|
super pointer
|
@@ -60,7 +60,7 @@ module Vips
|
|
60
60
|
def on_read &block
|
61
61
|
signal_connect "read" do |buf, len|
|
62
62
|
chunk = block.call len
|
63
|
-
return 0 if chunk
|
63
|
+
return 0 if chunk.nil?
|
64
64
|
bytes_read = chunk.bytesize
|
65
65
|
buf.put_bytes(0, chunk, 0, bytes_read)
|
66
66
|
chunk.clear
|
@@ -70,7 +70,7 @@ module Vips
|
|
70
70
|
end
|
71
71
|
|
72
72
|
# The block is executed to seek the source. The interface is exactly as
|
73
|
-
# IO::seek, ie. it should take an offset and whence, and return the
|
73
|
+
# IO::seek, ie. it should take an offset and whence, and return the
|
74
74
|
# new read position.
|
75
75
|
#
|
76
76
|
# This handler is optional -- if you do not attach a seek handler,
|
@@ -85,6 +85,5 @@ module Vips
|
|
85
85
|
block.call offset, whence
|
86
86
|
end
|
87
87
|
end
|
88
|
-
|
89
88
|
end
|
90
89
|
end
|
data/lib/vips/target.rb
CHANGED
@@ -4,10 +4,10 @@
|
|
4
4
|
# Author:: John Cupitt (mailto:jcupitt@gmail.com)
|
5
5
|
# License:: MIT
|
6
6
|
|
7
|
-
require
|
7
|
+
require "ffi"
|
8
8
|
|
9
9
|
module Vips
|
10
|
-
if Vips
|
10
|
+
if Vips.at_least_libvips?(8, 9)
|
11
11
|
attach_function :vips_target_new_to_descriptor, [:int], :pointer
|
12
12
|
attach_function :vips_target_new_to_file, [:string], :pointer
|
13
13
|
attach_function :vips_target_new_to_memory, [], :pointer
|
@@ -43,45 +43,44 @@ module Vips
|
|
43
43
|
#
|
44
44
|
# Pass targets to {Image#write_to_target} to write images to
|
45
45
|
# them.
|
46
|
-
#
|
46
|
+
#
|
47
47
|
# @param descriptor [Integer] the file descriptor
|
48
48
|
# @return [Target] the new Vips::Target
|
49
49
|
def self.new_to_descriptor(descriptor)
|
50
|
-
ptr = Vips
|
50
|
+
ptr = Vips.vips_target_new_to_descriptor descriptor
|
51
51
|
raise Vips::Error if ptr.null?
|
52
52
|
|
53
53
|
Vips::Target.new ptr
|
54
54
|
end
|
55
55
|
|
56
|
-
# Create a new target to a file name.
|
56
|
+
# Create a new target to a file name.
|
57
57
|
#
|
58
58
|
# Pass targets to {Image#write_to_target} to write images to
|
59
59
|
# them.
|
60
|
-
#
|
60
|
+
#
|
61
61
|
# @param filename [String] the name of the file
|
62
62
|
# @return [Target] the new Vips::Target
|
63
63
|
def self.new_to_file(filename)
|
64
|
-
raise Vips::Error,
|
65
|
-
ptr = Vips
|
64
|
+
raise Vips::Error, "filename is nil" if filename.nil?
|
65
|
+
ptr = Vips.vips_target_new_to_file filename
|
66
66
|
raise Vips::Error if ptr.null?
|
67
67
|
|
68
68
|
Vips::Target.new ptr
|
69
69
|
end
|
70
70
|
|
71
|
-
# Create a new target to an area of memory.
|
71
|
+
# Create a new target to an area of memory.
|
72
72
|
#
|
73
73
|
# Pass targets to {Image#write_to_target} to write images to
|
74
74
|
# them.
|
75
75
|
#
|
76
|
-
# Once the image has been written, use {Object#get}`("blob")` to read out
|
76
|
+
# Once the image has been written, use {Object#get}`("blob")` to read out
|
77
77
|
# the data.
|
78
|
-
#
|
78
|
+
#
|
79
79
|
# @return [Target] the new Vips::Target
|
80
80
|
def self.new_to_memory
|
81
|
-
ptr = Vips
|
81
|
+
ptr = Vips.vips_target_new_to_memory
|
82
82
|
|
83
83
|
Vips::Target.new ptr
|
84
84
|
end
|
85
|
-
|
86
85
|
end
|
87
86
|
end
|
data/lib/vips/targetcustom.rb
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# Author:: John Cupitt (mailto:jcupitt@gmail.com)
|
5
5
|
# License:: MIT
|
6
6
|
|
7
|
-
require
|
7
|
+
require "ffi"
|
8
8
|
|
9
9
|
module Vips
|
10
|
-
if Vips
|
10
|
+
if Vips.at_least_libvips?(8, 9)
|
11
11
|
attach_function :vips_target_custom_new, [], :pointer
|
12
12
|
end
|
13
13
|
|
14
|
-
# A target you can attach action signal handlers to to implememt
|
14
|
+
# A target you can attach action signal handlers to to implememt
|
15
15
|
# custom output types.
|
16
16
|
#
|
17
17
|
# For example:
|
@@ -23,7 +23,7 @@ module Vips
|
|
23
23
|
# image.write_to_target target, ".png"
|
24
24
|
# ```
|
25
25
|
#
|
26
|
-
# (just an example -- of course in practice you'd use {Target#new_to_file}
|
26
|
+
# (just an example -- of course in practice you'd use {Target#new_to_file}
|
27
27
|
# to write to a named file)
|
28
28
|
class TargetCustom < Vips::Target
|
29
29
|
module TargetCustomLayout
|
@@ -44,17 +44,17 @@ module Vips
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def initialize
|
47
|
-
pointer = Vips
|
47
|
+
pointer = Vips.vips_target_custom_new
|
48
48
|
raise Vips::Error if pointer.null?
|
49
49
|
|
50
50
|
super pointer
|
51
51
|
end
|
52
52
|
|
53
53
|
# The block is executed to write data to the source. The interface is
|
54
|
-
# exactly as IO::write, ie. it should write the string and return the
|
54
|
+
# exactly as IO::write, ie. it should write the string and return the
|
55
55
|
# number of bytes written.
|
56
56
|
#
|
57
|
-
# @yieldparam bytes [String] Write these bytes to the file
|
57
|
+
# @yieldparam bytes [String] Write these bytes to the file
|
58
58
|
# @yieldreturn [Integer] The number of bytes written, or -1 on error
|
59
59
|
def on_write &block
|
60
60
|
signal_connect "write" do |p, len|
|
@@ -69,10 +69,9 @@ module Vips
|
|
69
69
|
# The block is executed at the end of write. It should do any necessary
|
70
70
|
# finishing action, such as closing a file.
|
71
71
|
def on_finish &block
|
72
|
-
signal_connect "finish" do
|
73
|
-
block.call
|
72
|
+
signal_connect "finish" do
|
73
|
+
block.call
|
74
74
|
end
|
75
75
|
end
|
76
|
-
|
77
76
|
end
|
78
77
|
end
|
data/lib/vips/version.rb
CHANGED
data/ruby-vips.gemspec
CHANGED
@@ -1,44 +1,48 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
require 'vips/version'
|
3
|
+
require_relative "lib/vips/version"
|
6
4
|
|
7
5
|
Gem::Specification.new do |spec|
|
8
6
|
spec.name = "ruby-vips"
|
9
7
|
spec.version = Vips::VERSION
|
10
|
-
spec.
|
11
|
-
spec.
|
12
|
-
|
13
|
-
|
14
|
-
|
8
|
+
spec.summary = "A fast image processing library with low memory needs"
|
9
|
+
spec.description = <<-DESC.strip
|
10
|
+
ruby-vips is a binding for the libvips image processing library. It is fast
|
11
|
+
and it can process large images without loading the whole image in memory.
|
12
|
+
DESC
|
15
13
|
spec.homepage = "http://github.com/libvips/ruby-vips"
|
16
14
|
spec.licenses = ["MIT"]
|
15
|
+
spec.authors = ["John Cupitt"]
|
16
|
+
spec.email = ["jcupitt@gmail.com"]
|
17
|
+
|
18
|
+
spec.metadata = {
|
19
|
+
"bug_tracker_uri" => "https://github.com/libvips/ruby-vips/issues",
|
20
|
+
"changelog_uri" =>
|
21
|
+
"https://github.com/libvips/ruby-vips/blob/master/CHANGELOG.md",
|
22
|
+
"documentation_uri" => "https://www.rubydoc.info/gems/ruby-vips",
|
23
|
+
"homepage_uri" => spec.homepage,
|
24
|
+
"source_code_uri" => "https://github.com/libvips/ruby-vips",
|
25
|
+
|
26
|
+
"msys2_mingw_dependencies" => "libvips"
|
27
|
+
}
|
17
28
|
|
18
29
|
spec.require_paths = ["lib"]
|
19
|
-
spec.extra_rdoc_files = [
|
20
|
-
"LICENSE.txt",
|
21
|
-
"README.md",
|
22
|
-
"TODO"
|
23
|
-
]
|
30
|
+
spec.extra_rdoc_files = %w[LICENSE.txt README.md TODO]
|
24
31
|
|
25
32
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
26
33
|
f.match(%r{^(test|spec|features)/})
|
27
34
|
end
|
28
35
|
|
29
|
-
spec.
|
36
|
+
spec.required_ruby_version = ">= 2.0.0"
|
37
|
+
|
38
|
+
spec.add_runtime_dependency "ffi", ["~> 1.12"]
|
30
39
|
|
31
|
-
spec.add_development_dependency "rake", ["~>
|
40
|
+
spec.add_development_dependency "rake", ["~> 12.0"]
|
32
41
|
spec.add_development_dependency "rspec", ["~> 3.3"]
|
33
42
|
spec.add_development_dependency "yard", ["~> 0.9.11"]
|
34
|
-
spec.add_development_dependency "redcarpet", ["~> 3.3"]
|
35
|
-
spec.add_development_dependency "github-markup", ["~> 1.4"]
|
36
43
|
spec.add_development_dependency "bundler", [">= 1.0", "< 3"]
|
37
44
|
|
38
|
-
# RuboCop requires Ruby >= 2.2
|
39
45
|
if Gem.ruby_version >= Gem::Version.new("2.2")
|
40
|
-
spec.add_development_dependency "
|
46
|
+
spec.add_development_dependency "standard"
|
41
47
|
end
|
42
|
-
|
43
|
-
spec.metadata["msys2_mingw_dependencies"] = "libvips"
|
44
48
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-vips
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Cupitt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.12'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.12'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '12.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '12.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,34 +66,6 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.9.11
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: redcarpet
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '3.3'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '3.3'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: github-markup
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '1.4'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '1.4'
|
97
69
|
- !ruby/object:Gem::Dependency
|
98
70
|
name: bundler
|
99
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,22 +87,24 @@ dependencies:
|
|
115
87
|
- !ruby/object:Gem::Version
|
116
88
|
version: '3'
|
117
89
|
- !ruby/object:Gem::Dependency
|
118
|
-
name:
|
90
|
+
name: standard
|
119
91
|
requirement: !ruby/object:Gem::Requirement
|
120
92
|
requirements:
|
121
|
-
- - "
|
93
|
+
- - ">="
|
122
94
|
- !ruby/object:Gem::Version
|
123
|
-
version: '0
|
95
|
+
version: '0'
|
124
96
|
type: :development
|
125
97
|
prerelease: false
|
126
98
|
version_requirements: !ruby/object:Gem::Requirement
|
127
99
|
requirements:
|
128
|
-
- - "
|
100
|
+
- - ">="
|
129
101
|
- !ruby/object:Gem::Version
|
130
|
-
version: '0
|
131
|
-
description: ruby-vips is a binding for the
|
132
|
-
and it can process large images without loading the whole image in
|
133
|
-
|
102
|
+
version: '0'
|
103
|
+
description: "ruby-vips is a binding for the libvips image processing library. It
|
104
|
+
is fast \n and it can process large images without loading the whole image in
|
105
|
+
memory."
|
106
|
+
email:
|
107
|
+
- jcupitt@gmail.com
|
134
108
|
executables: []
|
135
109
|
extensions: []
|
136
110
|
extra_rdoc_files:
|
@@ -138,10 +112,10 @@ extra_rdoc_files:
|
|
138
112
|
- README.md
|
139
113
|
- TODO
|
140
114
|
files:
|
115
|
+
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
116
|
+
- ".github/workflows/test.yml"
|
141
117
|
- ".gitignore"
|
142
|
-
- ".
|
143
|
-
- ".rubocop_todo.yml"
|
144
|
-
- ".travis.yml"
|
118
|
+
- ".standard.yml"
|
145
119
|
- ".yardopts"
|
146
120
|
- CHANGELOG.md
|
147
121
|
- Gemfile
|
@@ -153,6 +127,7 @@ files:
|
|
153
127
|
- example/annotate.rb
|
154
128
|
- example/connection.rb
|
155
129
|
- example/daltonize8.rb
|
130
|
+
- example/draw_lines.rb
|
156
131
|
- example/example1.rb
|
157
132
|
- example/example2.rb
|
158
133
|
- example/example3.rb
|
@@ -164,7 +139,6 @@ files:
|
|
164
139
|
- example/trim8.rb
|
165
140
|
- example/watermark.rb
|
166
141
|
- example/wobble.rb
|
167
|
-
- install-vips.sh
|
168
142
|
- lib/ruby-vips.rb
|
169
143
|
- lib/vips.rb
|
170
144
|
- lib/vips/access.rb
|
@@ -186,6 +160,7 @@ files:
|
|
186
160
|
- lib/vips/interpretation.rb
|
187
161
|
- lib/vips/kernel.rb
|
188
162
|
- lib/vips/methods.rb
|
163
|
+
- lib/vips/mutableimage.rb
|
189
164
|
- lib/vips/object.rb
|
190
165
|
- lib/vips/operation.rb
|
191
166
|
- lib/vips/operationboolean.rb
|
@@ -208,6 +183,11 @@ homepage: http://github.com/libvips/ruby-vips
|
|
208
183
|
licenses:
|
209
184
|
- MIT
|
210
185
|
metadata:
|
186
|
+
bug_tracker_uri: https://github.com/libvips/ruby-vips/issues
|
187
|
+
changelog_uri: https://github.com/libvips/ruby-vips/blob/master/CHANGELOG.md
|
188
|
+
documentation_uri: https://www.rubydoc.info/gems/ruby-vips
|
189
|
+
homepage_uri: http://github.com/libvips/ruby-vips
|
190
|
+
source_code_uri: https://github.com/libvips/ruby-vips
|
211
191
|
msys2_mingw_dependencies: libvips
|
212
192
|
post_install_message:
|
213
193
|
rdoc_options: []
|
@@ -217,7 +197,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
217
197
|
requirements:
|
218
198
|
- - ">="
|
219
199
|
- !ruby/object:Gem::Version
|
220
|
-
version:
|
200
|
+
version: 2.0.0
|
221
201
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
222
202
|
requirements:
|
223
203
|
- - ">="
|
@@ -227,5 +207,5 @@ requirements: []
|
|
227
207
|
rubygems_version: 3.1.2
|
228
208
|
signing_key:
|
229
209
|
specification_version: 4
|
230
|
-
summary:
|
210
|
+
summary: A fast image processing library with low memory needs
|
231
211
|
test_files: []
|