- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
在带有 Ruby 1.8.7 的 Rails 3.0.0 实例上,我尝试使用 RMagick (2.13.0) 将一些图像处理任务推送到使用 fork() 的单独进程中。但是,当调用 Magick::Image.new、Magick::Image.crop 或 Magick::Image.composite 时,进行图像处理的子进程总是挂起。
我所说的“挂起”是指进程卡在那个特定的命令上;它既不会越过那条线也不会抛出任何异常,我必须手动终止该进程。此外,子进程在卡住时似乎没有使用任何额外的内存,这真的让我想知道它到底在做什么。
相关代码看起来有点像这样:(这不是实际代码!)
def trigger_fork
img_content = get_image_content
p = Process.fork { process_image(img_content) }
Process.detach(p)
redirect_to root_path
end
def process_image(img_content)
img = Magick::Image.from_blob(img_content) # this works fine!
composite_image(img)
end
def composite_image(img)
# child process gets stuck here!!
dummy = Magick::Image.new(100,100) { self.background_color = "white" }
img.composite(dummy, 0, 0, Magick::XorCompositeOp)
end
如果我用 img.crop
替换 Magick::Image.new
,进程也会挂起!有趣的是,如果我禁用 fork 并仅在与调用者相同的进程中运行 process_image 函数,一切正常!
我在网上找遍了,还是不明白为什么会这样。如果有人可以帮助我解决这个问题,我将不胜感激。谢谢!
最佳答案
如果这发生在 Rails 进程中,我猜它与 Ruby 和 RMagick 处理内存的方式有关。 RMagick 以存在内存问题而闻名,而 Rails 以不友好地尝试做这样的事情而闻名。
我会强烈推荐一个后台工作。如果您有时间限制,只需添加足够的工作人员和资源,以便及时处理它们。如果你解决了这个问题,你使用这种方法的问题就不会停止。
关于ruby-on-rails - RMagick (ImageMagick) 在 fork 进程中运行时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6606183/
我有 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
我是一名优秀的程序员,十分优秀!