是否可以使用mini_magick或image_science 获取图像的直方图?
我担心mini_magicks使用mogrify不允许这样的信息检索.image_science几乎没有记录,似乎仅限于缩略图缩放和裁剪.
要采取的一种方法是迭代每个像素并在Ruby中提取其值.但这需要有关像素的信息,这也是我在mini_magick中无法达到的.
我可以回退到RMagick或im_magick,但这些要么不那么流行/未知,要么据说性能不好.
当我在rvm中安装rmagick时,我不断收到此错误.
checking for InitializeMagick() in -lMagickCore... no
checking for InitializeMagick() in -lMagick... no
checking for InitializeMagick() in -lMagick++... no
Can't install RMagick 2.13.1. Can't find the ImageMagick library or one of the dependent libraries. Check the mkmf.log file for more detailed information.
Run Code Online (Sandbox Code Playgroud)
这是我目前的设置:
Snow Leopard 10.6.7
XCode 3.2.6
RVM 1.6.1
Ruby Over RVM (ree1.8.7)
Homebrew 0.8
ImageMagick 6.6.9-4 c/o Homebrew
Run Code Online (Sandbox Code Playgroud)
在使用Homebrew安装imagemagick之后,我能够使用系统ruby安装rmagick
rvm system
sudo gem install rmagick
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我知道这已被问过好几次了,但问题是他们带来了rmagick的新版本,现在老版本的方法不适用.
Server - CentOS release 5.6 (Final)
Ruby - ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-linux]
Rails - 2.3.5
Run Code Online (Sandbox Code Playgroud)
我尝试通过这些步骤安装rmagick gem.我执行这些查询时是root用户:
yum install ImageMagick.i386
yum install ImageMagick-c++-devel.i386
gem install rmagick
Run Code Online (Sandbox Code Playgroud)
前2个命令顺利执行,没有任何错误.在gem install rmagick,我收到此错误:
ERROR: Error installing rmagick:
ERROR: Failed to build gem native extension.
/usr/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for gcc... yes
checking for Magick-config... yes
Warning: Found a partial ImageMagick installation. Your operating system likely has some built-in ImageMagick libraries but not all …Run Code Online (Sandbox Code Playgroud) 我正在使用 Mac pro Lion 进行 ImageMagick Q16、RVM 和 ruby 1.8.7 的开发
我可以在 IRB 中使用以下内容:
require 'rubygems'
=> true
require 'rmagick'
=> true
require 'RMagick'
LoadError: no such file to load -- RMmagick
Run Code Online (Sandbox Code Playgroud)
在我的带有 ImageMagick Q16、RVM 和 ruby 1.8.7 的 Debian Squeeze 6.0 生产服务器上
我可以在 IRB 中使用以下内容:
require 'rubygems'
=> true
require 'rmagick'
LoadError: no such file to load -- rmagick
require 'RMagick'
=> true
Run Code Online (Sandbox Code Playgroud)
'gem list' 以小写形式显示在两个操作系统上。
rmagick (2.13.1)
Run Code Online (Sandbox Code Playgroud)
我想知道这个问题的根源是什么?
如果宝石的大小写(如宝石列表中所示)与 require 'some_gem'
所以我正在使用rails 3.2 app,我有一个CarrierWave上传器; 我用来上传图像,并将它们分成几种不同的尺寸 - 非常标准的东西.
我想要做的是在上传的图像上复合一个新图像,这也非常简单.(通常用于水印).不同之处在于,我不需要使用静态值来定位合成图像,而是需要它们是动态的.
我遇到的问题是弄清楚如何将动态用户定义的位置参数传递到'version'块中的载波处理器中.
有任何想法吗?
我需要在图像上(1024x768)渲染一些文本(unicode,helvetica,白色,22px,粗体).
到目前为止这是我的代码:
img = Magick::ImageList.new("my_bg_img.jpg")
txt = Magick::Draw.new
img.annotate(txt, 800, 600, 0, 0, "my super long text that needs to be auto line breaked and cropped") {
txt.gravity = Magick::NorthGravity
txt.pointsize = 22
txt.fill = "#ffffff"
txt.font_family = 'helvetica'
txt.font_weight = Magick::BoldWeight
}
img.format = "jpeg"
return img.to_blob
Run Code Online (Sandbox Code Playgroud)
它很好,但它不会自动打破线条(自动换行)以使所有文本适合我定义的区域(800x600).
我究竟做错了什么?
谢谢你的帮助:)
在我的 Rails 应用程序中,我有一个允许用户上传图像的表单。我的应用程序应该使用以下控制器方法调整图像大小。(POST 到此方法,params[:file]包含ActionDispatch::Http::UploadedFile已上传的内容:
def resize_and_store
file = params[:file]
# resize image
Magick::Image.read(file.tempfile).first
newimg = image.resize(100,100)
#etc... Store newimg
end
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,行上写着Image.read:
Magick::ImageMagickError (no decode delegate for this image format `0xb9f6052c>' @ error/constitute.c/ReadImage/544):
Run Code Online (Sandbox Code Playgroud)
使用上传的 PNG 文件对此进行测试,似乎 RMagick 没有识别出临时文件是 PNG 文件。如果我读取本地存储的 PNG 文件,上面的代码确实可以工作,所以不可能是我缺少 PNG 解码器。我该如何解决这个问题以及为什么会发生这种情况?
当我在ImageUploader类中评论此行" process:resize_to_fit => [200,300] "时,代码工作正常,但我想在上传时调整图像大小.
请帮忙.
Started PATCH "/products/980190968" for 127.0.0.1 at 2014-06-03 11:35:08 +0530
Processing by ProductsController#update as HTML
Parameters: {"utf8"=>"?", "authenticity_token"=>"D//KM/EExMDwT7WTMSQpsWnEDgAmpzGz7I7HembUC3s=", "product"=>{"title"=>"With No Image", "description"=>"asdasdasdasdasdasdasdsadasdasdasda", "image_url"=>#<ActionDispatch::Http::UploadedFile:0x2e936b0 @tempfile=#<Tempfile:C:/Users/ahmad/AppData/Local/Temp/RackMultipart20140603-1836-1098spu>, @original_filename="cs.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"product[image_url]\"; filename=\"cs.jpg\"\r\nContent-Type: image/jpeg\r\n">, "price"=>"39.90"}, "commit"=>"Update Product", "id"=>"980190968"}
User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = 4 LIMIT 1
Product Load (1.0ms) SELECT "products".* FROM "products" WHERE "products"."id" = $1 LIMIT 1 [["id", 980190968]]
Cart Load (1.0ms) SELECT "carts".* FROM "carts" WHERE "carts"."id" = $1 …Run Code Online (Sandbox Code Playgroud) 尝试安装 rmagick gem 时,我在 OS X Maverick 上遇到了问题。以下是一些细节
ImageMagic 细节
mairs-MacBook-Pro:social-login-in-rails umair$ convert --version
Version: ImageMagick 6.8.9-1 Q16 x86_64 2014-07-06 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules
Delegates: bzlib freetype jng jpeg ltdl lzma png xml zlib
Run Code Online (Sandbox Code Playgroud)
我尝试使用和不使用路径进行安装,但无法安装 rmagick。安装 rmagick 时出错
Umairs-MacBook-Pro:social-login-in-rails umair$ sudo C_INCLUDE_PATH=/opt/ImageMagick/include/ImageMagick-6/ PKG_CONFIG_PATH=/opt/ImageMagick/lib/pkgconfig/ gem install rmagick
Building native extensions. This could take a while...
/Users/umair/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/ext/builder.rb:73: warning: Insecure world writable dir /usr in PATH, mode 040777
ERROR: Error installing rmagick:
ERROR: Failed to build …Run Code Online (Sandbox Code Playgroud) Rmagick 抱怨在尝试运行任何迁移时它坏了。在 OSX Sierra 上。
/Users/xyz/.rvm/gems/ruby-2.4.0@nucloud/gems/rmagick-2.16.0/lib/rmagick_internal.rb:12:in `require': dlopen(/Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/rmagick-2.16.0/lib/RMagick2.bundle, 9): Library not loaded: /usr/local/lib/libMagickCore-6.Q16.2.dylib
Referenced from: /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/rmagick-2.16.0/lib/RMagick2.bundle
Reason: image not found - /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/rmagick-2.16.0/lib/RMagick2.bundle (LoadError)
from /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/rmagick-2.16.0/lib/rmagick_internal.rb:12:in `<top (required)>'
from /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/rmagick-2.16.0/lib/rmagick.rb:1:in `require'
from /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/rmagick-2.16.0/lib/rmagick.rb:1:in `<top (required)>'
from /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/bundler-1.15.1/lib/bundler/runtime.rb:82:in `require'
from /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/bundler-1.15.1/lib/bundler/runtime.rb:82:in `block (2 levels) in require'
from /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/bundler-1.15.1/lib/bundler/runtime.rb:77:in `each'
from /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/bundler-1.15.1/lib/bundler/runtime.rb:77:in `block in require'
from /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/bundler-1.15.1/lib/bundler/runtime.rb:66:in `each'
from /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/bundler-1.15.1/lib/bundler/runtime.rb:66:in `require'
from /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/bundler-1.15.1/lib/bundler.rb:108:in `require'
from /Users/xyz/code/nc_rails5/config/application.rb:7:in `<top (required)>'
from /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/spring-1.7.2/lib/spring/application.rb:82:in `require'
from /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/spring-1.7.2/lib/spring/application.rb:82:in `preload'
from /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/spring-1.7.2/lib/spring/application.rb:143:in `serve'
from /Users/xyz/.rvm/gems/ruby-2.4.0@nc/gems/spring-1.7.2/lib/spring/application.rb:131:in `block in run'
from …Run Code Online (Sandbox Code Playgroud) rmagick ×10
ruby ×5
imagemagick ×4
macos ×4
carrierwave ×2
bundler ×1
debian ×1
homebrew ×1
minimagick ×1
rvm ×1
ubuntu ×1