rszr 0.4.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,131 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rszr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthias Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-05 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.9'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.9'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '10.0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '10.0'
41
- - !ruby/object:Gem::Dependency
42
- name: byebug
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rspec
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: simplecov
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: gd2-ffij
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: mini_magick
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
11
+ date: 2021-10-08 00:00:00.000000000 Z
12
+ dependencies: []
111
13
  description: Fast image resizer - do one thing and do it fast.
112
14
  email:
113
15
  - mtgrosser@gmx.net
114
16
  executables: []
115
- extensions: []
17
+ extensions:
18
+ - ext/rszr/extconf.rb
116
19
  extra_rdoc_files: []
117
20
  files:
21
+ - lib/rszr/batch_transformation.rb
22
+ - lib/rszr/buffered.rb
23
+ - lib/rszr/identification.rb
24
+ - lib/rszr/image.rb
25
+ - lib/rszr/image_processing.rb
26
+ - lib/rszr/orientation.rb
27
+ - lib/rszr/stream.rb
28
+ - lib/rszr/version.rb
29
+ - lib/rszr.rb
30
+ - ext/rszr/extconf.rb
31
+ - ext/rszr/errors.h
32
+ - ext/rszr/image.h
33
+ - ext/rszr/rszr.h
34
+ - ext/rszr/errors.c
35
+ - ext/rszr/image.c
36
+ - ext/rszr/rszr.c
118
37
  - LICENSE
119
38
  - README.md
120
39
  - Rakefile
121
- - lib/rszr.rb
122
- - lib/rszr/base.rb
123
- - lib/rszr/errors.rb
124
- - lib/rszr/handle.rb
125
- - lib/rszr/image.rb
126
- - lib/rszr/lib.rb
127
- - lib/rszr/lock.rb
128
- - lib/rszr/version.rb
129
40
  homepage: https://github.com/mtgrosser/rszr
130
41
  licenses:
131
42
  - MIT
@@ -134,19 +45,21 @@ post_install_message:
134
45
  rdoc_options: []
135
46
  require_paths:
136
47
  - lib
48
+ - ext
137
49
  required_ruby_version: !ruby/object:Gem::Requirement
138
50
  requirements:
139
- - - ">="
51
+ - - '>='
140
52
  - !ruby/object:Gem::Version
141
53
  version: '0'
142
54
  required_rubygems_version: !ruby/object:Gem::Requirement
143
55
  requirements:
144
- - - ">="
56
+ - - '>='
145
57
  - !ruby/object:Gem::Version
146
58
  version: '0'
147
- requirements: []
59
+ requirements:
60
+ - imlib2
148
61
  rubyforge_project:
149
- rubygems_version: 2.5.2.3
62
+ rubygems_version: 2.0.14.1
150
63
  signing_key:
151
64
  specification_version: 4
152
65
  summary: Fast image resizer
