我正在尝试使用 RMagick 将获取的图像从 JPG 转换为 PNG,调整其大小,然后将其存储在 S3 上:
thumb = Magick::Image.read("artist.jpg").first
thumb.write("artist.png")
thumb.crop_resized!(120, 120, Magick::CenterGravity)
AWS::S3::S3Object.store("image.png", thumb.to_blob, AWS_BUCKET, :content_type => 'image/png', :access => :public_read)
图像确实保存为 png,但是当我在预览中打开它时,文档类型仍然显示为“JPEG 图像”。事实上,图像甚至无法在 Photoshop 中打开,除非我将扩展名改回“.jpg”。我错过了什么吗?
最佳答案
尝试明确设置格式:
thumb = Magick::Image.read("artist.jpg").first
thumb.format = "PNG"
thumb.write("artist.png")
thumb.crop_resized!(120, 120, Magick::CenterGravity)
AWS::S3::S3Object.store("image.png", thumb.to_blob, AWS_BUCKET, :content_type => 'image/png', :access => :public_read)
关于ruby-on-rails - 使用 RMagick 将 JPG 转为 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6419388/