我需要找到真正类型的图像,因为很多时候它们的扩展名是错误的。
RMagick 可以做到这一点吗?如何?
我面临的是我的rails 3.2.17应用程序中的问题.我在我的ubuntu机器上安装了rmagick 2.13.2 ImageMagick 6.7.7-10.我确实找到了libMagick,我找到了以下列表:
$ locate libMagick
/usr/lib/x86_64-linux-gnu/libMagickCore.a
/usr/lib/x86_64-linux-gnu/libMagickCore.la
/usr/lib/x86_64-linux-gnu/libMagickCore.so
/usr/lib/x86_64-linux-gnu/libMagickCore.so.5
/usr/lib/x86_64-linux-gnu/libMagickCore.so.5.0.0
/usr/lib/x86_64-linux-gnu/libMagickWand.a
/usr/lib/x86_64-linux-gnu/libMagickWand.la
/usr/lib/x86_64-linux-gnu/libMagickWand.so
/usr/lib/x86_64-linux-gnu/libMagickWand.so.5
/usr/lib/x86_64-linux-gnu/libMagickWand.so.5.0.0
我是 Ruby on Rails 的新人。我想使用 rmagick 在我的 Rails 项目中进行图像处理。但我很困惑如何去做。我在控制台上练习过“rmagick”。但现在我想使用 rmagick 在我的 Rails 项目中操作上传的图像。帮我这个?
每当我尝试使用sudo gem install rmagick安装rmagick gem时,安装失败,当它试图包含一个名为wand/MagicWand.h的头文件时
日志文件中的确切错误是:
gcc -E -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 -I. -I$MAGICK_HOME/include/ImageMagick -I/include/ImageMagick -fopenmp conftest.c -o conftest.i"
conftest.c:1:29: error: wand/MagickWand.h: No such file or directory
checked program was:
/* begin */
1: #include <wand/MagickWand.h>
/* end */
Run Code Online (Sandbox Code Playgroud)
$ MAGICK_HOME env变量设置为/usr/bin/imagemagick
它要查找的头文件/usr/bin/imagemagick/include/ImageMagick/wand/MagickWand.h
我试图按照这里的说明进行操作.我在运行Snow Leopard的Intel iMac上安装它.
我正在尝试将Rails应用程序推送到Heroku,但是当它尝试构建rmagick gem(在Gemfile中指定)时它失败了.我已在bundle install本地完成,应用运行正常.
但是,在预接收钩子中的Heroku上,在构建rmagick示例之后,我得到:
make install
/usr/ruby1.8.7/bin/ruby setup.rb install
rm -f InstalledFiles
---> lib
mkdir -p /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib
install RMagick.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/
---> lib/rvg
mkdir -p /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
install embellishable.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
install pathdata.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
install stylable.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
install describable.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
install deep_equal.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
install misc.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
install text.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
install rvg.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
install container.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
install stretchable.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
install paint.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
install clippath.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
install units.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
install transformable.rb /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib/rvg
<--- lib/rvg
<--- lib
---> ext
---> ext/RMagick
mkdir -p /disk1/tmp/build_3eu8mw7r34j0f/.bundle/gems/ruby/1.8/gems/rmagick-1.15.17/lib …Run Code Online (Sandbox Code Playgroud) 我安装了大约40个其他宝石,但是由于这个错误,这个宝石无法安装:
使用本机扩展安装rmagick(2.13.1)Gem :: Installer :: ExtensionBuildError:错误:无法构建gem本机扩展.
/Users/durrantm/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb
Run Code Online (Sandbox Code Playgroud)
检查Ruby的版本> = 1.8.5 ...是检查/usr/bin/gcc-4.2 ...是对Magick,配置检查...没有无法安装RMagick 2.13.1.在/Users/durrantm/.rvm/gems/ruby-1.9.2-p290@ruby1.9.2_Abroad101/bin:/Users/durrantm/.rvm/gems/ruby-1.9.2-p290找不到Magick-config @全球/斌:/Users/durrantm/.rvm/rubies/ruby-1.9.2-p290/bin:/Users/durrantm/.rvm/bin:/Library/PostgreSQL/9.1/bin:在/ usr/local/bin目录:/Library/PostreSQL/9.1/bin:在/ usr/bin中:/ bin中:/ usr/sbin目录:/ sbin目录:在/ usr/local/bin目录:在/ usr/X11/bin中:在/ usr/local/sbin中:在/ usr /本地/ MySQL的/斌:/Users/durrantm/.rvm/bin
*extconf.rb失败* 由于某些原因无法创建Makefile,可能缺少必要的库和/或标头.检查mkmf.log文件以获取更多详细信息.您可能需要配置选项.
提供的配置选项: - with-opt-dir --with-opt-include --without-opt-include = $ {opt-dir}/include --with-opt-lib --without-opt-lib = $ {opt-dir}/lib --with-make-prog --without-make-prog --srcdir =.--curdir --ruby =/Users/durrantm/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
Gem文件将保留在/Users/durrantm/.rvm/gems/ruby-1.9.2-p290@ruby1.9.2_Abroad101/gems/rmagick-2.13.1中进行检查.结果登录到/Users/durrantm/.rvm/gems/ruby-1.9.2-p290@ruby1.9.2_Abroad101/gems/rmagick-2.13.1/ext/RMagick/gem_make.out安装rmagick时发生错误(2.13. 1),而Bundler无法继续.gem install rmagick -v '2.13.1'在捆绑之前确保成功.
我尝试了这个链接 https://github.com/maddox/magick-installer,
但它在最后出错:
/ usr/bin/install -c -m 644 ./builds/unix/freetype2.pc\/ usr/local/lib/pkgconfig/freetype2.pc tar:无法识别的存档格式tar:从先前错误延迟的错误退出.
现在我正在尝试Veraticus的解决方案,如果有必要我会尝试Peters.
我一直在玩RMagick的color_histogram方法,以获得量化的8位图像中的颜色直方图.
然而,虽然我应该从这个方法返回一个哈希,但我得到了一些东西.检查"哈希"时IRB的输出如下所示:
=> {red=1907, green=1893, blue=2716, opacity=0=>25801, red=21141, green=14902, blue=13109, opacity=0=>3744, red=35552, green=15344, blue=8229, opacity=0=>1427, red=48734, green=19120, blue=8539, opacity=0=>1280, red=62091, green=22662, blue=8733, opacity=0=>75158, red=57917, green=33805, blue=24932, opacity=0=>275, red=47046, green=39657, blue=37365, opacity=0=>1873, red=64379, green=64336, blue=64330, opacity=0=>10442}
我在这里做错了什么想法?
rmagick ×7
ruby ×6
imagemagick ×2
extconf.rb ×1
gem ×1
hash ×1
heroku ×1
histogram ×1
magickwand ×1
ubuntu ×1