data/lib/rszr/base.rb DELETED
@@ -1,29 +0,0 @@
1
- module Rszr
2
- module Base
3
-
4
- def self.included(base)
5
- Rszr::Lib.delegate(base)
6
- Rszr::Lib.delegate(base.singleton_class)
7
- base.include(Lock)
8
- base.extend(Lock)
9
- end
10
-
11
- protected
12
-
13
- def handle
14
- @handle
15
- end
16
-
17
- def ptr
18
- @handle.ptr
19
- end
20
-
21
- private
22
-
23
- def assert_valid_keys(hsh, *valid_keys)
24
- if unknown_key = (hsh.keys - valid_keys).first
25
- raise ArgumentError.new("Unknown key: #{unknown_key.inspect}. Valid keys are: #{valid_keys.map(&:inspect).join(', ')}")
26
- end
27
- end
28
- end
29
- end
data/lib/rszr/errors.rb DELETED
@@ -1,42 +0,0 @@
1
- module Rszr
2
- class Error < StandardError; end
3
-
4
- class ErrorWithMessage < Error
5
- MESSAGES = [nil,
6
- 'File does not exist',
7
- 'File is a directory',
8
- 'Read permission denied',
9
- 'Unsupported format',
10
- 'Path too long',
11
- 'Non-existant path component',
12
- 'Path component is not a directory',
13
- 'Path outside address space',
14
- 'Too many symbolic links',
15
- 'Out of memory',
16
- 'Out of file descriptors',
17
- 'Write permission denied',
18
- 'Out of disk space',
19
- 'Unknown error']
20
-
21
- attr_reader :ptr
22
-
23
- def initialize
24
- @ptr = Fiddle::Pointer.malloc(Rszr::Lib.sizeof('Imlib_Load_Error'))
25
- end
26
-
27
- def error?
28
- return if ptr.null?
29
- 0 != ptr[0]
30
- end
31
-
32
- def message
33
- MESSAGES[ptr[0]] unless ptr.null?
34
- end
35
- end
36
-
37
-
38
- class FileNotFound < Error; end
39
- class LoadError < ErrorWithMessage; end
40
- class TransformationError < Error; end
41
- class SaveError < ErrorWithMessage; end
42
- end
data/lib/rszr/handle.rb DELETED
@@ -1,37 +0,0 @@
1
- module Rszr
2
- class Handle
3
- attr_reader :ptr, :klass
4
-
5
- def initialize(obj, ptr)
6
- @ptr = ptr
7
- raise ArgumentError, "#{obj.class.inspect} does not define the finalize class method" unless obj.class.respond_to?(:finalize, true)
8
- @klass = obj.class
9
- ObjectSpace.define_finalizer(obj, self)
10
- end
11
-
12
- def replace!(other_ptr)
13
- raise ArgumentError, "Cannot replace pointer with itself" if ptr == other_ptr
14
- finalize!
15
- @ptr = other_ptr
16
- end
17
-
18
- def finalize!(*args)
19
- #puts "Finalizing #{args.inspect} #{ptr.inspect}"
20
- if !ptr.null? && klass
21
- #puts " calling #{args.inspect}"
22
- klass.send(:finalize, ptr)
23
- @ptr = Fiddle::Pointer.new(0)
24
- #else
25
- #puts " skipping #{args.inspect}"
26
- end
27
- end
28
-
29
- def release!
30
- replace! Fiddle::Pointer.new(0)
31
- end
32
-
33
- def call(object_id)
34
- finalize!(object_id)
35
- end
36
- end
37
- end
data/lib/rszr/lib.rb DELETED
@@ -1,73 +0,0 @@
1
- module Rszr
2
-
3
- module Lib
4
- extend Fiddle::Importer
5
-
6
- library, message = case RbConfig::CONFIG['arch']
7
- when /darwin/ then ['libImlib2.dylib', 'brew install imlib2']
8
- when /mswin/, /cygwin/ then ['imlib2.dll', nil]
9
- else
10
- ['libImlib2.so', "yum install imlib2 imlib2-devel\napt-get install libimlib2 libimlib2-dev"]
11
- end
12
-
13
- begin
14
- dlload library
15
- rescue Fiddle::DLError => e
16
- print "\n The Imlib2 library could not be loaded. "
17
- puts "You can install it using\n\n #{message}\n" if message
18
- puts ''
19
- raise e
20
- end
21
-
22
- typealias 'Imlib_Image', 'void *'
23
- typealias 'Imlib_Context', 'void *'
24
- typealias 'enum', 'int'
25
- typealias 'Imlib_Load_Error', 'enum'
26
-
27
- #typedef void *Imlib_Color_Modifier;
28
- #typedef void *Imlib_Updates;
29
- #typedef void *Imlib_Font;
30
- #typedef void *Imlib_Color_Range;
31
- #typedef void *Imlib_Filter;
32
- #typedef struct _imlib_border Imlib_Border;
33
- #typedef struct _imlib_color Imlib_Color;
34
- #typedef void *ImlibPolygon;
35
-
36
- extern 'int imlib_get_cache_size()'
37
- extern 'void imlib_set_cache_size(int)'
38
-
39
- extern 'Imlib_Image imlib_load_image(const char *)'
40
- extern 'Imlib_Image imlib_load_image_without_cache(const char *)'
41
- extern 'Imlib_Image imlib_load_image_with_error_return(const char *, Imlib_Load_Error *)'
42
- extern 'Imlib_Image imlib_create_image(int, int)'
43
- extern 'void imlib_context_set_image(Imlib_Image)'
44
- extern 'int imlib_image_get_width()'
45
- extern 'int imlib_image_get_height()'
46
- extern 'void imlib_context_set_anti_alias(char)'
47
-
48
- # source_x, source_y, source_width, source_height, destination_width, destination_height
49
- extern 'Imlib_Image imlib_create_cropped_scaled_image(int, int, int, int, int, int)'
50
- # x, y, width, height
51
- extern 'Imlib_Image imlib_create_cropped_image(int, int, int, int)'
52
-
53
- extern 'char * imlib_image_format()'
54
- extern 'void imlib_image_set_format(const char *)'
55
- extern 'void imlib_save_image(const char *)'
56
- extern 'void imlib_save_image_with_error_return(const char *, Imlib_Load_Error *)'
57
-
58
- extern 'void imlib_free_image()'
59
- extern 'void imlib_free_image_and_decache()'
60
-
61
- def self.delegate(base)
62
- Lib.methods.grep(/\Aimlib_/).each do |method|
63
- line_no = __LINE__; str = %Q{
64
- def #{method}(*args, &block)
65
- Lib.#{method}(*args, &block)
66
- end
67
- }
68
- base.class_eval(str, __FILE__, line_no)
69
- end
70
- end
71
-
72
- end
73
- end
data/lib/rszr/lock.rb DELETED
@@ -1,23 +0,0 @@
1
- module Rszr
2
- @mutex = Mutex.new
3
-
4
- class << self
5
-
6
- def with_lock(&block) # :nodoc:
7
- mutex.synchronize(&block)
8
- end
9
-
10
- private
11
-
12
- def mutex
13
- @mutex
14
- end
15
- end
16
-
17
- module Lock # :nodoc:
18
- def with_lock(&block)
19
- Rszr.with_lock(&block)
20
- end
21
- end
22
-
23
- end