CGI&ImageMagickで動的生成したJPEG画像がIE8で表示されない


またまたIEやってくれました・・。

FireFox ・・ 問題無し
Chrome ・・ 問題無し
Safari ・・ 問題無し
IE ・・ ×××
ってパターン多いです。

タイトルのとおりですが、動的生成した画像がIEで表示されません。
解決した後に気付いたのですが、数年前にも同じ問題で悩んでたんだけど、忘れてました。

環境はRuby on RailsでRmagickを使用してます。

原因はシンプルでIEでCMYKのJPEG画像だと表示されないって事です。
なので途中でCMYKの場合はRGBに変換するような処理が必要になります。

file = “sample.jpeg”
image = Magick::ImageList.new(file)

# ************ #
# なんらかの画像処理 #
# ************ #

# CMYK画像の場合RGBに変換する
if image.colorspace == Magick::CMYKColorspace
image.colorspace = Magick::RGBColorspace
image = image.negate
end

send_data(clone.to_blob, :disposition => “inline”, :type => “image/jpeg”)

これで一件落着です。