mojo_magick 0.3.0 → 0.4.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/.gitignore +2 -0
- data/README.md +146 -0
- data/lib/mojo_magick/version.rb +3 -0
- data/lib/mojo_magick.rb +25 -14
- data/mojo_magick.gemspec +21 -0
- data/test/mojo_magick_test.rb +43 -1
- metadata +20 -13
- data/README +0 -112
- data/test/fixtures/tmp/5742.jpg +0 -0
- data/test/fixtures/tmp/not_an_image.jpg +0 -0
- data/test/fixtures/tmp/zero_byte_image.jpg +0 -0
data/.gitignore
ADDED
data/README.md
ADDED
@@ -0,0 +1,146 @@
|
|
1
|
+
MojoMagick
|
2
|
+
==========
|
3
|
+
|
4
|
+
MojoMagick is a "dog simple, do very little" image library. It is basically a couple of stateless
|
5
|
+
module methods that make it somewhat more convenient than calling ImageScience by hand.
|
6
|
+
|
7
|
+
The main reason to use MojoMagick is that you should consolidate your ImageScience calls into
|
8
|
+
one place, so why not do it here? If you improve on this tool, send me the patch.
|
9
|
+
|
10
|
+
This tool came about because I wanted a fast, simple, lightweight, nothing-goes-wrong-with-it-
|
11
|
+
because-it's-too-simple-to-break image tool.
|
12
|
+
|
13
|
+
Examples
|
14
|
+
========
|
15
|
+
|
16
|
+
## Image Resizing
|
17
|
+
|
18
|
+
### Obtain the size of an image (assuming image is "120wx222h")
|
19
|
+
|
20
|
+
dimensions = MojoMagick::get_image_size(test_image)
|
21
|
+
# ==> dimensions now holds a hash: {:height => 120, :width => 222}
|
22
|
+
|
23
|
+
### Resize an image so that it fits within a 100w x 200h bounding box
|
24
|
+
(Note: this will scale an image either up or down to fit these dimensions which may not be what you want.)
|
25
|
+
In this example, we overwrite our image, but if you pass in a different file for the second file name, a new file will be created with the resized dimensions
|
26
|
+
|
27
|
+
MojoMagick::resize('/img/test.jpg', '/img/test.jpg', {:width=>100, :height=>200})
|
28
|
+
|
29
|
+
### Resize an image so that it fills a 100 x 100 bounding box
|
30
|
+
|
31
|
+
After this transformation, your image's short side will be 100px. This will preserve the aspect ratio.
|
32
|
+
|
33
|
+
MojoMagick::resize('/img/infile.jpg', '/img/outfile.jpg', {:width=>100, :height=>100, :fill => true})
|
34
|
+
|
35
|
+
### Resize an image so that it fills and is cropped to a 100 x 100 bounding box
|
36
|
+
|
37
|
+
After this transformation, your image will be 100x100. But it does not distort the images. It crops out of the Center.
|
38
|
+
|
39
|
+
MojoMagick::resize('/img/infile.jpg', '/img/outfile.jpg', {:width=>100, :height=>100, :fill => true, :crop => true})
|
40
|
+
|
41
|
+
### Code sample of how to shrink all jpg's in a folder
|
42
|
+
|
43
|
+
require 'mojo_magick'
|
44
|
+
|
45
|
+
image_folder = '/tmp/img'
|
46
|
+
Dir::glob(File::join(image_folder, '*.jpg')).each do |image|
|
47
|
+
begin
|
48
|
+
# shrink all the images *in place* to no bigger than 60pix x 60pix
|
49
|
+
MojoMagick::shrink(image, image, {:width => 60, :height => 60})
|
50
|
+
puts "Shrunk: #{image}"
|
51
|
+
rescue MojoMagick::MojoFailed => e
|
52
|
+
STDERR.puts "Unable to shrink image '#{image}' - probably an invalid image\n#{e.message}"
|
53
|
+
rescue MojoMagick::MojoMagickException => e
|
54
|
+
STDERR.puts "Unknown exception on image '#{image}'\n#{e.message}"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
## Setting Memory/Resource limits for ImageMagick
|
59
|
+
Be sure you're upgraded to the current release of ImageMagick.
|
60
|
+
|
61
|
+
set limits on disk, area, map and ram usage
|
62
|
+
obtain/print a hash of default limits:
|
63
|
+
|
64
|
+
puts MojoMagick::get_default_limits.inspect
|
65
|
+
|
66
|
+
current\_limits shows same values:
|
67
|
+
|
68
|
+
puts MojoMagick::get_current_limits.inspect
|
69
|
+
|
70
|
+
MojoMagick::set_limits(:area => '32mb', :disk => '0', :memory => '64mb', :map => '32mb')
|
71
|
+
puts MojoMagick::get_current_limits.inspect
|
72
|
+
|
73
|
+
As of ImageMagick 6.6, you also have the ability to set `:threads` and `:time`. Read [ImageMagick docs on limits](http://www.imagemagick.org/script/command-line-options.php#limit) for more info.
|
74
|
+
|
75
|
+
## For more complex operations (thanks to Elliot Nelson for adding this code to the system)
|
76
|
+
|
77
|
+
Two command-line builders, #convert and #mogrify, have been added to simplify
|
78
|
+
complex commands.
|
79
|
+
|
80
|
+
### using #convert
|
81
|
+
|
82
|
+
MojoMagick::convert('source.jpg', 'dest.jpg') do |c|
|
83
|
+
c.crop '250x250+0+0'
|
84
|
+
c.repage!
|
85
|
+
c.strip
|
86
|
+
c.set 'comment', 'my favorite file'
|
87
|
+
end
|
88
|
+
|
89
|
+
# Equivalent to:
|
90
|
+
MojoMagick::raw_command('convert', 'source.jpg -crop 250x250+0+0 +repage -strip -set comment "my favorite file" dest.jpg')
|
91
|
+
|
92
|
+
|
93
|
+
### using #mogrify
|
94
|
+
|
95
|
+
MojoMagick::mogrify('image.jpg') {|i| i.shave '10x10'}
|
96
|
+
|
97
|
+
# Equivalent to:
|
98
|
+
|
99
|
+
MojoMagick::raw_command('mogrify', '-shave 10x10 image.jpg')
|
100
|
+
|
101
|
+
# Example showing some additional options:
|
102
|
+
# assuming binary data that is rgb, 8bit depth and 10x20 pixels, :format => :rgb, :depth => 8, :size => '10x20'OAu
|
103
|
+
|
104
|
+
MojoMagick::convert do |c|
|
105
|
+
c.file 'source.jpg'
|
106
|
+
c.blob my_binary_data, :format => :rgb, :depth => 8, :size => '10x20'
|
107
|
+
c.append
|
108
|
+
c.crop '256x256+0+0'
|
109
|
+
c.repage!
|
110
|
+
c.file 'output.jpg'
|
111
|
+
end
|
112
|
+
|
113
|
+
# Use .file to specify file names, .blob to create and include a tempfile. The
|
114
|
+
# bang (!) can be appended to command names to use the '+' versions
|
115
|
+
# instead of '-' versions.
|
116
|
+
|
117
|
+
### Create a brand new image from data
|
118
|
+
|
119
|
+
binary_data = '1111222233334444'
|
120
|
+
MojoMagick::convert do |c|
|
121
|
+
c.rgba8 binary_data, :format => :rgba, :depth => 8, :size => '2x2'
|
122
|
+
c.file 'output.jpg'
|
123
|
+
end
|
124
|
+
|
125
|
+
Availablility
|
126
|
+
=============
|
127
|
+
|
128
|
+
* [SVN Repo access](http://trac.misuse.org/science/wiki/MojoMagick)
|
129
|
+
* Concact the author or discuss MojoMagick : [misuse.org](http://www.misuse.org/science/2008/01/30/mojomagick-ruby-image-library-for-imagemagick/)
|
130
|
+
|
131
|
+
|
132
|
+
#### Updates by Jon Rogers Aug 2011 (http://github.com/bunnymatic)
|
133
|
+
* added gemspec for building gem with bundler
|
134
|
+
* updated tests for ImageMagick 6.6
|
135
|
+
* added ability to do fill + crop resizing
|
136
|
+
* bumped version to 0.3.0
|
137
|
+
* [new github repo](https://github.com/bunnymatic/mojo_magick)
|
138
|
+
|
139
|
+
|
140
|
+
References
|
141
|
+
==========
|
142
|
+
|
143
|
+
* [ImageMagick](http://www.imagemagick.org/)
|
144
|
+
|
145
|
+
Copyright (c) 2008 Steve Midgley, released under the MIT license
|
146
|
+
Credit to Elliot Nelson for significant code contributions. Thanks Elliot!
|
data/lib/mojo_magick.rb
CHANGED
@@ -52,8 +52,6 @@ require 'tempfile'
|
|
52
52
|
#
|
53
53
|
module MojoMagick
|
54
54
|
|
55
|
-
VERSION = "0.2.0"
|
56
|
-
|
57
55
|
class MojoMagickException < StandardError; end
|
58
56
|
class MojoError < MojoMagickException; end
|
59
57
|
class MojoFailed < MojoMagickException; end
|
@@ -118,8 +116,8 @@ module MojoMagick
|
|
118
116
|
raise MojoMagickError, "Unknown options for method resize: #{options.inspect}"
|
119
117
|
end
|
120
118
|
if !options[:fill].nil? && !options[:crop].nil?
|
119
|
+
extras << "-gravity Center"
|
121
120
|
extras << "-extent #{geometry}"
|
122
|
-
extras << "-gravity center"
|
123
121
|
end
|
124
122
|
retval = raw_command("convert", "\"#{source_file}\" -resize #{geometry}#{scale_options} #{extras.join(' ')} \"#{dest_file}\"")
|
125
123
|
dest_file
|
@@ -154,6 +152,23 @@ module MojoMagick
|
|
154
152
|
raw_command('mogrify', opts.to_s)
|
155
153
|
end
|
156
154
|
|
155
|
+
|
156
|
+
def MojoMagick::tempfile(*opts)
|
157
|
+
begin
|
158
|
+
data = opts[0]
|
159
|
+
rest = opts[1]
|
160
|
+
ext = rest && rest[:format]
|
161
|
+
file = Tempfile.new(["mojo", ext ? '.' + ext.to_s : ''])
|
162
|
+
file.binmode
|
163
|
+
file.write(data)
|
164
|
+
file.path
|
165
|
+
rescue Exception => ex
|
166
|
+
raise
|
167
|
+
end
|
168
|
+
ensure
|
169
|
+
file.close
|
170
|
+
end
|
171
|
+
|
157
172
|
# Option builder used in #convert and #mogrify helpers.
|
158
173
|
class OptBuilder
|
159
174
|
def initialize
|
@@ -180,8 +195,13 @@ module MojoMagick
|
|
180
195
|
alias files file
|
181
196
|
|
182
197
|
# Create a temporary file for the given image and add to command line
|
183
|
-
def blob(
|
184
|
-
|
198
|
+
def blob(*args)
|
199
|
+
data = args[0]
|
200
|
+
opts = args[1] || {}
|
201
|
+
[:format, :depth, :size].each do |opt|
|
202
|
+
self.send(opt, opts[opt].to_s) if opts[opt]
|
203
|
+
end
|
204
|
+
file MojoMagick::tempfile(data, opts)
|
185
205
|
end
|
186
206
|
|
187
207
|
# Generic commands. Arguments will be formatted if necessary
|
@@ -211,15 +231,6 @@ module MojoMagick
|
|
211
231
|
end
|
212
232
|
end
|
213
233
|
end
|
214
|
-
|
215
|
-
def MojoMagick::tempfile(data)
|
216
|
-
file = Tempfile.new("mojo")
|
217
|
-
file.binmode
|
218
|
-
file.write(data)
|
219
|
-
file.path
|
220
|
-
ensure
|
221
|
-
file.close
|
222
|
-
end
|
223
234
|
|
224
235
|
end # MojoMagick
|
225
236
|
|
data/mojo_magick.gemspec
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
$:.push File.expand_path("../lib", __FILE__)
|
2
|
+
require "mojo_magick/version"
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "mojo_magick"
|
6
|
+
s.version = MojoMagick::VERSION
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.authors = ["Steve Midgley", "Elliot Nelson", "Jon Rogers"]
|
9
|
+
s.email = ["public@misuse.org", "j@2rye.com"]
|
10
|
+
s.homepage = "http://github.com/bunnymatic/mojo_magick"
|
11
|
+
s.summary = "mojo_magick-#{MojoMagick::VERSION}"
|
12
|
+
s.description = %q{Simple Ruby stateless module interface to imagemagick.}
|
13
|
+
|
14
|
+
s.rubyforge_project = "mojo_magick"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
s.add_development_dependency('rake')
|
21
|
+
end
|
data/test/mojo_magick_test.rb
CHANGED
@@ -78,7 +78,6 @@ class MojoMagickTest < Test::Unit::TestCase
|
|
78
78
|
assert_equal 1000, new_dimensions[:height]
|
79
79
|
assert_equal 666, new_dimensions[:width]
|
80
80
|
|
81
|
-
|
82
81
|
# test bad images
|
83
82
|
bad_image = File::join(@working_path, 'not_an_image.jpg')
|
84
83
|
zero_image = File::join(@working_path, 'zero_byte_image.jpg')
|
@@ -87,6 +86,26 @@ class MojoMagickTest < Test::Unit::TestCase
|
|
87
86
|
assert_raise(MojoMagick::MojoFailed) {MojoMagick::get_image_size('/file_does_not_exist_here_ok.jpg')}
|
88
87
|
end
|
89
88
|
|
89
|
+
def test_resize_with_fill
|
90
|
+
reset_images
|
91
|
+
test_image = File::join(@working_path, '5742.jpg')
|
92
|
+
orig_image_size = File::size(test_image)
|
93
|
+
MojoMagick::resize(test_image, test_image, {:fill => true, :width => 100, :height => 100})
|
94
|
+
dim = MojoMagick::get_image_size(test_image)
|
95
|
+
assert_equal 100, dim[:width]
|
96
|
+
assert_equal 150, dim[:height]
|
97
|
+
end
|
98
|
+
|
99
|
+
def test_resize_with_fill_and_crop
|
100
|
+
reset_images
|
101
|
+
test_image = File::join(@working_path, '5742.jpg')
|
102
|
+
orig_image_size = File::size(test_image)
|
103
|
+
MojoMagick::resize(test_image, test_image, {:fill => true, :crop => true, :width => 150, :height => 120})
|
104
|
+
dim = MojoMagick::get_image_size(test_image)
|
105
|
+
assert_equal 150, dim[:width]
|
106
|
+
assert_equal 120, dim[:height]
|
107
|
+
end
|
108
|
+
|
90
109
|
def test_resource_limits
|
91
110
|
orig_limits = MojoMagick::get_default_limits
|
92
111
|
assert_equal 7, orig_limits.size
|
@@ -202,6 +221,7 @@ class MojoMagickTest < Test::Unit::TestCase
|
|
202
221
|
File.open(filename, 'rb') do |f|
|
203
222
|
assert_equal f.read, 'binary data'
|
204
223
|
end
|
224
|
+
|
205
225
|
end
|
206
226
|
|
207
227
|
def test_command_helpers
|
@@ -244,5 +264,27 @@ class MojoMagickTest < Test::Unit::TestCase
|
|
244
264
|
retval = MojoMagick::get_image_size(out_image)
|
245
265
|
assert_equal 50, retval[:width]
|
246
266
|
assert_equal 50, retval[:height]
|
267
|
+
|
268
|
+
# RGB8 test
|
269
|
+
bdata = 'aaaaaabbbbbbccc'
|
270
|
+
out = 'out.png'
|
271
|
+
MojoMagick::convert do |c|
|
272
|
+
c.blob bdata, :format => :rgb, :depth => 8, :size => '5x1'
|
273
|
+
c.file out
|
274
|
+
end
|
275
|
+
r = MojoMagick::get_image_size(out)
|
276
|
+
assert r[:height] == 1
|
277
|
+
assert r[:width] == 5
|
278
|
+
|
279
|
+
bdata = '1111222233334444'
|
280
|
+
out = 'out.png'
|
281
|
+
MojoMagick::convert do |c|
|
282
|
+
c.blob bdata, :format => :rgba, :depth => 8, :size => '4x1'
|
283
|
+
c.file out
|
284
|
+
end
|
285
|
+
r = MojoMagick::get_image_size(out)
|
286
|
+
assert r[:height] == 1
|
287
|
+
assert r[:width] == 4
|
288
|
+
|
247
289
|
end
|
248
290
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: mojo_magick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.4.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Steve Midgley
|
@@ -12,9 +12,19 @@ autorequire:
|
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
14
|
|
15
|
-
date:
|
16
|
-
dependencies:
|
17
|
-
|
15
|
+
date: 2012-03-18 00:00:00 Z
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
18
|
+
name: rake
|
19
|
+
prerelease: false
|
20
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
21
|
+
none: false
|
22
|
+
requirements:
|
23
|
+
- - ">="
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: "0"
|
26
|
+
type: :development
|
27
|
+
version_requirements: *id001
|
18
28
|
description: Simple Ruby stateless module interface to imagemagick.
|
19
29
|
email:
|
20
30
|
- public@misuse.org
|
@@ -26,15 +36,15 @@ extensions: []
|
|
26
36
|
extra_rdoc_files: []
|
27
37
|
|
28
38
|
files:
|
29
|
-
-
|
39
|
+
- .gitignore
|
40
|
+
- README.md
|
30
41
|
- init.rb
|
31
42
|
- lib/image_resources.rb
|
32
43
|
- lib/mojo_magick.rb
|
44
|
+
- lib/mojo_magick/version.rb
|
45
|
+
- mojo_magick.gemspec
|
33
46
|
- test/fixtures/5742.jpg
|
34
47
|
- test/fixtures/not_an_image.jpg
|
35
|
-
- test/fixtures/tmp/5742.jpg
|
36
|
-
- test/fixtures/tmp/not_an_image.jpg
|
37
|
-
- test/fixtures/tmp/zero_byte_image.jpg
|
38
48
|
- test/fixtures/zero_byte_image.jpg
|
39
49
|
- test/mojo_magick_test.rb
|
40
50
|
homepage: http://github.com/bunnymatic/mojo_magick
|
@@ -60,15 +70,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
60
70
|
requirements: []
|
61
71
|
|
62
72
|
rubyforge_project: mojo_magick
|
63
|
-
rubygems_version: 1.8.
|
73
|
+
rubygems_version: 1.8.15
|
64
74
|
signing_key:
|
65
75
|
specification_version: 3
|
66
|
-
summary: mojo_magick-0.
|
76
|
+
summary: mojo_magick-0.4.0
|
67
77
|
test_files:
|
68
78
|
- test/fixtures/5742.jpg
|
69
79
|
- test/fixtures/not_an_image.jpg
|
70
|
-
- test/fixtures/tmp/5742.jpg
|
71
|
-
- test/fixtures/tmp/not_an_image.jpg
|
72
|
-
- test/fixtures/tmp/zero_byte_image.jpg
|
73
80
|
- test/fixtures/zero_byte_image.jpg
|
74
81
|
- test/mojo_magick_test.rb
|
data/README
DELETED
@@ -1,112 +0,0 @@
|
|
1
|
-
MojoMagick
|
2
|
-
==========
|
3
|
-
|
4
|
-
MojoMagick is a "dog simple, do very little" image library. It is basically a couple of stateless
|
5
|
-
module methods that make it somewhat more convenient than calling ImageScience by hand.
|
6
|
-
|
7
|
-
The main reason to use MojoMagick is that you should consolidate your ImageScience calls into
|
8
|
-
one place, so why not do it here? If you improve on this tool, send me the patch.
|
9
|
-
|
10
|
-
This tool came about because I wanted a fast, simple, lightweight, nothing-goes-wrong-with-it-
|
11
|
-
because-it's-too-simple-to-break image tool.
|
12
|
-
|
13
|
-
Examples
|
14
|
-
========
|
15
|
-
|
16
|
-
# Obtain the size of an image (assuming image is "120wx222h")
|
17
|
-
dimensions = MojoMagick::get_image_size(test_image)
|
18
|
-
# ==> dimensions now holds a hash: {:height => 120, :width => 222}
|
19
|
-
|
20
|
-
# Resize an image so that it fits within a 100w x 200h bounding box
|
21
|
-
# (Note: this will scale an image either up or down to fit these dimensions
|
22
|
-
# which may not be what you want.)
|
23
|
-
# In this example, we overwrite our image, but if you pass in a different file for the
|
24
|
-
# second file name, a new file will be created with the resized dimensions
|
25
|
-
MojoMagick::resize('/img/test.jpg', '/img/test.jpg', {:width=>100, :height=>200})
|
26
|
-
|
27
|
-
## Code sample of how to shrink all jpg's in a folder
|
28
|
-
{{{
|
29
|
-
require 'mojo_magick'
|
30
|
-
|
31
|
-
image_folder = '/tmp/img'
|
32
|
-
Dir::glob(File::join(image_folder, '*.jpg')).each do |image|
|
33
|
-
begin
|
34
|
-
# shrink all the images *in place* to no bigger than 60pix x 60pix
|
35
|
-
MojoMagick::shrink(image, image, {:width => 60, :height => 60})
|
36
|
-
puts "Shrunk: #{image}"
|
37
|
-
rescue MojoMagick::MojoFailed => e
|
38
|
-
STDERR.puts "Unable to shrink image '#{image}' - probably an invalid image\n#{e.message}"
|
39
|
-
rescue MojoMagick::MojoMagickException => e
|
40
|
-
STDERR.puts "Unknown exception on image '#{image}'\n#{e.message}"
|
41
|
-
end
|
42
|
-
end
|
43
|
-
}}}
|
44
|
-
|
45
|
-
## More Code on setting memory limits for imagemagick
|
46
|
-
# (Be sure you�re upgraded to the current release of ImageMagick.)
|
47
|
-
|
48
|
-
# set limits on disk, area, map and ram usage
|
49
|
-
# obtain/print a hash of default limits:
|
50
|
-
puts MojoMagick::get_default_limits.inspect
|
51
|
-
# current_limits shows same values:
|
52
|
-
puts MojoMagick::get_current_limits.inspect
|
53
|
-
|
54
|
-
MojoMagick::set_limits(:area => '32mb', :disk => '0', :memory => '64mb', :map => '32mb')
|
55
|
-
puts MojoMagick::get_current_limits.inspect
|
56
|
-
|
57
|
-
### More sample code (thanks to Elliot Nelson for adding this code to the system)
|
58
|
-
# Two command-line builders, #convert and #mogrify, have been added to simplify
|
59
|
-
# complex commands. Examples included below.
|
60
|
-
|
61
|
-
# Example #convert usage:
|
62
|
-
|
63
|
-
MojoMagick::convert('source.jpg', 'dest.jpg') do |c|
|
64
|
-
c.crop '250x250+0+0'
|
65
|
-
c.repage!
|
66
|
-
c.strip
|
67
|
-
c.set 'comment', 'my favorite file'
|
68
|
-
end
|
69
|
-
|
70
|
-
# Equivalent to:
|
71
|
-
|
72
|
-
MojoMagick::raw_command('convert', 'source.jpg -crop 250x250+0+0 +repage -strip -set comment "my favorite file" dest.jpg')
|
73
|
-
|
74
|
-
# Example #mogrify usage:
|
75
|
-
|
76
|
-
MojoMagick::mogrify('image.jpg') {|i| i.shave '10x10'}
|
77
|
-
|
78
|
-
# Equivalent to:
|
79
|
-
|
80
|
-
MojoMagick::raw_command('mogrify', '-shave 10x10 image.jpg')
|
81
|
-
|
82
|
-
# Example showing some additional options:
|
83
|
-
|
84
|
-
MojoMagick::convert do |c|
|
85
|
-
c.file 'source.jpg'
|
86
|
-
c.blob my_binary_data
|
87
|
-
c.append
|
88
|
-
c.crop '256x256+0+0'
|
89
|
-
c.repage!
|
90
|
-
c.file 'output.jpg'
|
91
|
-
end
|
92
|
-
|
93
|
-
# Use .file to specify file names, .blob to create and include a tempfile. The
|
94
|
-
# bang (!) can be appended to command names to use the '+' versions
|
95
|
-
# instead of '-' versions.
|
96
|
-
|
97
|
-
Availablility
|
98
|
-
=============
|
99
|
-
SVN Repo access from here: http://trac.misuse.org/science/wiki/MojoMagick
|
100
|
-
Contact author or discuss MojoMagick here: http://www.misuse.org/science/2008/01/30/mojomagick-ruby-image-library-for-imagemagick/
|
101
|
-
|
102
|
-
|
103
|
-
Updates by Jon Rogers (jon@2rye.com)
|
104
|
-
------------------------------------
|
105
|
-
# added gemspec for building gem with bundler
|
106
|
-
# updated tests for ImageMagick 6.6
|
107
|
-
# added ability to do fill + crop resizing
|
108
|
-
# bumped version to 0.3.0
|
109
|
-
|
110
|
-
|
111
|
-
Copyright (c) 2008 Steve Midgley, released under the MIT license
|
112
|
-
Credit to Elliot Nelson for significant code contributions. Thanks Elliot!
|
data/test/fixtures/tmp/5742.jpg
DELETED
Binary file
|
Binary file
|
File without changes
|