miniMagick识别rails_admin应用程序中的错误:无法使用MiniMagick进行操作,也许它不是图像?

时间:2016-10-27 12:26:38

标签: ruby-on-rails imagemagick carrierwave rails-admin minimagick

我正在使用carrierwavemini_magick宝石来使用rails_admin内的图片。当我上传图片时,它会因此错误而失败:

Failed to manipulate with MiniMagick, maybe it is not an image? 
Original Error: `identify C:/Users/Zeke/AppData/Local/Temp/mini_magick20161027-21132-xdongz.png` failed with error: 
    identify.exe: RegistryKeyLookupFailed `CoderModulesPath' @ error/module.c/GetMagickModulePath/662. 
    identify.exe: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/501.

当我在uploader.rb

中不包含以下内容时,这种情况不会发生
  # Process files as they are uploaded:
  process resize_to_fit: [800, 600]

  # Create different versions of your uploaded files:
  version :thumb do
    process resize_to_fill: [40, 30]
  end

我需要缩略图,我该怎么做?

  

以下是我的确定:

  • 已安装ImageMagick 并且正在运行。我能够将png转换为jpg和jpg转换为png,识别图像......
  • identify C:/Users/Zeke/AppData/Local/Temp/mini_magick20161027-21132-xdongz.pngcmd 中运行时成功执行(没有admin priv,如果这很重要)

enter image description here

  • identify -list format提供了一个 huuuuge 列表,几乎包含了我能想到的每种图像格式。是的,它包括JPGJPEGPNG以及我需要的一切。

enter image description here

  • convert -version 确实包含 jpeg png 代表

enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我测试的identifyconvert工作正常,但他们实际上并未被rails使用,而imagemagick使用了translation missing {1}}这是非常陈旧的,我首先提出了这个en.yml错误,我通过在cmd

中添加几行来解决这个错误
  

值得注意的是 系统环境变量 可以被 设置路径 覆盖,只能持续很长时间ImageMagick的实例

让rails使用新版本的if ($This_Address == '') { $new_This_Address = ""; } else { $new_This_Address = "&#13;&#10 this time: $This_Address"; } ?> <html> <head> <meta name="viewport" content="width=device-width"> <link rel="stylesheet" type="text/css" href="mystyle.css"> </head> <body> <form name="editTask" action="task_show_full.php" method="POST"> <input type="hidden" name="T_ID" value="<?php echo $T_ID; ?>"/> <input type="hidden" name="Cust_ID" value="<?php echo $Cust_ID; ?>"/> <input type="submit" class="taskbutton" style="width:350px" name="showTask" value="<?php echo "ID: ", $T_ID, ", ", "customer-ID: ", $Cust_ID, ", ", "User: ", $User; ?>&#13;&#10 <?php echo $newFlat, $House, " ", $Street, ", ", $Town, ", ", $Postcode; echo $new_This_Address; ?>&#13;&#10 <?php echo $Display_Task_Date, " ", $Task; ?>&#13;&#10 <?php echo $Price_Today, " "; ?>"/> </form> <?php 解决了这个问题。 积分:Mark Setchell