image_science 1.1.3 → 1.2.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.
- data.tar.gz.sig +0 -0
- data/History.txt +29 -0
- data/Manifest.txt +1 -1
- data/README.txt +5 -5
- data/Rakefile +9 -9
- data/bench.rb +0 -0
- data/{quick_thumb → bin/image_science_thumb} +6 -2
- data/lib/image_science.rb +73 -12
- data/test/test_image_science.rb +43 -9
- metadata +82 -54
- metadata.gz.sig +4 -0
data.tar.gz.sig
ADDED
Binary file
|
data/History.txt
CHANGED
@@ -1,41 +1,70 @@
|
|
1
|
+
== 1.2.0 / 2009-06-23
|
2
|
+
|
3
|
+
* 7 minor enhancements:
|
4
|
+
|
5
|
+
* Moved quick_thumb to bin/image_science_thumb and properly added.
|
6
|
+
* Added -s (square) flag to bin/image_science_thumb
|
7
|
+
* Added autorotating on image load. (choonkeat)
|
8
|
+
* Added ruby_inline to clean globs
|
9
|
+
* Added with_image_from_memory. (sumbach)
|
10
|
+
* Switched to minitest.
|
11
|
+
* Updated rakefile for now hoe capabilities.
|
12
|
+
|
13
|
+
* 3 bug fixes:
|
14
|
+
|
15
|
+
* Check and convert to 24 BPP if save type is jpg. Caused by 32bpp png to jpg.
|
16
|
+
* Fixed 1.9isms
|
17
|
+
* Fixed BMP support. Tweaked whitespace.
|
18
|
+
|
1
19
|
== 1.1.3 / 2007-05-30
|
2
20
|
|
3
21
|
* 2 minor enhancements:
|
22
|
+
|
4
23
|
* Added quick_thumb as an example to look at.
|
5
24
|
* Error handler doesn't raise by default. Raises if $DEBUG==true.
|
6
25
|
|
7
26
|
== 1.1.2 / 2007-04-18
|
8
27
|
|
9
28
|
* 2 bug fixes:
|
29
|
+
|
10
30
|
* reports bad height/width values for resize
|
11
31
|
* explicitly removes ICC color profiles from PNGs (bug in freeimage).
|
12
32
|
|
13
33
|
== 1.1.1 / 2007-03-08
|
14
34
|
|
15
35
|
* 5 minor enhancements:
|
36
|
+
|
16
37
|
* Added error handler that raises with information about what went wrong.
|
17
38
|
* thumbnail is now pure ruby, everything now uses resize.
|
18
39
|
* Produces cleaner JPEG files, with a small cost to file size/speed.
|
19
40
|
* resize now uses Catmull-Rom spline filter for better quality.
|
20
41
|
* resize copies existing ICC Profile to thumbnail, producing better color.
|
21
42
|
* ICC Profile NOT copied for PNG as it seems to be buggy.
|
43
|
+
|
22
44
|
* 1 bug fix:
|
45
|
+
|
23
46
|
* Fixed rdoc
|
24
47
|
|
25
48
|
== 1.1.0 / 2007-01-05
|
26
49
|
|
27
50
|
* 3 major enhancements:
|
51
|
+
|
28
52
|
* Added resize(width, height)
|
29
53
|
* Added save(path)
|
30
54
|
* All thumbnail and resize methods yield instead of saving directly.
|
55
|
+
|
31
56
|
* 1 minor enhancement:
|
57
|
+
|
32
58
|
* Will now try to use FreeImage from ports if /opt/local exists.
|
59
|
+
|
33
60
|
* 2 bug fixes:
|
61
|
+
|
34
62
|
* Fixed the linker issue on PPC.
|
35
63
|
* Rakefile will now clean the image files created by bench.rb
|
36
64
|
|
37
65
|
== 1.0.0 / 2006-12-01
|
38
66
|
|
39
67
|
* 1 major enhancement
|
68
|
+
|
40
69
|
* Birthday!
|
41
70
|
|
data/Manifest.txt
CHANGED
data/README.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
ImageScience
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
= ImageScience
|
2
|
+
|
3
|
+
* http://seattlerb.rubyforge.org/ImageScience.html
|
4
|
+
* http://rubyforge.org/projects/seattlerb
|
5
5
|
|
6
6
|
== DESCRIPTION:
|
7
7
|
|
@@ -44,7 +44,7 @@ For more information including build steps, see http://seattlerb.rubyforge.org/
|
|
44
44
|
|
45
45
|
(The MIT License)
|
46
46
|
|
47
|
-
Copyright (c) 2006-
|
47
|
+
Copyright (c) 2006-2009 Ryan Davis, Seattle.rb
|
48
48
|
|
49
49
|
Permission is hereby granted, free of charge, to any person obtaining
|
50
50
|
a copy of this software and associated documentation files (the
|
data/Rakefile
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'hoe'
|
5
|
-
require './lib/image_science.rb'
|
6
5
|
|
7
|
-
Hoe.
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
6
|
+
Hoe.plugin :seattlerb
|
7
|
+
Hoe.plugin :inline
|
8
|
+
|
9
|
+
Hoe.spec 'image_science' do
|
10
|
+
developer 'Ryan Davis', 'ryand-ruby@zenspider.com'
|
11
|
+
|
12
|
+
self.rubyforge_name = 'seattlerb'
|
13
|
+
|
14
|
+
clean_globs << 'blah*png' << 'images/*_thumb.*'
|
15
15
|
end
|
16
16
|
|
17
17
|
# vim: syntax=Ruby
|
data/bench.rb
CHANGED
File without changes
|
@@ -1,4 +1,6 @@
|
|
1
|
-
#!/usr/local/bin/ruby -
|
1
|
+
#!/usr/local/bin/ruby -ws
|
2
|
+
|
3
|
+
$s ||= false
|
2
4
|
|
3
5
|
abort "#{File.basename $0} max_length files..." unless ARGV.size > 1
|
4
6
|
|
@@ -7,11 +9,13 @@ require 'image_science'
|
|
7
9
|
|
8
10
|
max_length = ARGV.shift.to_i
|
9
11
|
|
12
|
+
msg = $s ? :cropped_thumbnail : :thumbnail
|
13
|
+
|
10
14
|
ARGV.each do |file|
|
11
15
|
begin
|
12
16
|
result = ImageScience.with_image file do |img|
|
13
17
|
begin
|
14
|
-
img.
|
18
|
+
img.send(msg, max_length) do |thumb|
|
15
19
|
# add _thumb and switch from gif to png. Really. gif just sucks.
|
16
20
|
out = file.sub(/(\.[^\.]+)$/, '_thumb\1').sub(/gif$/, 'png')
|
17
21
|
thumb.save(out)
|
data/lib/image_science.rb
CHANGED
@@ -11,7 +11,7 @@ require 'inline'
|
|
11
11
|
# http://seattlerb.rubyforge.org/ImageScience.html
|
12
12
|
|
13
13
|
class ImageScience
|
14
|
-
VERSION = '1.
|
14
|
+
VERSION = '1.2.0'
|
15
15
|
|
16
16
|
##
|
17
17
|
# The top-level image loader opens +path+ and then yields the image.
|
@@ -19,6 +19,12 @@ class ImageScience
|
|
19
19
|
def self.with_image(path) # :yields: image
|
20
20
|
end
|
21
21
|
|
22
|
+
##
|
23
|
+
# The top-level image loader, opens an image from the string +data+ and then yields the image.
|
24
|
+
|
25
|
+
def self.with_image_from_memory(data) # :yields: image
|
26
|
+
end
|
27
|
+
|
22
28
|
##
|
23
29
|
# Crops an image to +left+, +top+, +right+, and +bottom+ and then
|
24
30
|
# yields the new image.
|
@@ -107,8 +113,9 @@ class ImageScience
|
|
107
113
|
|
108
114
|
builder.prefix <<-"END"
|
109
115
|
VALUE wrap_and_yield(FIBITMAP *image, VALUE self, FREE_IMAGE_FORMAT fif) {
|
110
|
-
|
111
|
-
VALUE
|
116
|
+
unsigned int self_is_class = rb_type(self) == T_CLASS;
|
117
|
+
VALUE klass = self_is_class ? self : CLASS_OF(self);
|
118
|
+
VALUE type = self_is_class ? INT2FIX(fif) : rb_iv_get(self, "@file_type");
|
112
119
|
VALUE obj = Data_Wrap_Struct(klass, NULL, NULL, image);
|
113
120
|
rb_iv_set(obj, "@file_type", type);
|
114
121
|
return rb_ensure(rb_yield, obj, unload, obj);
|
@@ -120,8 +127,8 @@ class ImageScience
|
|
120
127
|
FREE_IMAGE_FORMAT fif = FIX2INT(rb_iv_get(self, "@file_type"));
|
121
128
|
if (fif != FIF_PNG && FreeImage_FIFSupportsICCProfiles(fif)) {
|
122
129
|
FIICCPROFILE *profile = FreeImage_GetICCProfile(from);
|
123
|
-
if (profile && profile->data) {
|
124
|
-
FreeImage_CreateICCProfile(to, profile->data, profile->size);
|
130
|
+
if (profile && profile->data) {
|
131
|
+
FreeImage_CreateICCProfile(to, profile->data, profile->size);
|
125
132
|
}
|
126
133
|
}
|
127
134
|
}
|
@@ -129,7 +136,6 @@ class ImageScience
|
|
129
136
|
|
130
137
|
builder.prefix <<-"END"
|
131
138
|
void FreeImageErrorHandler(FREE_IMAGE_FORMAT fif, const char *message) {
|
132
|
-
if (! RTEST(ruby_debug)) return;
|
133
139
|
rb_raise(rb_eRuntimeError,
|
134
140
|
"FreeImage exception for type %s: %s",
|
135
141
|
(fif == FIF_UNKNOWN) ? "???" : FreeImage_GetFormatFromFIF(fif),
|
@@ -141,15 +147,31 @@ class ImageScience
|
|
141
147
|
|
142
148
|
builder.c_singleton <<-"END"
|
143
149
|
VALUE with_image(char * input) {
|
144
|
-
FREE_IMAGE_FORMAT fif = FIF_UNKNOWN;
|
150
|
+
FREE_IMAGE_FORMAT fif = FIF_UNKNOWN;
|
145
151
|
|
146
|
-
fif = FreeImage_GetFileType(input, 0);
|
147
|
-
if (fif == FIF_UNKNOWN) fif = FreeImage_GetFIFFromFilename(input);
|
148
|
-
if ((fif != FIF_UNKNOWN) && FreeImage_FIFSupportsReading(fif)) {
|
152
|
+
fif = FreeImage_GetFileType(input, 0);
|
153
|
+
if (fif == FIF_UNKNOWN) fif = FreeImage_GetFIFFromFilename(input);
|
154
|
+
if ((fif != FIF_UNKNOWN) && FreeImage_FIFSupportsReading(fif)) {
|
149
155
|
FIBITMAP *bitmap;
|
150
156
|
VALUE result = Qnil;
|
151
157
|
int flags = fif == FIF_JPEG ? JPEG_ACCURATE : 0;
|
152
158
|
if (bitmap = FreeImage_Load(fif, input, flags)) {
|
159
|
+
FITAG *tagValue = NULL;
|
160
|
+
FreeImage_GetMetadata(FIMD_EXIF_MAIN, bitmap, "Orientation", &tagValue);
|
161
|
+
switch (tagValue == NULL ? 0 : *((short *) FreeImage_GetTagValue(tagValue))) {
|
162
|
+
case 6:
|
163
|
+
bitmap = FreeImage_RotateClassic(bitmap, 270);
|
164
|
+
break;
|
165
|
+
case 3:
|
166
|
+
bitmap = FreeImage_RotateClassic(bitmap, 180);
|
167
|
+
break;
|
168
|
+
case 8:
|
169
|
+
bitmap = FreeImage_RotateClassic(bitmap, 90);
|
170
|
+
break;
|
171
|
+
default:
|
172
|
+
break;
|
173
|
+
}
|
174
|
+
|
153
175
|
result = wrap_and_yield(bitmap, self, fif);
|
154
176
|
}
|
155
177
|
return result;
|
@@ -158,6 +180,36 @@ class ImageScience
|
|
158
180
|
}
|
159
181
|
END
|
160
182
|
|
183
|
+
builder.c_singleton <<-"END"
|
184
|
+
VALUE with_image_from_memory(VALUE image_data) {
|
185
|
+
FREE_IMAGE_FORMAT fif = FIF_UNKNOWN;
|
186
|
+
|
187
|
+
Check_Type(image_data, T_STRING);
|
188
|
+
BYTE *image_data_ptr = (BYTE*)RSTRING_PTR(image_data);
|
189
|
+
DWORD image_data_length = RSTRING_LEN(image_data);
|
190
|
+
FIMEMORY *stream = FreeImage_OpenMemory(image_data_ptr, image_data_length);
|
191
|
+
|
192
|
+
if (NULL == stream) {
|
193
|
+
rb_raise(rb_eTypeError, "Unable to open image_data");
|
194
|
+
}
|
195
|
+
|
196
|
+
fif = FreeImage_GetFileTypeFromMemory(stream, 0);
|
197
|
+
if ((fif == FIF_UNKNOWN) || !FreeImage_FIFSupportsReading(fif)) {
|
198
|
+
rb_raise(rb_eTypeError, "Unknown file format");
|
199
|
+
}
|
200
|
+
|
201
|
+
FIBITMAP *bitmap = NULL;
|
202
|
+
VALUE result = Qnil;
|
203
|
+
int flags = fif == FIF_JPEG ? JPEG_ACCURATE : 0;
|
204
|
+
bitmap = FreeImage_LoadFromMemory(fif, stream, flags);
|
205
|
+
FreeImage_CloseMemory(stream);
|
206
|
+
if (bitmap) {
|
207
|
+
result = wrap_and_yield(bitmap, self, fif);
|
208
|
+
}
|
209
|
+
return result;
|
210
|
+
}
|
211
|
+
END
|
212
|
+
|
161
213
|
builder.c <<-"END"
|
162
214
|
VALUE with_crop(int l, int t, int r, int b) {
|
163
215
|
FIBITMAP *copy;
|
@@ -206,11 +258,20 @@ class ImageScience
|
|
206
258
|
VALUE save(char * output) {
|
207
259
|
FREE_IMAGE_FORMAT fif = FreeImage_GetFIFFromFilename(output);
|
208
260
|
if (fif == FIF_UNKNOWN) fif = FIX2INT(rb_iv_get(self, "@file_type"));
|
209
|
-
if ((fif != FIF_UNKNOWN) && FreeImage_FIFSupportsWriting(fif)) {
|
261
|
+
if ((fif != FIF_UNKNOWN) && FreeImage_FIFSupportsWriting(fif)) {
|
210
262
|
GET_BITMAP(bitmap);
|
211
263
|
int flags = fif == FIF_JPEG ? JPEG_QUALITYSUPERB : 0;
|
264
|
+
BOOL result = 0, unload = 0;
|
265
|
+
|
212
266
|
if (fif == FIF_PNG) FreeImage_DestroyICCProfile(bitmap);
|
213
|
-
|
267
|
+
if (fif == FIF_JPEG && FreeImage_GetBPP(bitmap) != 24)
|
268
|
+
bitmap = FreeImage_ConvertTo24Bits(bitmap), unload = 1; // sue me
|
269
|
+
|
270
|
+
result = FreeImage_Save(fif, bitmap, output, flags);
|
271
|
+
|
272
|
+
if (unload) FreeImage_Unload(bitmap);
|
273
|
+
|
274
|
+
return result ? Qtrue : Qfalse;
|
214
275
|
}
|
215
276
|
rb_raise(rb_eTypeError, "Unknown file format");
|
216
277
|
}
|
data/test/test_image_science.rb
CHANGED
@@ -1,10 +1,17 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require '
|
1
|
+
dir = File.expand_path "~/.ruby_inline"
|
2
|
+
if test ?d, dir then
|
3
|
+
require 'fileutils'
|
4
|
+
puts "nuking #{dir}"
|
5
|
+
# force removal, Windoze is bitching at me, something to hunt later...
|
6
|
+
FileUtils.rm_r dir, :force => true
|
7
|
+
end
|
4
8
|
|
5
|
-
|
6
|
-
|
9
|
+
require 'rubygems'
|
10
|
+
require 'minitest/unit'
|
11
|
+
require 'minitest/autorun' if $0 == __FILE__
|
12
|
+
require 'image_science'
|
7
13
|
|
14
|
+
class TestImageScience < MiniTest::Unit::TestCase
|
8
15
|
def setup
|
9
16
|
@path = 'test/pix.png'
|
10
17
|
@tmppath = 'test/pix-tmp.png'
|
@@ -46,6 +53,33 @@ class TestImageScience < Test::Unit::TestCase
|
|
46
53
|
end
|
47
54
|
end
|
48
55
|
|
56
|
+
def test_class_with_image_from_memory
|
57
|
+
data = File.new(@path).binmode.read
|
58
|
+
|
59
|
+
ImageScience.with_image_from_memory data do |img|
|
60
|
+
assert_kind_of ImageScience, img
|
61
|
+
assert_equal @h, img.height
|
62
|
+
assert_equal @w, img.width
|
63
|
+
assert img.save(@tmppath)
|
64
|
+
end
|
65
|
+
|
66
|
+
assert File.exists?(@tmppath)
|
67
|
+
|
68
|
+
ImageScience.with_image @tmppath do |img|
|
69
|
+
assert_kind_of ImageScience, img
|
70
|
+
assert_equal @h, img.height
|
71
|
+
assert_equal @w, img.width
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_class_with_image_from_memory_empty_string
|
76
|
+
assert_raises TypeError do
|
77
|
+
ImageScience.with_image_from_memory "" do |img|
|
78
|
+
flunk
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
49
83
|
def test_resize
|
50
84
|
ImageScience.with_image @path do |img|
|
51
85
|
img.resize(25, 25) do |thumb|
|
@@ -87,7 +121,7 @@ class TestImageScience < Test::Unit::TestCase
|
|
87
121
|
end
|
88
122
|
end
|
89
123
|
|
90
|
-
|
124
|
+
refute File.exists?(@tmppath)
|
91
125
|
|
92
126
|
assert_raises ArgumentError do
|
93
127
|
ImageScience.with_image @path do |img|
|
@@ -97,7 +131,7 @@ class TestImageScience < Test::Unit::TestCase
|
|
97
131
|
end
|
98
132
|
end
|
99
133
|
|
100
|
-
|
134
|
+
refute File.exists?(@tmppath)
|
101
135
|
end
|
102
136
|
|
103
137
|
def test_resize_negative
|
@@ -109,7 +143,7 @@ class TestImageScience < Test::Unit::TestCase
|
|
109
143
|
end
|
110
144
|
end
|
111
145
|
|
112
|
-
|
146
|
+
refute File.exists?(@tmppath)
|
113
147
|
|
114
148
|
assert_raises ArgumentError do
|
115
149
|
ImageScience.with_image @path do |img|
|
@@ -119,6 +153,6 @@ class TestImageScience < Test::Unit::TestCase
|
|
119
153
|
end
|
120
154
|
end
|
121
155
|
|
122
|
-
|
156
|
+
refute File.exists?(@tmppath)
|
123
157
|
end
|
124
158
|
end
|
metadata
CHANGED
@@ -1,74 +1,102 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.4
|
3
|
-
specification_version: 1
|
4
2
|
name: image_science
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.
|
7
|
-
date: 2007-05-30 00:00:00 -04:00
|
8
|
-
summary: ImageScience is a clean and happy Ruby library that generates thumbnails -- and kicks the living crap out of RMagick.
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: ryand-ruby@zenspider.com
|
12
|
-
homepage: http://seattlerb.rubyforge.org/ImageScience.html
|
13
|
-
rubyforge_project: seattlerb
|
14
|
-
description: ImageScience is a clean and happy Ruby library that generates thumbnails -- and kicks the living crap out of RMagick. Oh, and it doesn't leak memory like a sieve. :) For more information including build steps, see http://seattlerb.rubyforge.org/
|
15
|
-
autorequire:
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 1.2.0
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- Ryan Davis
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDPjCCAiagAwIBAgIBADANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
|
14
|
+
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
+
GRYDY29tMB4XDTA5MDMwNjE4NTMxNVoXDTEwMDMwNjE4NTMxNVowRTETMBEGA1UE
|
16
|
+
AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
|
17
|
+
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
|
18
|
+
b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
|
19
|
+
taCPaLmfYIaFcHHCSY4hYDJijRQkLxPeB3xbOfzfLoBDbjvx5JxgJxUjmGa7xhcT
|
20
|
+
oOvjtt5P8+GSK9zLzxQP0gVLS/D0FmoE44XuDr3iQkVS2ujU5zZL84mMNqNB1znh
|
21
|
+
GiadM9GHRaDiaxuX0cIUBj19T01mVE2iymf9I6bEsiayK/n6QujtyCbTWsAS9Rqt
|
22
|
+
qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
|
23
|
+
gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
24
|
+
HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBBQUAA4IB
|
25
|
+
AQAY59gYvDxqSqgC92nAP9P8dnGgfZgLxP237xS6XxFGJSghdz/nI6pusfCWKM8m
|
26
|
+
vzjjH2wUMSSf3tNudQ3rCGLf2epkcU13/rguI88wO6MrE0wi4ZqLQX+eZQFskJb/
|
27
|
+
w6x9W1ur8eR01s397LSMexySDBrJOh34cm2AlfKr/jokKCTwcM0OvVZnAutaovC0
|
28
|
+
l1SVZ0ecg88bsWHA0Yhh7NFxK1utWoIhtB6AFC/+trM0FQEB/jZkIS8SaNzn96Rl
|
29
|
+
n0sZEf77FLf5peR8TP/PtmIg7Cyqz23sLM4mCOoTGIy5OcZ8TdyiyINUHtb5ej/T
|
30
|
+
FBHgymkyj/AOSqKRIpXPhjC6
|
31
|
+
-----END CERTIFICATE-----
|
32
|
+
|
33
|
+
date: 2009-06-23 00:00:00 -07:00
|
34
|
+
default_executable:
|
35
|
+
dependencies:
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: hoe
|
38
|
+
type: :development
|
39
|
+
version_requirement:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: 2.3.0
|
45
|
+
version:
|
46
|
+
description: |-
|
47
|
+
ImageScience is a clean and happy Ruby library that generates
|
48
|
+
thumbnails -- and kicks the living crap out of RMagick. Oh, and it
|
49
|
+
doesn't leak memory like a sieve. :)
|
50
|
+
|
51
|
+
For more information including build steps, see http://seattlerb.rubyforge.org/
|
52
|
+
email:
|
53
|
+
- ryand-ruby@zenspider.com
|
54
|
+
executables:
|
55
|
+
- image_science_thumb
|
56
|
+
extensions: []
|
57
|
+
|
58
|
+
extra_rdoc_files:
|
59
|
+
- History.txt
|
60
|
+
- Manifest.txt
|
61
|
+
- README.txt
|
31
62
|
files:
|
32
63
|
- History.txt
|
33
64
|
- Manifest.txt
|
34
65
|
- README.txt
|
35
66
|
- Rakefile
|
36
67
|
- bench.rb
|
68
|
+
- bin/image_science_thumb
|
37
69
|
- lib/image_science.rb
|
38
|
-
- quick_thumb
|
39
70
|
- test/pix.png
|
40
71
|
- test/test_image_science.rb
|
41
|
-
|
42
|
-
|
72
|
+
has_rdoc: true
|
73
|
+
homepage: http://seattlerb.rubyforge.org/ImageScience.html
|
74
|
+
licenses: []
|
75
|
+
|
76
|
+
post_install_message:
|
43
77
|
rdoc_options:
|
44
78
|
- --main
|
45
79
|
- README.txt
|
46
|
-
|
47
|
-
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
80
|
+
require_paths:
|
81
|
+
- lib
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: "0"
|
87
|
+
version:
|
88
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: "0"
|
93
|
+
version:
|
54
94
|
requirements: []
|
55
95
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: 0.0.0
|
65
|
-
version:
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
|
-
name: hoe
|
68
|
-
version_requirement:
|
69
|
-
version_requirements: !ruby/object:Gem::Version::Requirement
|
70
|
-
requirements:
|
71
|
-
- - ">="
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
version: 1.2.1
|
74
|
-
version:
|
96
|
+
rubyforge_project: seattlerb
|
97
|
+
rubygems_version: 1.3.4
|
98
|
+
signing_key:
|
99
|
+
specification_version: 3
|
100
|
+
summary: ImageScience is a clean and happy Ruby library that generates thumbnails -- and kicks the living crap out of RMagick
|
101
|
+
test_files:
|
102
|
+
- test/test_image_science.rb
|
metadata.gz.sig
ADDED