Frage

Ich muß in der Lage sein, schnell ein Bild zu konvertieren (in einem Schienen-Controller), so dass das Hosting-Unternehmen unsere Anwendung mit der Verwaltung jederzeit schnell prüfen kann, dass RMagick um sicherzustellen, dass nicht nur erfolgreich installiert, kann aber throgh die genannt werden Schienen stiack, was der schnellste saubere Code ist ich dies tun können?

War es hilfreich?

Lösung 2

Ich wollte, dies zu tun, so dass ich einfach mit einem Web-Browser schlagen kann, wie ich an verwaltete Server bin deployng, die ich nicht Shell-Zugriff auf (für erhöhte Sicherheit) haben.

Das ist also, was ich tat

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 #------

und dann in rmagick.html.erb

<%= image_tag @path %>

Jetzt kann ich den Controller getroffen, und wenn ich ein Bild sehe, weiß ich rmagic installiert ist.

Andere Tipps

require 'RMagick'

image = Magick::Image.new(110, 30){ self.background_color = 'white' }
image.write('/tmp/test.jpg')

ich auf den Server anmelden würde und versuchen, Ihren Code in dem Skript / Konsole. Dies wird noch die Schienen durch stapeln, sondern ermöglicht es Ihnen, schnell zu überprüfen, ob Ihr Code die Art und Weise funktioniert, wie Sie erwarten, und dass RMagick und ImageMagick richtig installiert ist, ohne etwas implementieren zu müssen.

Wenn die Zeit kommt Ihren eigentlichen Code zu schreiben, würde ich vorschlagen, das Bild Conversion-Code in einem Modell setzen, so können Sie es außerhalb des Kontextes eines Controllers nennen.

Verwenden Sie Skript / Konsole, und rufen Sie Code in einem Modell oder einem Controller, der in etwa wie folgt funktioniert:

require 'RMagick'
include Magick
img = ImageList.new('myfile.jpg')
img.crop(0,0,10,10) # or whatever
img.write('mycroppedfile.jpg')
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top