error RMagick / ImageMagick “ningún delegado de decodificación para este formato de imagen” con Ruby de archivo temporal

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

Pregunta

Estoy teniendo un problema con RMagick / ImageMagick para abrir un archivo subido a través de un formulario de rieles. Creo que esto es debido al hecho de que el comportamiento de los carriles de archivo temporal es eliminar la extensión de archivo. Por lo que he leído, ImageMagick debería preferir utilizar un número mágico en vez de extensión de archivo para detectar el formato de archivo de imagen, pero eso no parece ser el caso en la instalación. Estoy haciendo esto:

img = Magick::Image.read(full_size_image.path)

donde full_size_image es el objeto de archivo temporal devuelto desde el controlador de formulario de carga, lo que crea un error como:

  

ningún delegado de decodificación para este formato de imagen `/ var / carpetas / UI / uIsldaxoHkiXKWYFuTWs4 ++++ TI / -Tmp- / RackMultipart20101031-10144-1hiwlw-0' @ error / constitute.c / readImage / 532

Esto está sucediendo en Mac OS X 10.6 con rieles 2.3.8, 2.13.1 y RMagick ImageMagick 6.6.5-5. He confirmado que ImageMagick puede convertir el archivo He estado usando a prueba a través del formulario de carga con éxito, y que en realidad existe la ruta / archivo tempfile / es legible.

Sospecho que a) algo en la instalacion de algún modo se le impide el uso de un número mágico para detectar el tipo de archivo (?? - ImageMagick conseguir trabajo en Snow Leopard de la fuente fue una aventura en sí) o b) no solo son los casos en que esto no funciona y de alguna manera necesita para hacer preservar la extensión de archivo temporal archivo original.

Yo sé que puedo obtener el nombre del archivo original desde el objeto de archivo temporal, pero no he encontrado una manera de cambiar el nombre del archivo. Supongo que podría hacer algo de kludge donde utilizo un objeto File y de alguna manera crear una copia del archivo temporal con la extensión original en él, pero que apenas se parece indecoroso. Cuál es la forma correcta de resolver este problema?

Gracias por su ayuda.

¿Fue útil?

Solución

Me di cuenta del problema - la variable de entorno DYLD_LIBRARY_PATH se estableció correctamente en mi concha donde estaba probando la versión de línea de comandos de convertir, pero no se estableció correctamente cuando estaba corriendo mi servidor Mestizo. Después de esto me fijo, que comenzó a trabajar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top