smartimage 0.0.3-java → 0.0.4-java

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/CHANGES CHANGED
@@ -1,3 +1,11 @@
1
+ 0.0.4:
2
+
3
+ * Fixed bug in processing alpha channel of JRuby canvas objects when saving
4
+ .jpgs, causing color channel corruption.
5
+
6
+ * Fixed bug in SmartImage.thumbnail_file where images are always saved as .pngs
7
+ regardless of the specified file extension.
8
+
1
9
  0.0.3:
2
10
 
3
11
  * JRuby 1.5.1 compatibility fixes
data/Rakefile CHANGED
@@ -54,25 +54,3 @@ Rake::RDocTask.new do |rdoc|
54
54
  rdoc.rdoc_files.include('README*')
55
55
  rdoc.rdoc_files.include('lib/**/*.rb')
56
56
  end
57
-
58
- namespace :java do
59
- desc 'Munge the Jeweler gemspec into a JRuby compatible one'
60
- task :gemspec => 'rake:gemspec' do
61
- gemspec = File.read('smartimage.gemspec')
62
-
63
- # Remove the last end statement
64
- gemspec.sub!(/end\s*\Z/m, '')
65
-
66
- # Add the Java platform requirement
67
- gemspec << " s.platform = %q{java}\n"
68
-
69
- # Readd the end statement
70
- gemspec << "end\n"
71
-
72
- # Remove RMagic dependencies
73
- gemspec = gemspec.split("\n").reject { |line| line["<rmagick>"] }.join("\n")
74
-
75
- # Write the Java gemspec
76
- File.open("smartimage-java.gemspec", "w") { |file| file << gemspec }
77
- end
78
- end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -76,7 +76,7 @@ class SmartImage
76
76
  :format => File.extname(output_path).sub(/^\./, '')
77
77
  }.merge(options)
78
78
 
79
- data = SmartImage.thumbnail File.read(input_path), options
79
+ data = SmartImage.thumbnail File.read(input_path), opts
80
80
  File.open(output_path, 'w') { |file| file << data }
81
81
  end
82
82
 
@@ -179,7 +179,10 @@ class SmartImage
179
179
  # just there to annoy you and make you wish it had more options.
180
180
  def encode(format, options = {})
181
181
  # Sorry .jpeg lovers, I'm one of you too but the standard is jpg
182
- format = :jpg if format.to_s == 'jpeg'
182
+ format = 'jpg' if format.to_s == 'jpeg'
183
+ format = format.to_s
184
+
185
+ raise ArgumentError, "invalid format: #{format}" unless %w(jpg png gif).include?(format)
183
186
 
184
187
  @canvas.encode format, options
185
188
  end
@@ -10,6 +10,7 @@ class SmartImage
10
10
  java_import java.io.ByteArrayOutputStream
11
11
 
12
12
  def initialize(width, height)
13
+ @width, @height = width, height
13
14
  @canvas = BufferedImage.new width, height, BufferedImage::TYPE_INT_ARGB
14
15
  end
15
16
 
@@ -64,8 +65,19 @@ class SmartImage
64
65
 
65
66
  # Encode the image to the given format
66
67
  def encode(format, options = {})
68
+ case format
69
+ when 'jpg'
70
+ # If we're trying to save an JPEG, we need to convert it to RGB
71
+ canvas = BufferedImage.new @width, @height, BufferedImage::TYPE_INT_RGB
72
+
73
+ graphics = canvas.graphics
74
+ graphics.draw_image @canvas, 0, 0, @width, @height, nil
75
+ else
76
+ canvas = @canvas
77
+ end
78
+
67
79
  output_stream = ByteArrayOutputStream.new
68
- ImageIO.write(@canvas, format.to_s, output_stream)
80
+ ImageIO.write(canvas, format, output_stream)
69
81
  String.from_java_bytes output_stream.to_byte_array
70
82
  end
71
83
  end
metadata CHANGED
@@ -1,12 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smartimage
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 3
9
- version: 0.0.3
4
+ version: 0.0.4
10
5
  platform: java
11
6
  authors:
12
7
  - Tony Arcieri
@@ -14,37 +9,29 @@ autorequire:
14
9
  bindir: bin
15
10
  cert_chain: []
16
11
 
17
- date: 2010-07-01 00:00:00 -06:00
12
+ date: 2010-07-09 00:00:00 -06:00
18
13
  default_executable:
19
14
  dependencies:
20
15
  - !ruby/object:Gem::Dependency
21
16
  name: imagesize
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
24
20
  requirements:
25
21
  - - ">="
26
22
  - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
- - 1
30
- - 1
31
23
  version: 0.1.1
32
- type: :runtime
33
- version_requirements: *id001
24
+ version:
34
25
  - !ruby/object:Gem::Dependency
35
26
  name: rspec
36
- prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
38
30
  requirements:
39
31
  - - ">="
40
32
  - !ruby/object:Gem::Version
41
- segments:
42
- - 1
43
- - 2
44
- - 9
45
33
  version: 1.2.9
46
- type: :development
47
- version_requirements: *id002
34
+ version:
48
35
  description: " SmartImage provides a cross-platform solution for image compositing that works on both MRI and JRuby.\n If using RMagick feels like swatting a fly with a nucler missile, and ImageScience just doesn't get \n you there, SmartImage is hopefully at that sweet spot in the middle\n"
49
36
  email: tony@medioh.com
50
37
  executables: []
@@ -87,20 +74,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
87
74
  requirements:
88
75
  - - ">="
89
76
  - !ruby/object:Gem::Version
90
- segments:
91
- - 0
92
77
  version: "0"
78
+ version:
93
79
  required_rubygems_version: !ruby/object:Gem::Requirement
94
80
  requirements:
95
81
  - - ">="
96
82
  - !ruby/object:Gem::Version
97
- segments:
98
- - 0
99
83
  version: "0"
84
+ version:
100
85
  requirements: []
101
86
 
102
87
  rubyforge_project:
103
- rubygems_version: 1.3.6
88
+ rubygems_version: 1.3.5
104
89
  signing_key:
105
90
  specification_version: 3
106
91
  summary: It's like a Swiss Army Knife for images, but one of those tiny ones you can keep on your keychain