Como faço para rapidamente fazer algo em Rmagick para testá-lo funcionar

StackOverflow https://stackoverflow.com/questions/70779

  •  09-06-2019
  •  | 
  •  

Pergunta

Eu preciso ser capaz de converter rapidamente uma imagem (dentro de uma trilhos controlador) de modo que a empresa de hospedagem usando o gerenciamento de nossa aplicação pode testar rapidamente a qualquer tempo, para garantir que rmagick não é apenas instalado com êxito, mas pode ser chamado de throgh os trilhos stiack, que é a forma mais rápida código limpo que eu possa usar para fazer isso?

Foi útil?

Solução 2

Eu queria fazer isso para que eu possa batê-lo com um navegador da web, como eu sou deployng para servidores gerenciados, que eu não tenho acesso ao shell para (para maior segurança).

Então é isso que eu fiz

class DiagnosticsController < ApplicationController
  require 'RMagick'

  def rmagick
    images_path = "public/images"
    file_name = "rmagick_generated_thumb.jpg"
    file_path = images_path + "/"+ file_name

    File.delete file_path if File.exists? file_path
    img = Magick::Image.read("lib/sample_images/magic.jpg").first
    thumb = img.scale(0.25)
    @path = file_name
    thumb.write file_path
  end
end #------

e, em seguida, em rmagick.html.erb

<%= image_tag @path %>

Agora eu posso bater o controlador, e se eu ver uma imagem, eu sei rmagic está instalado.

Outras dicas

require 'RMagick'

image = Magick::Image.new(110, 30){ self.background_color = 'white' }
image.write('/tmp/test.jpg')

Eu gostaria de fazer logon para o servidor e experimentar o seu código no script/console.Isso ainda vai percorrer os trilhos da pilha, mas irá permitir que você rapidamente verificar se o código funciona da forma esperada e que RMagick e ImageMagick estão instalados corretamente sem ter que implementar alguma coisa.

Quando chega a hora de escrever o seu código real, eu sugiro colocar a imagem de conversão de código dentro de um modelo, então você pode chamá-lo fora do contexto de um controlador.

Usar o script/console, e chamar o código em um modelo ou um controlador que faz algo parecido com o seguinte:

require 'RMagick'
include Magick
img = ImageList.new('myfile.jpg')
img.crop(0,0,10,10) # or whatever
img.write('mycroppedfile.jpg')
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top