我需要能够快速转换图像(在rails控制器内),以便托管公司使用管理我们的应用程序可以随时快速测试以确保rmagick不仅成功安装,而且可以称为throgh rails stiack,我可以用它来做什么最快的干净代码?
答案 0 :(得分:14)
require 'RMagick'
image = Magick::Image.new(110, 30){ self.background_color = 'white' }
image.write('/tmp/test.jpg')
答案 1 :(得分:4)
我想这样做,以便我可以轻松地使用网络浏览器点击它,因为我已经部署到托管服务器,我没有shell访问(为了提高安全性)。
所以这就是我做的事情
class DiagnosticsController < ApplicationController
require 'RMagick'
def rmagick
images_path = "public/images"
file_name = "rmagick_generated_thumb.jpg"
file_path = images_path + "/"+ file_name
File.delete file_path if File.exists? file_path
img = Magick::Image.read("lib/sample_images/magic.jpg").first
thumb = img.scale(0.25)
@path = file_name
thumb.write file_path
end
end #------
然后在rmagick.html.erb
<%= image_tag @path %>
现在我可以点击控制器,如果我看到图像,我就知道安装了rmagic。
答案 2 :(得分:0)
我登录到服务器并在脚本/控制台中试用你的代码。这仍将通过rails堆栈,但允许您快速检查您的代码是否按预期方式工作,并且无需部署任何内容即可正确安装RMagick和ImageMagick。
到了编写实际代码的时候,我建议将图像转换代码放在模型中,这样你就可以在控制器的上下文之外调用它。
答案 3 :(得分:0)
使用脚本/控制台,并在模型或控制器中调用代码,执行以下操作:
require 'RMagick'
include Magick
img = ImageList.new('myfile.jpg')
img.crop(0,0,10,10) # or whatever
img.write('mycroppedfile.jpg')