2011-06-21 2 views
4

Я пытаюсь преобразовать сгружен изображение из JPG в PNG с помощью RMagick, изменить его, а затем сохранить его на S3:JPG в PNG с помощью RMagick

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, но когда Я открываю его в Preview, тип документа все еще говорит «JPEG-изображение». Фактически, изображение даже не будет открываться в Photoshop, если я не изменю расширение на «.jpg». Я что-то упускаю?

ответ

10

Постарайся явно установить формат:

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) 
0

Для меня, делая thumb.format = "PNG" не работает, однако делать thumb.format('png') работает. Скорее всего, из-за изменений за последние несколько лет.

thumb = Magick::Image.read("artist.jpg").first 
thumb.format("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) 

Надеюсь, что это поможет.

Смежные вопросы