用RMagick做了一个显示验证吗的图
在windows下显示一切正常,上传到linux服务器上后,图片显示出来了,有背景颜色,可是就是没有文字
请指点迷津,不胜感激。
引用
问题已经解决,后面说面了解决方法
class NoisyImage
require 'RMagick'
include Magick
attr_reader :code, :code_image
def initialize(length = 4)
text_size = 33
rand_height = 9
colors = ['#FF0000', '#3300CC', '#FF3300', '#b50000', '#373000', '#f000f0', '##336600']
validbglinecolors = ['#ABEFAB', '#FF99FF', '#CCCCFF', '#66FF66', '#CCFF33']
validchars = (0..9).to_a
dist = (5..30).to_a
step = 8
chars = []
text_size_space = text_size * 0.8
text_size_step = text_size * 0.6
length.times {|x|
chars << validchars[rand(validchars.size).ceil - 1].to_s
}
bglinecolor = validbglinecolors[rand(validbglinecolors.size).ceil - 1]
image = Image.new(length * text_size_step + 10, text_size * 1.2, HatchFill.new('white', bglinecolor, dist[rand(dist.size - 1)]))
text = Draw.new
#使用字体文件和直接使用字体,或者不写font, font_family两个属性都是如图所示结果,linux下无字显示
text.font = "fonts/" + ['times.ttf', 'arial.ttf', 'verdana.ttf', 'artro.ttf'].sort{rand}.pop
#text.font_family = ['times', 'sans', 'fixed', 'Verdana'].sort{rand}.pop
text.font_weight = BoldWeight
text.text(0, 0, ' ')
chars.each {|char|
text.annotate(image, 0, 0, step, text_size_space + rand(rand_height), char) {
self.rotation = dist[rand(dist.size - 1).ceil]
self.fill = colors[rand(colors.size - 1).ceil]
self.pointsize = text_size - validchars[rand(rand_height).ceil]
}
step += text_size_step - rand(5)
}
text.draw(image)
@code = chars.to_s()
@code_image = image.to_blob{ self.format="JPG" }
end
end
引用
原因是linux服务器下用的是fastcgi+apache,windows下测试用的是ruby webrick,而字体文件使用了相对路径,两者的路径是不同的,使用绝对路径就没有这个错误了。
误: text.font = "fonts/" + ['times.ttf', 'arial.ttf', 'verdana.ttf', 'artro.ttf'].sort{rand}.pop
正: text.font = "/home/web/fonts/" + ['times.ttf', 'arial.ttf', 'verdana.ttf', 'artro.ttf'].sort{rand}.pop
- 描述: 显示出来的图形,linux下是没有文字的。
windows下是正确的。
- 大小: 9.6 KB
分享到:
- 2007-10-08 16:33
- 浏览 2609
- 评论(4)
- 论坛回复 / 浏览 (3 / 4726)
- 查看更多
相关推荐
`rmagick-2.3.0-x86-mswin32.gem` ...总的来说,`rmagick-2.3.0-x86-mswin32.gem` 是一个强大的工具,它扩展了Ruby的图像处理能力,使得开发者可以方便地创建各种图像应用,包括但不限于验证码生成、图像编辑和转换等。
安装redmine-3.2.3 ruby on rails 下的插件 rmagick 2.16.0 gem
2. **绘制验证码图像**:使用像` RMagick`或`Pillow`这样的图像处理库,创建一个新的图像并填充背景色。然后在图像上绘制随机生成的字符串,每次使用不同的字体、颜色和角度,以增加识别难度。 3. **扭曲和噪声**:...
RMagick-2.12.0-ImageMagick-6.5.6-8-Q8.rar 包含 rmagick-2.13.2.gem ImageMagick-6.5.6-8-Q8-windows-dll.exe RMagick-2.12.0.tar.gz rmagick-2.12.0-x86-mswin32.gem
rails 插件rmagick 2.10.0 gem
马吉克目录介绍RMagick是Ruby编程语言和ImageMagick图像处理库之间的接口。先决条件最新版本的RMagick需要具备这些先决条件。 操作系统Linux * BSD 苹果系统视窗其他* nix类系统Ruby2.3版或更高版本。 您可以从获得...
hornetseye-rmagick使用RMagick Ruby 扩展提供文件 I/O。 RMagick需要 ImageMagick 开发头文件。 如果您运行的是 Debian 或 (K)ubuntu,您可以像这样安装它们: $ sudo aptitude install libmagickwand-dev 要安装...
验证码系统比ReCAPTCHA使用更少的荒谬图像。 Kamcaptcha有两个稍微独立的部分,一个用于构建要显示的单词图像的生成器,另一个用于检查提交内容的有效性的运行时配置。 产生影像 这是您在本地执行的操作,可能只是...
注意:根据Ruby China的使用,验证码看起来被OCR解析的可能性低于5%,并且验证码被破解。 建议您使用IP速率限制来增强保护。 注意:以Ruby China的使用来看,验证码大约有5%的概率被OCR读取解析导致验证码被破解...
redmine的一个包文件,可以用来导出为pdf,图像的功能
例如,以下是一个简单的示例,展示如何用 Rmagick 读取和显示一张图像: ```ruby require 'rmagick' image = Magick::Image.read('example.jpg').first image.display ``` 在这个例子中,`Magick::Image.read` ...
8. **文字和图形绘制**:使用`annotate`方法,可以在图像上添加文本;通过`draw`方法,可以绘制线条、形状和其他矢量图形。 9. **批处理**:RMagick支持批量处理图像,你可以一次性对一组图像执行相同的操作。 10....
基于rmagick的rails 3的简单验证码实现 经过Rails 3.2.8的测试 安装 添加到Gemfile gem 'easy_captcha' gem 'rmagick' 对于Java,您可以使用 gem 'rmagick4j' 捆绑执行后 rails g easy_captcha: install 配置 ...
使用MiniMagick,ruby进程的内存仍然很小(它生成了ImageMagick的命令行程序mogrify,该程序也占用了一些内存,但是比RMagick小得多)。 请参阅正在 以下。 MiniMagick使您可以访问ImageMagick拥有的所有命令行...
Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web应用程序...同时,对于RMagick,也要考虑使用更新的版本,因为它可能不支持最新的操作系统或Ruby版本。在实际操作中,应始终关注官方文档和社区维护状态。
雄oster Drosterize是将图像处理代码从Wolfram语言转换为Ruby的另一项实验。 以前是 ,看看。 当前实验的来源是( )的一篇名为“ 。 Drosterize会执行“ ”(自我,包括递归图像)。 这里有一些例子,后面是...
那里的大多数想法都相当简单(为线条设置粗体样式、添加标签、使用适当的字体),但有一些图像失真的想法,这使得任何图形看起来都是“铅笔画的”。 在那里,我只是在想“Ruby是最好的语言 evaaar,如果我能做同样...
使用它,您可以将图像编码为一个小的字符串,该字符串可以保存在数据库中,在API响应中返回并在加载真实图像之前显示为模糊的预览。 Blurhash由 DagÅgren)撰写。 安装 将此行添加到您的应用程序的Gemfile中: ...
BenchmarkDriver :: Output :: Gruff 基准测试驱动程序插件,用于使用gruff.gem渲染图形。安装安装rmagick.gem的依赖项。 另请参阅: : # macOSbrew install imagemagick@6PKG_CONFIG_PATH=/usr/local/opt/...