首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RMagick不能裁剪裁剪过的图片吗?

RMagick不能裁剪裁剪过的图片吗?
EN

Stack Overflow用户
提问于 2015-04-22 10:20:00
回答 1查看 202关注 0票数 0

我正在和RMagick一起做一个红宝石项目,我从一个文件中加载一个图像,初始化具有裁剪部分的对象,然后尝试重新裁剪这些子图像。对于裁剪图像,它会创建一个尺寸为1x1的图像。

然而,它在我创建的玩具,琐碎的版本中工作:

代码语言:javascript
复制
i = Image.read('sample.png')[0]
=> sample.png PNG 1000x800 1000x800+0+0 DirectClass 8-bit 47kb
si = i.crop(50, 50, 900, 700)
=> sample.png PNG 1000x800=>900x700 1000x800+50+50 DirectClass 8-bit
ssi = i.crop(50, 50, 800, 600)
=> sample.png PNG 1000x800=>800x600 1000x800+100+100 DirectClass 8-bit

等等。

它似乎可以无限期地工作,至少在4代人中有效。

然而,我的代码肯定不能工作。我一直无法构建一个不起作用的简单版本,但这是我实际代码的简化相关部分。

https://gist.github.com/mikaylathompson/9ca5db7569d6bfba6008

代码语言:javascript
复制
doc = Document.new('sample.png')
doc.split
doc.sort

# This image is just fine
doc.tables[0].image
=> sample.png PNG 1000x800=>745x150 1000x800+125+350
doc.tables[0].divide_rows

# and this image failed
doc.tables[0].rows[0].image
=> sample.png PNG 1000x800=>1x1 1000x800-1-1 DirectClass 8-bit

# this fails too, so it's based on the image, not the dimensions
doc.tables[0].image.crop(50, 50, 100, 100)
=> sample.png PNG 1000x800=>1x1 1000x800-1-1 DirectClass 8-bit
EN

回答 1

Stack Overflow用户

发布于 2015-06-06 05:00:50

您可以通过将'true‘作为最后一个参数传递给派生图像中的源图像,告诉crop()不包括来自源图像的元数据维度(这些维度似乎会干扰作物的裁剪),如下所示:

代码语言:javascript
复制
doc.tables[0].image.crop(50, 50, 100, 100, true)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29786590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档