我需要能够快速转换图像(在 rails 控制器内),以便使用管理我们的应用程序的托管公司可以随时快速测试,以确保 rmagick 不仅安装成功,而且可以通过 rails stiack 调用,我可以用来执行此操作的最快的干净代码是什么?
Laurie Young
问问题
3243 次
4 回答
14
require 'RMagick'
image = Magick::Image.new(110, 30){ self.background_color = 'white' }
image.write('/tmp/test.jpg')
于 2008-09-16T14:01:36.847 回答
4
我想这样做,以便我可以使用 Web 浏览器轻松访问它,因为我正在部署到托管服务器,而我没有 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 已安装。
于 2008-09-16T11:56:34.947 回答
0
我会登录到服务器并在脚本/控制台中试用您的代码。这仍将通过 rails 堆栈,但允许您快速检查您的代码是否按预期方式工作,以及 RMagick 和 ImageMagick 是否已正确安装,而无需部署任何东西。
当需要编写您的实际代码时,我建议将图像转换代码放在模型中,这样您就可以在控制器的上下文之外调用它。
于 2008-09-16T10:12:16.477 回答
0
使用脚本/控制台,并在执行以下操作的模型或控制器中调用代码:
require 'RMagick'
include Magick
img = ImageList.new('myfile.jpg')
img.crop(0,0,10,10) # or whatever
img.write('mycroppedfile.jpg')
于 2008-09-16T10:14:48.750 回答