如何在Rmagick中快速执行某些操作以测试其工作
问题描述:
我需要能够快速转换映像(在rails控制器中),以便托管公司使用管理我们的应用程序的功能可以随时快速测试以确保rmagick不仅成功安装,而且可以称为铁轨stiack,我可以用它来做到这一点最快的干净的代码是什么?如何在Rmagick中快速执行某些操作以测试其工作
答
我想这样做,这样我可以很容易地通过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是安装。
答
我会登录到服务器并在脚本/控制台中试用您的代码。这仍然会通过Rails堆栈,但可以让您快速检查您的代码是否按照您期望的方式工作,并且RMagick和ImageMagick已正确安装,无需部署任何内容。
当需要编写实际代码时,我建议将图像转换代码放入模型中,以便可以在控制器的上下文之外调用它。
答
使用脚本/控制台,并呼吁在型号代码或控制器,做类似以下内容:
require 'RMagick'
include Magick
img = ImageList.new('myfile.jpg')
img.crop(0,0,10,10) # or whatever
img.write('mycroppedfile.jpg')
答
require 'RMagick'
image = Magick::Image.new(110, 30){ self.background_color = 'white' }
image.write('/tmp/test.jpg')