Как сохранить строку base64 как изображение с помощью рубина

Принятие его на самом деле является символьной ссылкой,

$ rm -d symlink

Это должно понять его, но так как это не может мы включать скрытый код, который был предназначен для другого случая, который больше не существует, но, оказывается, делает правильную вещь здесь.

48
задан Ricky 21 July 2009 в 07:02
поделиться

2 ответа

При записи двоичных данных в файл, например, в случае с изображением, использование IO # put опасно, и его лучше избегать. Вы должны писать в двоичном режиме, что в основном неактуально для платформ, работающих только с LF, таких как UNIX или OS X, но обязательно для CRLF-платформ, таких как Windows. IO # Put также добавляет новую строку в конец файла, который является недопустимым.

Лучший подход - указать правильный флаг при вызове open:

File.open('shipping_label.gif', 'wb') do |f|
  f.write(Base64.decode64(base_64_encoded_data))
end

Например, см. Комментарий на странице документации IO # open :

http://apidock.com/ruby/IO/open/class

92
ответ дан 7 November 2019 в 12:16
поделиться

Если вам нужно записать его в изображение, используйте imagemagick через гем rmagick.

http://rmagick.rubyforge.org/

1
ответ дан 7 November 2019 в 12:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: