2010-07-27 16 views
2

Avant de commencer à utiliser Rmagick, je demanderais car c'est probablement un cas d'utilisation assez courant. J'ai quelques centaines d'adresses e-mail que je voudrais afficher à l'utilisateur pour chaque entrée, mais je voudrais éviter d'afficher les e-mails en texte brut pour éviter le raclage, donc je suis à la recherche d'une solution texte-à-image.Solution simple de texte à l'image pour les rails

Il était assez simple mais bien sûr, je veux seulement générer l'image une fois par entrée, puis stocker l'image quelque part, je suis actuellement en utilisant comme s3 avec paperclip je hébergement sur Heroku, etc.

Une autre possibilité est d'obliger l'utilisateur à remplir un captcha afin d'obtenir l'email, mais cela semble un peu exagéré.

Des suggestions?

Merci

Répondre

1

vaudraient peut-être regarder dans libgd2 (le joyau gd2) qui est plus léger que rmagick et ImageMagick. Vous ne savez pas s'ils ont implémenté des fonctions de texte dans la gemme, mais il n'est pas difficile de l'étendre pour appeler d'autres fonctions de libgd2.

2

Une solution rmagick de base n'est pas si mauvaise, 6 lignes. Ce qui suit vous donne un rectangle jaune avec le texte au centre. Vous pouvez expérimenter avec la police et la taille du point. L'appel du centre est là parce que je pensais que c'était mieux au milieu.

require 'RMagick' 

canvas = Magick::Image.new(300, 100){self.background_color = 'yellow'} 
gc = Magick::Draw.new 
gc.pointsize(50) 
gc.text(30,70, "TEXT".center(14)) 

gc.draw(canvas) 
canvas.write('tst.png')