使用预定义的高度、宽度和 (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、宽度、高度