ruby-vips 2.0.17 → 2.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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 +26 -0
- data/Gemfile +3 -1
- data/README.md +12 -11
- data/Rakefile +13 -21
- data/TODO +4 -8
- 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 +46 -39
- 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 +127 -76
- 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 +289 -165
- data/lib/vips/interpolate.rb +3 -2
- data/lib/vips/methods.rb +484 -107
- data/lib/vips/mutableimage.rb +173 -0
- data/lib/vips/object.rb +86 -93
- 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 +29 -49
- 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.
|
4
|
+
version: 2.1.3
|
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-08-23 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,15 +197,15 @@ 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
|
- - ">="
|
224
204
|
- !ruby/object:Gem::Version
|
225
205
|
version: '0'
|
226
206
|
requirements: []
|
227
|
-
rubygems_version: 3.
|
207
|
+
rubygems_version: 3.2.5
|
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: []
|