3

アプリケーションを管理しているホスティング会社がいつでもすばやくテストして、rmagick が正常にインストールされただけでなく、Rails スティックを介して呼び出すことができることを確認できるように、イメージを (Rails コントローラー内で) すばやく変換できる必要があります。これを行うために使用できる最も迅速なクリーンコードは何ですか?

4

4 に答える 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ブラウザーで簡単にアクセスできるようにするためです。

だからこれは私がしたことです

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 に答える