在暂存时,我在通过carrierwave和minimagick上传和调整图像大小时面临以下错误.在当地一切正常.
carrierwave(0.9.0)mini_magick(3.7.0)
irb(main):003:0> PicturePost.create(remote_content_url: 'http://www.imagpress.com/img/slider/slider_1.jpg')
NoMethodError: undefined method `size' for nil:NilClass
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick.rb:24:in `choose_processor'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick.rb:64:in `mogrify?'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:360:in `run_command'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:171:in `valid?'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:140:in `create'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:48:in `read'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:111:in `block in open'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:110:in `open'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:110:in `open'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/processing/mini_magick.rb:260:in `manipulate!'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/processing/mini_magick.rb:176:in `resize_to_fill'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/uploader/processing.rb:85:in `block in process!'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/uploader/processing.rb:81:in `each'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/uploader/processing.rb:81:in `process!'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/uploader/callbacks.rb:18:in `block in with_callbacks'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/uploader/callbacks.rb:18:in `each'
9 levels...
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/uploader/download.rb:65:in `download!'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/mount.rb:353:in `remote_url='
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/mount.rb:203:in `remote_content_url='
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/orm/activerecord.rb:44:in `remote_content_url='
from …
Run Code Online (Sandbox Code Playgroud) 当我在OSX上运行rails应用程序并尝试上传图像时出现此错误.
我有一个"产品"模型,我正在使用Mini_Magick和CarrierWave上传产品的图像.当我在我的ubuntu的笔记本电脑上创建一个产品时,它工作正常,但是当我在我的macbook上执行此操作时,它会抛出错误:
图像无法使用MiniMagick进行操作,也许它不是图像?原始错误:
未安装ImageMagick/GraphicsMagick
我已完成"捆绑安装"命令,一切正常......你知道可能是什么问题吗?
我有一个使用Imagemagick的应用程序,但我不得不重建我的环境,现在当我尝试上传一个头像(这就是我使用Imagemagick的原因)时,它在我尝试添加图像时不断给我以下错误.
Avatar Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: ImageMagick/GraphicsMagick is not installed
Run Code Online (Sandbox Code Playgroud)
我将它安装在包含我的应用程序的文件夹中,但似乎应用程序无法识别安装.有没有办法让应用程序识别minimagick或我是否在错误的地方安装它或我完全关闭.
-UPDATE-
我卸载了minimgick并重新安装,但仍然得到相同的错误,虽然它显示它已安装.这是我的版本......
-imagemagick-6.9.1-6
-ruby 2.2.1p85(2015-02-26修订版49769)[x86_64-darwin14]
-Rails 4.0.10
- 在mac上运行
我有一段时间让这个工作,而且仍然是.我会理解它的核心.我正在关注Ryan Bates教程,使用Jcrop和Carrierwave进行裁剪工作.我选择使用MiniMagick,因为即使在我的机器上重新安装ImageMagick和RMagick后,我也会收到一个错误,导致我本地计算机上的rails服务器死机.无论如何切换到MiniMagick修复了我.所以到目前为止,一切都非常好.我生成了不同大小的图像,并且它们已成功上传.但是一旦我尝试裁剪,我就会收到此错误:
undefined method `crop!' for #<MiniMagick::CommandBuilder:0x000001052e4608>
Run Code Online (Sandbox Code Playgroud)
这让我感到困惑,因为我使用的代码与Bates完全相同:
def crop
if model.crop_x.present?
resize_to_limit(700, 700)
manipulate! do |img|
x = model.crop_x.to_i
y = model.crop_y.to_i
w = model.crop_w.to_i
h = model.crop_h.to_i
img.crop!(x, y, w, h)
end
end
end
Run Code Online (Sandbox Code Playgroud)
无论如何,这种作物方法失败了.所以我想,这是一个ImageMagick命令...所以我看了ImageMagick doco,我找不到爆炸的裁剪方法,所以我没试过,然后错误转向:
No such file or directory - /var/folders/dF/dFNM2+Y7FVScn4+OxVHKOU+++TI/-Tmp-/mini_magick20111207-34409-1tnaa07.jpg
Run Code Online (Sandbox Code Playgroud)
无论如何,有些东西对我来说没什么意义,任何帮助都会受到赞赏!谢谢阅读!
我正在将我的应用程序升级到Ruby 1.9上的Rails 3.2.我不得不放弃attachment_fu
.Carrierwave似乎是明显的替代品.在这个阶段,我将文件上传到文件系统(还没有云文件).
我在Lion,XCode 4.3.2,安装了命令行工具.运行:
$ brew doctor
# Your system is raring to brew.
Run Code Online (Sandbox Code Playgroud)
我可以在此配置中上传和调整图像大小:
我可以在新配置中上传图片:
(后跟$ bundle update
)但调整大小使用mini_magick
返回此错误消息:
"File Failed to manipulate with MiniMagick, maybe it is not an image Original Error: MiniMagick::Invalid", where File is the carrierwave uploader.
Run Code Online (Sandbox Code Playgroud)
FileUploader包含:
include CarrierWave::MiniMagick
def store_dir .. end # the shipped default
process :resize_to_limit => [500, 600]
Run Code Online (Sandbox Code Playgroud)
我的附件类(带mount_uploader :file, FileUploader
)是的父Portrait
,ReferenceLetter …
我需要用MiniMagick转换圆形图像中的方形图像.
我知道有一种方法用ImageMagick
:
convert -size 300x300 xc:transparent -fill "image.png" -draw "circle 240,90 290,90" -crop 100x100+190+40 +repage circle1.png
Run Code Online (Sandbox Code Playgroud)
我试过翻译:
img.combine_options do |c|
c.draw "circle 240,90 290,90"
c.crop "100x100+190+40"
c.repage.+
end
Run Code Online (Sandbox Code Playgroud)
我得到这个东西,一个黑色圆圈,我的大鼻子作为背景图片:
如果有人知道如何正确翻译...请!!
我正在使用:
- carrierwave 0.6.0
- rails 3.2.1
- mini_magick 3.4
- ruby 1.9.2p290
Run Code Online (Sandbox Code Playgroud)
在图片上传过程中,我想调整上传图片的大小:
(image_uploader.rb)
process :resize_to_fit => [200, 200]
Run Code Online (Sandbox Code Playgroud)
但图片上传后我遇到了一个错误:
1 error prohibited this organization from being saved:
Image image Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: MiniMagick::Invalid
Run Code Online (Sandbox Code Playgroud)
PS.如果我没有调整大小,图像上传工作正常.
PS2.我试着添加config/environment.rb:
require 'rubygems'
require "mini_magick"
Run Code Online (Sandbox Code Playgroud)
但没有成功(仍然没有工作 - 顺便说一下.当使用mini_magick作为宝石时是否需要?)
我一直在尝试为ruby 2安装watir gem.我完全按照watir书籍安装说明但是一旦watir安装到了mini_magick gem就会出现这个错误
ERROR: While executing gem ... (Errno::EINVAL)
Invalid argument - C:/Ruby200/lib/ruby/gems/2.0.0/gems/mini_magick-3.6.0/tes
t/files/special! "chars'.gif
有谁知道怎么解决这个问题?我注意到nokogiri有点奇怪,因为无法从ASCII转换为ITF-8.也许这与它有关.谢谢你们
我在 Heroku 上的 Rails 应用程序上收到此错误:
\nNameError: uninitialized constant ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick\n/app/vendor/bundle/ruby/3.0.0/gems/activestorage-6.1.3/lib/active_storage/analyzer/image_analyzer.rb:46:in `rescue in read_image'\n
Run Code Online (Sandbox Code Playgroud)\n它发生在由 Sidekiq 生成的作业中,ActiveStorage::AnalyzeJob
并且每当我尝试将图像上传到我的 AWS 存储(图像未到达我的存储桶)时似乎就会触发。
奇怪的是,我staging
在 Heroku 上有一个应用程序的重复版本,它使用相同的配置,并且它不会触发这些错误(图像确实从暂存到达我的存储桶)。
该应用程序的两个版本都使用相同的 gem 和构建包。
\n两个版本都安装了 ImageMagick 6.9.10-23 和 mini_magick 4.11.0。
\n如果我引用提到的类,两个版本都会在控制台显示相同的错误,例如:
$ heroku run rails c -a my-staging-app\nRunning rails c on \xe2\xac\xa2 my-staging-app... up, run.9122 (Free)\nLoading staging environment (Rails 6.1.3)\nirb(main):001:0* ActiveStorage::Analyzer::ImageAnalyzer\n=> ActiveStorage::Analyzer::ImageAnalyzer\nirb(main):002:0> ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick\nTraceback (most recent call last):\n 1: from (irb):2:in `<main>'\nNameError (uninitialized constant ActiveStorage::Analyzer::ImageAnalyzer::MiniMagick)\nDid you mean? MiniMime\n
Run Code Online (Sandbox Code Playgroud)\n但我不知道为什么登台应用程序在上传到 AWS 时没有遇到错误。
\n …ruby-on-rails heroku amazon-web-services ruby-on-rails-3 minimagick
在我的Rails应用程序中,我刚删除Rmagick
并添加Minimagick
.Rmagick太重了.Rmagick的情况很好但是在minimagick中我得到以下错误:
MiniMagick::Invalid: `identify /tmp/mini_magick20150518-10411-1qz42x8` failed with error:
identify.im6: no decode delegate for this image format `/tmp/mini_magick20150518-10411-1qz42x8' @ error/constitute.c/ReadImage/544.
from /home/pubudu/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/mini_magick-4.2.4/lib/mini_magick/image.rb:200:in `rescue in validate!'
Run Code Online (Sandbox Code Playgroud)
文件网址:
[8] pry(main)> file.file.file
=> "/home/pubudu/Projects/istockseller/public/store/photos/thpubs/istockseller-13642162-wallhaven-61582.jpg"
Run Code Online (Sandbox Code Playgroud)
我试图运行的代码:
MiniMagick::Image.read(file.file.file).first
Run Code Online (Sandbox Code Playgroud) minimagick ×10
carrierwave ×5
ruby ×3
imagemagick ×2
heroku ×1
install ×1
macos ×1
mongoid ×1
nokogiri ×1
ruby-1.9 ×1
watir ×1