Comment faire rapidement quelque chose dans Rmagick pour tester son efficacité
Question
Je dois pouvoir convertir rapidement une image (dans un contrôleur de rails) afin que la société d'hébergement utilisant la gestion de notre application puisse rapidement tester à tout moment pour s'assurer que rmagick est non seulement installé avec succès, mais qu'il peut être appelé via le rails stiack, quel est le code le plus rapide que je puisse utiliser pour le faire?
La solution 2
Je voulais faire cela pour pouvoir le frapper facilement avec un navigateur Web, car je me déploie sur des serveurs gérés, sur lesquels je n’ai pas accès au shell (pour une sécurité accrue).
C'est donc ce que j'ai fait
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 #------
puis dans rmagick.html.erb
<%= image_tag @path %>
Je peux maintenant appuyer sur le contrôleur et si je vois une image, je sais que rmagic est installé.
Autres conseils
require 'RMagick'
image = Magick::Image.new(110, 30){ self.background_color = 'white' }
image.write('/tmp/test.jpg')
Je me connecterais au serveur et essayerais votre code dans script / console. Cela passera toujours par la pile de rails, mais vous permettra de vérifier rapidement que votre code fonctionne comme prévu et que RMagick et ImageMagick sont correctement installés sans rien déployer.
Lorsque le moment est venu d'écrire votre code actuel, je vous suggère de l'insérer dans un modèle afin que vous puissiez l'appeler en dehors du contexte d'un contrôleur.
Utilisez script / console et appelez le code dans un modèle ou un contrôleur exécutant les opérations suivantes:
require 'RMagick'
include Magick
img = ImageList.new('myfile.jpg')
img.crop(0,0,10,10) # or whatever
img.write('mycroppedfile.jpg')