Wie mache ich schnell etwas in RMagick es zu testen arbeiten
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?
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')