使用后门调整ubuntu上的辐射CMS的图像示例

时间:2011-03-12 09:12:08

标签: ruby resize sinatra rmagick radiant

我认为这与在Sinatra中执行此命令相同。

我希望服务器端使用back_door将用户上传的图像调整为标准宽度。我假设RMijick是要走的路 - 但我只是想要一个代码示例来实现这一目标。

我想知道调整大小然后使用rack-pagespeed进行缓存是一种更好的模式,还是只检查所请求的图像是否已经调整大小并跳过操作。

1 个答案:

答案 0 :(得分:0)

注意:我假设你已经安装并配置了radiant和back_door扩展。

首先从ubuntu安装开始:

apt-get install libmagick9-dev

然后安装宝石

gem install rmagick

然后验证gem版本:

irb -rubygems -r RMagick
irb(main):001:0> puts Magick::Long_version

然后重新加载apache

/etc/init.d/apache2 reload

然后在你的页面中执行:

<r:ruby>
require 'RMagick'
if File.exists?("/var/www/grub/public/page_attachments/0000/0010/MexicanBeefSalad190.jpg")
  #"file exists"
else
  img = Magick::Image.read "/var/www/grub/public/page_attachments/0000/0010/MexicanBeefSalad.jpg"
  img[0].change_geometry('190x190') { |cols, rows, img2|
    img2.scale!(cols, rows)
  }
  img[0].write ("/var/www/grub/public/page_attachments/0000/0010/MexicanBeefSalad190.jpg")
  #"not exists"
end
</r:ruby>