使用预定义的高度、宽度和 (x , y) 索引保存在轨道中后自动裁剪图像

Posted

技术标签:

【中文标题】使用预定义的高度、宽度和 (x , y) 索引保存在轨道中后自动裁剪图像【英文标题】:Automatically crop image after save in rails with predefined height, width, and (x , y) index 【发布时间】:2012-11-12 18:38:46 【问题描述】:

我正在寻找保存图像后自动裁剪图像的方法:

我在将 html 转换为 rails 中的图像时遇到了一个繁琐的问题。 我的问题是当 html 被转换为图像时,额外的背景也会附加到图像中,我不需要,所以在通过一些代码保存回调后尝试裁剪图像。

我需要针对问题的具体答案,如有任何帮助,将不胜感激。

提前致谢

朋友们,我在下面提供了解决方案来回答,但我需要比我提供的解决方案更高效和有效。

1) 我想用更短的行来做

2) 种植成本低

3) 高效算法

【问题讨论】:

你知道独立于html页面的图形尺寸吗? 创建图像时,我给出了宽度:240px 和高度:200px;所以据我了解,可能有一些作物方法。 img.crop(width,height,x,y) 其中 x,y 是裁剪的起点,值为 x=y=0 类似于我所需要的东西 【参考方案1】:

我认为最合适的方法是使用 ImageMagic ,它有自己的脚本语言(或 API)。看看这个Railscast。它使用 CarrierWawe ,我认为这对您来说不是问题。

【讨论】:

【参考方案2】:

保存图片后我调用了这个方法来裁剪图片

def reprocess_final_image

    image_file_url = Rails.root.to_s+'/public'+self.final_image.url(:original).split('?')[0]
    img = Magick::Image.read(image_file_url).first
    img.format = "PNG"
    img.crop_resized!(240,200, Magick::NorthWestGravity)
    img.write(image_file_url)


  end

其中作物调整大小的方法有参数 img.crop_resized!(宽度,高度,重力)

【讨论】:

【参考方案3】:

Cloudinary 为这种事情提供了很棒的服务。也可以轻松与 Heroku 集成!

【讨论】:

这是第三方工具,我们应该使用它们吗? 是的,它是第三方工具。它提供图像处理和图像托管(收费)

以上是关于使用预定义的高度、宽度和 (x , y) 索引保存在轨道中后自动裁剪图像的主要内容,如果未能解决你的问题,请参考以下文章

为一个元素设置长度(高度或宽度)减去另一个元素的可变长度,即 calc(x - y),其中 y 未知

如何使用 mask-RCNN 在 python 中计算(x,y)(质心)和掩码的宽度和高度?

如何指定 X、Y、宽度和高度以便在 Photoshop 中进行裁剪?

如何获取使用自动布局的 UIView 的 x、y、宽度、高度

根据其上方视图“元素”的宽度/高度“动态”生成子视图框架的 x 和 y 值?

如何用PHP输出图片的宽度和高度?