quick_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.
Potentially problematic release.
This version of quick_magick might be problematic. Click here for more details.
- data/Rakefile +1 -1
- data/lib/quick_magick.rb +28 -4
- data/lib/quick_magick/image.rb +5 -4
- data/quick_magick.gemspec +2 -2
- metadata +2 -2
data/Rakefile
CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
require 'echoe'
|
4
4
|
|
5
|
-
Echoe.new('quick_magick', '0.
|
5
|
+
Echoe.new('quick_magick', '0.4.0') do |p|
|
6
6
|
p.description = "QuickMagick allows you to access ImageMagick command line functions using Ruby interface."
|
7
7
|
p.url = "http://quickmagick.rubyforge.org/"
|
8
8
|
p.author = "Ahmed ElDawy"
|
data/lib/quick_magick.rb
CHANGED
@@ -1,9 +1,19 @@
|
|
1
|
+
# Define quick magick error
|
2
|
+
module QuickMagick
|
3
|
+
class QuickMagickError < RuntimeError; end
|
4
|
+
end
|
5
|
+
|
1
6
|
# check if ImageMagick is installed
|
2
|
-
|
3
|
-
|
7
|
+
begin
|
8
|
+
x = `identify --version 2>&1`
|
9
|
+
raise(QuickMagick::QuickMagickError, "ImageMagick not installed") unless x.index('ImageMagick')
|
10
|
+
rescue Errno::ENOENT
|
11
|
+
# For Windows machines
|
12
|
+
raise(QuickMagick::QuickMagickError, "ImageMagick not installed")
|
13
|
+
end
|
4
14
|
|
5
15
|
module QuickMagick
|
6
|
-
|
16
|
+
# Different geometry flags
|
7
17
|
PercentGeometry = "%"
|
8
18
|
AspectGeometry = "!"
|
9
19
|
LessGeometry = "<"
|
@@ -11,22 +21,36 @@ module QuickMagick
|
|
11
21
|
AreaGeometry = "@"
|
12
22
|
MinimumGeometry = "^"
|
13
23
|
|
24
|
+
# Command for solid color
|
14
25
|
SolidColor = "xc"
|
26
|
+
# Command for linear gradient
|
15
27
|
LinearGradient = "gradient"
|
28
|
+
# Command for radial gradient
|
16
29
|
RadialGradient = "radial-gradient"
|
17
30
|
|
31
|
+
# Different possible patterns
|
18
32
|
Patterns = %w{bricks checkboard circles crosshatch crosshatch30 crosshatch45 fishscales} +
|
19
33
|
(0..20).collect {|level| "gray#{level}" } +
|
20
34
|
%w{hexagons horizontal horizontalsaw hs_bdiagonal hs_cross hs_diagcross hs_fdiagonal hs_horizontal
|
21
35
|
hs_vertical left30 left45 leftshingle octagons right30 right45 rightshingle smallfishscales
|
22
36
|
vertical verticalbricks verticalleftshingle verticalrightshingle verticalsaw}
|
23
37
|
|
24
|
-
#
|
38
|
+
# Generate a random string of specified length.
|
39
|
+
# Used to generate random names for temp files
|
25
40
|
def self.random_string(length=10)
|
26
41
|
@@CHARS ||= ("a".."z").to_a + ("1".."9").to_a
|
27
42
|
Array.new(length, '').collect{@@CHARS[rand(@@CHARS.size)]}.join
|
28
43
|
end
|
29
44
|
end
|
30
45
|
|
46
|
+
# For backward compatibility with ruby < 1.8.7
|
47
|
+
unless "".respond_to? :start_with?
|
48
|
+
class String
|
49
|
+
def start_with?(x)
|
50
|
+
self.index(x) == 0
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
31
55
|
require 'quick_magick/image'
|
32
56
|
require 'quick_magick/image_list'
|
data/lib/quick_magick/image.rb
CHANGED
@@ -8,6 +8,7 @@ module QuickMagick
|
|
8
8
|
# create an array of images from the given blob data
|
9
9
|
def from_blob(blob, &proc)
|
10
10
|
file = Tempfile.new(QuickMagick::random_string)
|
11
|
+
file.binmode
|
11
12
|
file.write(blob)
|
12
13
|
file.close
|
13
14
|
self.read(file.path, &proc)
|
@@ -28,7 +29,7 @@ module QuickMagick
|
|
28
29
|
images << Image.new("#{filename}[#{i.to_s}]", info_line)
|
29
30
|
end
|
30
31
|
end
|
31
|
-
images.collect!(&proc)
|
32
|
+
images.collect!(&proc) if block_given?
|
32
33
|
return images
|
33
34
|
end
|
34
35
|
|
@@ -124,7 +125,7 @@ module QuickMagick
|
|
124
125
|
|
125
126
|
# fills a rectangle with a solid color
|
126
127
|
def floodfill(width, height=nil, x=nil, y=nil, flag=nil, color=nil)
|
127
|
-
|
128
|
+
append_to_operators "floodfill", QuickMagick::Image.retrieve_geometry(width, height, x, y, flag), color
|
128
129
|
end
|
129
130
|
|
130
131
|
# methods that are called with (=)
|
@@ -363,10 +364,10 @@ module QuickMagick
|
|
363
364
|
if $?.success?
|
364
365
|
return result
|
365
366
|
else
|
366
|
-
error_message = <<-
|
367
|
+
error_message = <<-ERRORMSG
|
367
368
|
Error executing command: mogrify #{command_line}
|
368
369
|
Result is: #{result}
|
369
|
-
|
370
|
+
ERRORMSG
|
370
371
|
raise QuickMagick::QuickMagickError, error_message
|
371
372
|
end
|
372
373
|
end
|
data/quick_magick.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{quick_magick}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.4.0"
|
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{2009-
|
9
|
+
s.date = %q{2009-08-05}
|
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", "lib/quick_magick/image.rb", "lib/quick_magick/image_list.rb", "lib/quick_magick.rb"]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quick_magick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ahmed ElDawy
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-08-05 00:00:00 +03:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|