我在Windows 8.1上。经过5个小时,我终于在我的rails应用程序中设置了CarrierWave。我必须安装 ImageMagick (运行convert -version返回“Version:ImageMagick 6.9.8-4 Q16 x64 2017-04-25”,所以我知道它已安装)。上传文件按预期工作,一切正常。
下一步是包含mini_magick所以我可以调整大小并制作图像的缩略图版本,因此我从image_uploader.rb文件中取消注释了以下几行:
include CarrierWave::MiniMagick
version :thumb do
process :resize_to_fit => [200, 100]
end
然后我将mini_magick添加到我的gemfile中并确认它在那里(运行bundle install返回“Using mini_magick 4.7.0”)。但是现在,每当我上传文件时,都会收到以下错误:
现在我知道它是一个图像,因为它在我尝试使用MiniMagick进行操作之前使用了相同的文件。 ImageMagick绝对安装。我找不到关于我的问题的单一参考。我做错了什么?
提前谢谢。
编辑:运行convert -version列出代理(内置),如下所示:
代表(内置):bzlib cairo flif freetype jng jp2 jpeg lcms lqr openexr pa ngocairo png ps rsvg tiff webp xml zlib
我没有在该列表中看到jpg。但即使尝试上传.png文件,我也收到同样的错误。
答案 0 :(得分:1)
在几天没做任何事情后,我从头开始重新启动this guide。当我进入不同大小的图像处理阶段时,我从uploader.rb取消注释了以下代码,并添加了指南中随意提到的require语句(我第一次跳过了)。
from abc import ABCMeta
class BaseCrawler(object): # CHANGED BASE CLASS
__metaclass__ = ABCMeta # ADDED
def __init__(self, search_key='', **kwargs):
if type(search_key) == str:
if search_key == '':
search_key = 'Kabe'
self.g_search_key_list = [search_key]
class GoogleCrawler(BaseCrawler):
def __init__(self, search_key='', **kwargs):
# FOLLOWING LINE CHANGED TO SUPPLY NEEDED ARGS TO super()
super(GoogleCrawler, self).__init__(search_key, **kwargs)
# google search specific url parameters
self.search_url_prefix = kwargs.get('search_url_prefix', 'https://www.google.com.sg/search?q=')
self.search_url_postfix = kwargs.get('search_url_postfix','&source=lnms&tbm=isch&sa=X&ei=0eZEVbj3IJG5uATalICQAQ&ved=0CAcQ_AUoAQ&biw=939&bih=591')
# show more options
# options : 'id','class'
self.show_more_find_type = kwargs.get('show_more_find_type', 'id')
self.show_more_find_value = kwargs.get('show_more_find_value', 'smb')
if __name__ == '__main__':
GoogleCrawler('foods')
运行bundle install并继续完成本教程的其余部分,并根据需要调整图像大小。