quick_magick 0.7.2 → 0.7.3
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.
Potentially problematic release.
This version of quick_magick might be problematic. Click here for more details.
- data/Manifest +2 -1
- data/Rakefile +2 -1
- data/lib/quick_magick.rb +20 -1
- data/lib/quick_magick/image.rb +16 -63
- data/quick_magick.gemspec +5 -5
- metadata +15 -7
data/Manifest
CHANGED
data/Rakefile
CHANGED
@@ -2,8 +2,9 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
require 'echoe'
|
4
4
|
|
5
|
-
Echoe.new('quick_magick', '0.7.
|
5
|
+
Echoe.new('quick_magick', '0.7.3') do |p|
|
6
6
|
p.description = "QuickMagick allows you to access ImageMagick command line functions using Ruby interface."
|
7
|
+
p.summary = "A gem build by BadrIT to access ImageMagick command line functions easily and quickly"
|
7
8
|
p.url = "http://quickmagick.rubyforge.org/"
|
8
9
|
p.author = "Ahmed ElDawy"
|
9
10
|
p.email = "ahmed.eldawy@badrit.com"
|
data/lib/quick_magick.rb
CHANGED
@@ -150,12 +150,31 @@ module QuickMagick
|
|
150
150
|
|
151
151
|
alias hsl_color hsla_color
|
152
152
|
|
153
|
-
# Escapes possible special chracters in command line
|
153
|
+
# Escapes possible special chracters in command line
|
154
|
+
# by surrounding it with double quotes
|
154
155
|
def escape_commandline(str)
|
155
156
|
str =~ /^(\w|\s|\.)*$/ ? str : "\"#{str}\""
|
156
157
|
end
|
157
158
|
|
158
159
|
alias c escape_commandline
|
160
|
+
|
161
|
+
# Execute a command line and returns its results when it suceeds
|
162
|
+
# When the command fails, it throws QuickMagick::QuickMagickError
|
163
|
+
def exec3(command)
|
164
|
+
error_file = Tempfile.new('error')
|
165
|
+
error_filepath = error_file.path
|
166
|
+
error_file.close
|
167
|
+
result = `#{command} 2>"#{error_filepath}"`
|
168
|
+
unless $?.success?
|
169
|
+
error_message = <<-ERROR
|
170
|
+
Error executing command: command
|
171
|
+
Result is: #{result}
|
172
|
+
Error is: #{File.read(error_filepath)}
|
173
|
+
ERROR
|
174
|
+
raise QuickMagick::QuickMagickError, error_message
|
175
|
+
end
|
176
|
+
result
|
177
|
+
end
|
159
178
|
end
|
160
179
|
end
|
161
180
|
|
data/lib/quick_magick/image.rb
CHANGED
@@ -62,26 +62,14 @@ module QuickMagick
|
|
62
62
|
|
63
63
|
# returns info for an image using <code>identify</code> command
|
64
64
|
def identify(filename)
|
65
|
-
|
66
|
-
result = `identify #{filename} 2>'#{error_file.path}'`
|
67
|
-
unless $?.success?
|
68
|
-
error_message = <<-ERROR
|
69
|
-
Error executing command: identify #{filename}
|
70
|
-
Result is: #{result}
|
71
|
-
Error is: #{error_file.read}
|
72
|
-
ERROR
|
73
|
-
raise QuickMagick::QuickMagickError, error_message
|
74
|
-
end
|
75
|
-
result
|
76
|
-
ensure
|
77
|
-
error_file.close
|
65
|
+
QuickMagick.exec3 "identify #{QuickMagick.c filename}"
|
78
66
|
end
|
79
67
|
|
80
68
|
end
|
81
69
|
|
82
70
|
# append the given option, value pair to the settings of the current image
|
83
71
|
def append_to_settings(arg, value=nil)
|
84
|
-
@arguments <<
|
72
|
+
@arguments << "-#{arg} #{QuickMagick.c value} "
|
85
73
|
@last_is_draw = false
|
86
74
|
self
|
87
75
|
end
|
@@ -110,7 +98,7 @@ module QuickMagick
|
|
110
98
|
if @last_is_draw && is_draw
|
111
99
|
@arguments.insert(@arguments.rindex('"'), " #{value}")
|
112
100
|
else
|
113
|
-
@arguments << %Q<-#{arg} #{QuickMagick
|
101
|
+
@arguments << %Q<-#{arg} #{QuickMagick.c value} >
|
114
102
|
end
|
115
103
|
@last_is_draw = is_draw
|
116
104
|
self
|
@@ -222,7 +210,7 @@ module QuickMagick
|
|
222
210
|
|
223
211
|
# The command line so far that will be used to convert or save the image
|
224
212
|
def command_line
|
225
|
-
%Q< "(" #{@arguments} #{QuickMagick
|
213
|
+
%Q< "(" #{@arguments} #{QuickMagick.c(image_filename + (@pseudo_image ? "" : "[#{@index}]"))} ")" >
|
226
214
|
end
|
227
215
|
|
228
216
|
# An information line about the image obtained using 'identify' command line
|
@@ -377,25 +365,13 @@ module QuickMagick
|
|
377
365
|
|
378
366
|
# saves the current image to the given filename
|
379
367
|
def save(output_filename)
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
end
|
388
|
-
return result
|
389
|
-
else
|
390
|
-
error_message = <<-ERROR
|
391
|
-
Error executing command: convert #{command_line} "#{output_filename}"
|
392
|
-
Result is: #{result}
|
393
|
-
Error is: #{error_file.read}
|
394
|
-
ERROR
|
395
|
-
raise QuickMagick::QuickMagickError, error_message
|
396
|
-
end
|
397
|
-
ensure
|
398
|
-
error_file.close
|
368
|
+
result = QuickMagick.exec3 "convert #{command_line} #{QuickMagick.c output_filename}"
|
369
|
+
if @pseudo_image
|
370
|
+
# since it's been saved, convert it to normal image (not pseudo)
|
371
|
+
initialize(output_filename)
|
372
|
+
revert!
|
373
|
+
end
|
374
|
+
return result
|
399
375
|
end
|
400
376
|
|
401
377
|
alias write save
|
@@ -404,22 +380,10 @@ module QuickMagick
|
|
404
380
|
# saves the current image overwriting the original image file
|
405
381
|
def save!
|
406
382
|
raise QuickMagick::QuickMagickError, "Cannot mogrify a pseudo image" if @pseudo_image
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
revert!
|
412
|
-
return result
|
413
|
-
else
|
414
|
-
error_message = <<-ERRORMSG
|
415
|
-
Error executing command: mogrify #{command_line}
|
416
|
-
Result is: #{result}
|
417
|
-
Error is: #{error_file.read}
|
418
|
-
ERRORMSG
|
419
|
-
raise QuickMagick::QuickMagickError, error_message
|
420
|
-
end
|
421
|
-
ensure
|
422
|
-
error_file.close if error_file
|
383
|
+
result = QuickMagick.exec3 "mogrify #{command_line}"
|
384
|
+
# remove all operations to avoid duplicate operations
|
385
|
+
revert!
|
386
|
+
return result
|
423
387
|
end
|
424
388
|
|
425
389
|
alias write! save!
|
@@ -481,20 +445,9 @@ module QuickMagick
|
|
481
445
|
# WARNING: This is done through command line which is very slow.
|
482
446
|
# It is not recommended at all to use this method for image processing for example.
|
483
447
|
def get_pixel(x, y)
|
484
|
-
|
485
|
-
result = `identify -verbose -crop #{QuickMagick::geometry(1,1,x,y)} #{QuickMagick::c(image_filename)}[#{@index}] 2>'#{error_file.path}'`
|
486
|
-
unless $?.success?
|
487
|
-
error_message = <<-ERROR
|
488
|
-
Error executing command: identify #{image_filename}
|
489
|
-
Result is: #{result}
|
490
|
-
Error is: #{error_file.read}
|
491
|
-
ERROR
|
492
|
-
raise QuickMagick::QuickMagickError, error_message
|
493
|
-
end
|
448
|
+
result = QuickMagick.exec3("identify -verbose -crop #{QuickMagick::geometry(1,1,x,y)} #{QuickMagick.c image_filename}[#{@index}]")
|
494
449
|
result =~ /Histogram:\s*\d+:\s*\(\s*(\d+),\s*(\d+),\s*(\d+)\)/
|
495
450
|
return [$1.to_i, $2.to_i, $3.to_i]
|
496
|
-
ensure
|
497
|
-
error_file.close
|
498
451
|
end
|
499
452
|
|
500
453
|
# displays the current image as animated image
|
data/quick_magick.gemspec
CHANGED
@@ -2,21 +2,21 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{quick_magick}
|
5
|
-
s.version = "0.7.
|
5
|
+
s.version = "0.7.3"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Ahmed ElDawy"]
|
9
|
-
s.date = %q{2010-
|
9
|
+
s.date = %q{2010-04-26}
|
10
10
|
s.description = %q{QuickMagick allows you to access ImageMagick command line functions using Ruby interface.}
|
11
11
|
s.email = %q{ahmed.eldawy@badrit.com}
|
12
12
|
s.extra_rdoc_files = ["README.rdoc", "lib/quick_magick.rb", "lib/quick_magick/image.rb", "lib/quick_magick/image_list.rb"]
|
13
|
-
s.files = ["Manifest", "README.rdoc", "Rakefile", "lib/quick_magick.rb", "lib/quick_magick/image.rb", "lib/quick_magick/image_list.rb", "test/9.gif", "test/badfile.xxx", "test/image_list_test.rb", "test/image_test.rb", "test/multipage.tif", "test/test_magick.rb", "test/warnings.tiff"
|
13
|
+
s.files = ["Manifest", "README.rdoc", "Rakefile", "lib/quick_magick.rb", "lib/quick_magick/image.rb", "lib/quick_magick/image_list.rb", "quick_magick.gemspec", "test/9.gif", "test/badfile.xxx", "test/image_list_test.rb", "test/image_test.rb", "test/multipage.tif", "test/test_magick.rb", "test/warnings.tiff"]
|
14
14
|
s.homepage = %q{http://quickmagick.rubyforge.org/}
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Quick_magick", "--main", "README.rdoc"]
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
s.rubyforge_project = %q{quickmagick}
|
18
|
-
s.rubygems_version = %q{1.3.
|
19
|
-
s.summary = %q{
|
18
|
+
s.rubygems_version = %q{1.3.6}
|
19
|
+
s.summary = %q{A gem build by BadrIT to access ImageMagick command line functions easily and quickly}
|
20
20
|
s.test_files = ["test/image_test.rb", "test/image_list_test.rb", "test/test_magick.rb"]
|
21
21
|
|
22
22
|
if s.respond_to? :specification_version then
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quick_magick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 7
|
8
|
+
- 3
|
9
|
+
version: 0.7.3
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Ahmed ElDawy
|
@@ -9,7 +14,7 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-
|
17
|
+
date: 2010-04-26 00:00:00 +02:00
|
13
18
|
default_executable:
|
14
19
|
dependencies: []
|
15
20
|
|
@@ -31,6 +36,7 @@ files:
|
|
31
36
|
- lib/quick_magick.rb
|
32
37
|
- lib/quick_magick/image.rb
|
33
38
|
- lib/quick_magick/image_list.rb
|
39
|
+
- quick_magick.gemspec
|
34
40
|
- test/9.gif
|
35
41
|
- test/badfile.xxx
|
36
42
|
- test/image_list_test.rb
|
@@ -38,7 +44,6 @@ files:
|
|
38
44
|
- test/multipage.tif
|
39
45
|
- test/test_magick.rb
|
40
46
|
- test/warnings.tiff
|
41
|
-
- quick_magick.gemspec
|
42
47
|
has_rdoc: true
|
43
48
|
homepage: http://quickmagick.rubyforge.org/
|
44
49
|
licenses: []
|
@@ -57,21 +62,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
57
62
|
requirements:
|
58
63
|
- - ">="
|
59
64
|
- !ruby/object:Gem::Version
|
65
|
+
segments:
|
66
|
+
- 0
|
60
67
|
version: "0"
|
61
|
-
version:
|
62
68
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
69
|
requirements:
|
64
70
|
- - ">="
|
65
71
|
- !ruby/object:Gem::Version
|
72
|
+
segments:
|
73
|
+
- 1
|
74
|
+
- 2
|
66
75
|
version: "1.2"
|
67
|
-
version:
|
68
76
|
requirements: []
|
69
77
|
|
70
78
|
rubyforge_project: quickmagick
|
71
|
-
rubygems_version: 1.3.
|
79
|
+
rubygems_version: 1.3.6
|
72
80
|
signing_key:
|
73
81
|
specification_version: 3
|
74
|
-
summary:
|
82
|
+
summary: A gem build by BadrIT to access ImageMagick command line functions easily and quickly
|
75
83
|
test_files:
|
76
84
|
- test/image_test.rb
|
77
85
|
- test/image_list_test.rb
|