Skip to content

Commit 5a253ef

Browse files
authored
Merge pull request #105 from naitoh/support_mini_magick_v5_and_use_marcel
mini_magick v5.0 supoort and marcel gem added
2 parents c7d24a1 + db7bec4 commit 5a253ef

File tree

7 files changed

+27
-9
lines changed

7 files changed

+27
-9
lines changed

Gemfile.rails5_mini_magick

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2011-2023 NAITOH Jun
1+
# Copyright (c) 2011-2025 NAITOH Jun
22
# Released under the MIT license
33
# http://www.opensource.org/licenses/MIT
44

@@ -8,5 +8,6 @@ source 'https://rubygems.org'
88
gemspec
99

1010
gem "actionpack", "~> 5.2.8.1"
11-
gem "mini_magick", "< 5.0"
11+
gem "mini_magick"
12+
gem 'marcel'
1213
gem 'loofah', '<= 2.20.0' if RUBY_VERSION < '2.5'

Gemfile.rails6_mini_magick

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ gemspec
99

1010
gem "actionpack", "~> 6.1.7.2"
1111
gem "concurrent-ruby", '1.3.4'
12-
gem "mini_magick", "< 5.0"
12+
gem "mini_magick"
13+
gem 'marcel'

Gemfile.rails7_mini_magick

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ source 'https://rubygems.org'
88
gemspec
99

1010
gem "actionpack", "~> 7.2.2.1"
11-
gem "mini_magick", "< 5.0"
11+
gem "mini_magick"
12+
gem 'marcel'

Gemfile.rails8_mini_magick

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ source 'https://rubygems.org'
88
gemspec
99

1010
gem "actionpack", "~> 8.0.2"
11-
gem "mini_magick", "< 5.0"
12-
11+
gem "mini_magick"
12+
gem 'marcel'

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ RBPDF is distributed via RubyGems, and can be installed the usual way that you i
2929

3030
If you are using image file, it is recommended you install:
3131
```
32-
gem install mini_magick
32+
gem install mini_magick marcel
3333
```
3434
or
3535
```

lib/core/mini_magick.rb

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,18 +51,27 @@ def getimagesize(filename)
5151
return false
5252
end
5353

54+
unless Object.const_defined?(:Marcel)
55+
Error('No Marcel: Non-PNG file is not supported.: ' + filename);
56+
return false
57+
end
58+
5459
image = MiniMagick::Image.open(filename)
5560

5661
width = image.width
5762
height = image.height
5863

59-
out['mime'] = image.mime_type
64+
mime_type = File.open filename do |file|
65+
::Marcel::MimeType.for file
66+
end
67+
68+
out['mime'] = mime_type
6069
out[0] = width
6170
out[1] = height
6271

6372
# These are actually meant to return integer values But I couldn't seem to find anything saying what those values are.
6473
# So for now they return strings. The only place that uses this at the moment is the parsejpeg method, so I've changed that too.
65-
case image.mime_type
74+
case mime_type
6675
when "image/gif"
6776
out[2] = "GIF"
6877
when "image/jpeg"

lib/rbpdf.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@
5959
# MiniMagick is not available
6060
end
6161

62+
begin
63+
require 'marcel' unless Object.const_defined?(:Marcel)
64+
rescue LoadError
65+
# Marcel is not available
66+
end
67+
6268
unless Object.const_defined?(:MiniMagick)
6369
begin
6470
# RMagick 2.14.0

0 commit comments

Comments
 (0)