JPG в PNG с использованием RMagick - PullRequest
4 голосов
/ 21 июня 2011

Я пытаюсь преобразовать извлеченное изображение из JPG в PNG, используя RMagick, изменить его размер и затем сохранить его на 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».Я что-то упустил?

Ответы [ 2 ]

10 голосов
/ 21 июня 2011

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

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)
1 голос
/ 29 сентября 2017

Для меня выполнение 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)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...