Pregunta

Necesito poder convertir rápidamente una imagen (dentro de un controlador Rails) para que la empresa de alojamiento que administra nuestra aplicación pueda probar rápidamente en cualquier momento para garantizar que rmagick no solo se haya instalado correctamente, sino que también se pueda llamar a través de Rails Stiack. ¿Cuál es el código limpio más rápido que puedo usar para hacer esto?

¿Fue útil?

Solución 2

Quería hacer esto para poder acceder fácilmente a él con un navegador web, ya que estoy implementando en servidores administrados, a los que no tengo acceso de shell (para mayor seguridad).

Entonces esto es lo que hice

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 #------

y luego en rmagick.html.erb

<%= image_tag @path %>

Ahora puedo presionar el controlador y, si veo una imagen, sé que rmagic está instalado.

Otros consejos

require 'RMagick'

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

Me conectaría al servidor y probaría su código en script/consola.Esto seguirá pasando por la pila de Rails, pero le permitirá comprobar rápidamente que su código funciona como espera y que RMagick e ImageMagick están instalados correctamente sin tener que implementar nada.

Cuando llegue el momento de escribir su código real, sugeriría poner el código de conversión de imagen dentro de un modelo, para que pueda llamarlo fuera del contexto de un controlador.

Utilice script/consola y llame al código en un modelo o controlador que haga algo como lo siguiente:

require 'RMagick'
include Magick
img = ImageList.new('myfile.jpg')
img.crop(0,0,10,10) # or whatever
img.write('mycroppedfile.jpg')
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top