- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
在我最近为客户构建的应用程序中,以下代码导致变量 @nameText
被评估,然后导致错误“无文本”(因为变量不存在) .
为了解决这个问题,我使用了 gsub,如下例所示。有没有办法告诉 Magick 根本不要评估字符串?
require 'RMagick'
@image = Magick::Image.read( '/path/to/image.jpg' ).first
@nameText = '@SomeTwitterUser'
@text = Magick::Draw.new
@text.font_family = 'Futura'
@text.pointsize = 22
@text.font_weight = Magick::BoldWeight
# Causes error 'no text'...
# @text.annotate( @image, 0,0,200,54, @nameText )
@text.annotate( @image, 0,0,200,54, @nameText.gsub('@', '\@') )
最佳答案
这是返回错误的 RMagick 的 C 代码:
// Translate & store in Draw structure
draw->info->text = InterpretImageProperties(NULL, image, StringValuePtr(text));
if (!draw->info->text)
{
rb_raise(rb_eArgError, "no text");
}
它是对正在修改输入文本的 InterpretImageProperties
的调用 - 但它不是 Ruby,也不是它试图引用的 Ruby 实例变量。该函数在 Image Magick 核心库中定义:http://www.imagemagick.org/api/MagickCore/property_8c_source.html#l02966
再往下看,可以看到代码:
/* handle a '@' replace string from file */
if (*p == '@') {
p++;
if (*p != '-' && (IsPathAccessible(p) == MagickFalse) ) {
(void) ThrowMagickException(&image->exception,GetMagickModule(),
OptionError,"UnableToAccessPath","%s",p);
return((char *) NULL);
}
return(FileToString(p,~0,&image->exception));
}
总而言之,这是一个核心库功能,它将尝试从文件(在您的情况下名为 SomeTwitterUser
,我已经确认了这一点 - 尝试一下!)加载文本,您的解决方法是可能是你能做的最好的。
为了提高效率并尽量减少对输入字符串的更改,您可以依赖库代码的选择性,并且只修改以@
开头的字符串:
@text.annotate( @image, 0,0,200,54, @name_string.gsub( /^@/, '\@') )
关于ruby - 如何在 Ruby (Rmagick) 中停止 ImageMagick 评估文本注释中的 @ 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18697306/
我有 2 个图像, Logo 和背景, Logo 是我放置在背景中心的一个小图像。为了使图像看起来更好,我试图让它在 Logo 边缘拾取颜色并将其设置为背景的背景颜色。 我已经让一切正常工作了颜色查找
我正在尝试使用 Rmagick 调整图像大小,如果我使用 resize_to_fit方法总是先调整高度,而不是宽度,但似乎我的大多数图像都首先调整为宽度。无论如何使用resize_to_fit告诉它“
我有一个带有大图像的全尺寸 slider 例如:1885x1440这些是照片,我需要使用 RMagick 对其进行优化但保持质量和图像大小(1885x1440) 我认为应该是这种方法之一http://
尝试使用 rmagick 镶嵌图像。 如何“马赛克模糊”现有图像使其代表马赛克的图片? 喜欢: 最佳答案 这就是你如何使用 RMagick 做马赛克 #!/home/software/ruby-1.8
当我在 rails 的 lib 文件夹中运行命令 ruby billede.rb 时,出现错误: C:\Rails\myapp\lib>ruby billede.rb C:/Ruby192/lib
当我通过 FactoryGirl 和 Faker 创建一个对象时,shell 显示一个错误 [1] pry(main)> FactoryGirl.create(:company) [DEPRECATI
我正在使用 Mac pro Lion 通过 ImageMagick Q16、RVM 和 ruby 1.8.7 进行开发 我可以在 IRB 中使用以下内容: 注意“rmagick”这个词的不同大写
我使用脚本来安装 ImageMagick http://github.com/masterkain/ImageMagick-sl 过了一会儿,我安装了 ImageMagick。 然后我运行 sudo
在 linux 中,我正在执行以下操作将多页 PDF 转换为调整大小并具有高分辨率的图像: convert -verbose -colorspace RGB -resize 800 -interlac
我正在尝试在 RMagick 中创建撕裂边缘效果。有没有类似photoshop的crystallize的滤镜? 另外,我在这里找到了这个 ImageMagick 代码 http://www.image
我的环境是 Linux centos,使用 ruby 1.8.7,代码如下: require 'rubygems' require 'RMagick' Magick::Image.read("ht
我想调整/缩放图像。原件的尺寸与 300x200 或 512x600 不同。我想将图像的大小调整为 100x100,但不要裁剪图像中的任何内容或更改比例。理想情况下,图像将首先将长边缩放到 100(宽
今天我试着写一个代码从文件夹生成动画gif但我得到这个错误: .../.gem/ruby/2.0.0/gems/rmagick-2.13.2/lib/RMagick.rb:1635:in `read'
在我的 Mac 上安装 rmagick gem 时遇到问题。我所有的软件都是最新的。这是我的错误信息。我试过重新安装 ImageMagick,但似乎没有任何效果。我使用自制软件 - 不能因为这个问题,
下面的 imageMagick 命令会将一个 Sprite 图像裁剪成几个均分的图像: convert image.png -crop 2x3-40-20@ +repage +adjoin tile-
我无法找到如何使用 RMagick 获取给定字形的所有指标。 我知道有一个 get_type_metrics 方法可以给出基线、高度、上升、下降等,但我还想获得给定字形的 x 高度、大写高度、边界矩形
我试图在将图像合成到另一个图像之前旋转图像,使用 RMagick 和 ruby。我可以合成叠加图像,但是当我尝试旋转图像时,背景的部分被移除,就像这样...... 我不确定我应该使用哪个 Comp
我在这里试过这个例子: http://www.imagemagick.org/RMagick/doc/usage.html#annotation 但我只能生成这张图片。 这看起来与该页面上生成的图像不
有没有办法在我设置宽度和高度的 rmagick 中缩放和图像,以便图像包含相同的比例? 最佳答案 我使用 resize_to_fit 方法,它将使用提供的参数作为最大宽度/高度,但会保持宽高比。所以,
我发现当你想在 Rmagick 中裁剪图像时,它不会改变当前图像对象,但会返回一个新图像。 所以,如果我有: @image = Magick::ImageList.new(path) @cropped
我是一名优秀的程序员,十分优秀!