Otra vez liado con RMagick :-(

El RMagick incrementa mis dolores de cabeza cada vez que le uso :frowning:

Os pongo un trozo del código para ver si pueden echarme una ayudita

controlador index

def thumbnails
ima = Magick::ImageList.new( ‘images/’ + params[:id] )

 ima = ima.crop_resized( 250, 75 )

 @response.headers["Content-Type"] = "image/jpeg"
 render_text ima.to_blob

end

#vista
image_tag( ‘/index/thumbnails/’ + @dir1 + “/” + @dir2 )

la imagen no la muestra, pero la url que forma si es correcta
http://localhost:3000/index/thumbnails/dir_unot/dir_2/
imagen_que_no_sale.jpg

Alguna sugerencia???
Gracias

Saludos

Fijate si no tienes que especificarle el tipo de imagen a rmagick
(gif/jpeg) antes de hacer to_blob

Yo he usado el metodo send_data de ApplicationController

ima.format = ‘jpeg’
send_data(ima.to_blob ,
:disposition => ‘inline’,
:type => ‘image/jpeg’)

Espero que esto sea lo que necesitabas

Saludos

P

Gracias, le especificaba el tipo antes con

 @response.headers["Content-Type"] = "image/jpeg"
 render_text ima.to_blob

de todas formas con el metodo send_data que me indicas

ima.format = ‘jpeg’
send_data(ima.to_blob ,
:disposition => ‘inline’,
:type => ‘image/jpeg’)

pasa lo mismo, muestra correctamente la ruta pero no muestra la
imagen :frowning:

Ya esta :smiley:

Cuento un poco lo que ha sucedido por si a alguien le pasa que no se
coma la cabeza

el metodo thumbnails recibía un id formado por la ruta de directorios
donde buscar la imagen que era llamado desde la vista, algo asi
<%= image_tag( ‘/index/thumbnails/’ + @dir_uno + “/” + “imagen.jpg” )
-%>

La ruta y todo esta correcto pero no funciona :frowning: la solución a sido
hacer la llamada al metodo sustituyendo la / por una ,
<%= image_tag( ‘/index/thumbnails/’ + @dir_uno + “,” + “imagen.jpg” )
-%>

y en el metodo thumbnails separar el contenido para formar nuevamente
la url a la imagen
id = params[:id].split(’,’) # url
ima = Magick::ImageList.new( ‘images/’ + id[0] + ‘/’ + id[1] )

Gracias Pedro por indicar las pruebas a realizar.

Saludos.

Preguntas:

En el log no hay nada raro?

Probaste en vez de hacer el render grabar la imagen con otro nombre
despues del crop para ver si tenes la imagen en ima?

Otra prueba: proba lo mismo creando un prueba.rb que contenga el
codigo del metodo y que grabe la imagen con el nuevo tamaño a ver si
funciona.

Guarda con el path images Magick::ImageList.new( ‘images/’ + params[:id]
)
asegurate que estes apuntando al lugar correcto, ya que no recuerdo si
Magick toma RAILS_ROOT/public como root.

No se me ocurre nada mas por ahora.

Saludos y suerte