【问题标题】:Why does cropping behave like that?为什么裁剪会有这样的行为?
【发布时间】:2011-04-14 19:11:29
【问题描述】:

我有一张尺寸为126x75的图片:

(rdb:1) p image.width
126
(rdb:1) p image.height
57

现在我想将其裁剪为50x50,从西北(左上角)开始。于是我试了一下(应该和IMs命令行几何参数50x50+0+0类似):

image2 = image.process(:crop, :width => 50, :height => 50, :x => 0, :y => 0)

但结果让我有些意外:

(rdb:1) p image2.width
24
(rdb:1) p image2.height
16

为什么会这样?正确的方法是什么?

【问题讨论】:

    标签: imagemagick rmagick dragonfly-gem


    【解决方案1】:

    听起来您正在使用的图像具有导致您的 (0,0) 位置偏移的现有页面几何图形。您可以告诉 IM 重新分页图像以删除现有的页面几何图形,以便 (0,0) 是“真实的”(0,0)。查看 IM 文档:http://www.imagemagick.org/Usage/crop/#crop_page

    【讨论】:

    • 这是正确的想法,谢谢!但只有crop 方法似乎有一个可选参数来重新分页。有许多使用不接受该参数的裁剪函数的辅助函数。解决方法:image.crop!(0, 0, image_width, image_height, true) 在每种方法之前。不完美,但能胜任。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    相关资源
    最近更新 更多