使用C#进行内容感知图像裁剪

4
我正在开发一个类似CMS的项目,用户可以上传带有内容的图片。我需要即时创建上传图像的缩略图,缩略图大小为125x75。
我可以轻松调整图像大小,但是在进行裁剪操作时会出现几个问题。我的调整大小和裁剪过程如下:
1. 加载原始图像。 2. 调整图像大小以达到所需大小,根据给定的最大宽度或高度防止原始纵横比例。 3. 如果结果图像与输出纵横比不同,则应用中心裁剪操作。
但是我想要实现的是一种内容感知裁剪,就像Jue Wang在文章Opticrop:使用PHP和ImageMagick进行内容感知裁剪中所描述的那样。
是否有任何方法可以使用C#来执行此操作,或者是否有可以执行此操作的库?
注意:我不想要内容感知调整大小。内容感知调整大小(缝合雕刻)可以使用ImageResizing.net SeamCarving插件完成。

1
您实际上是在寻求将此函数 function opticrop($image, $w, $h, $out, $format) 移植到 ASP.NET 或者说,一个确定边缘中心并在该位置周围裁剪图像的函数。 - Aristos
是的,那正是我正在寻找的。如你所提到的,我必须找到边缘中心,但该怎么做呢?我想我得自己进行移植。 - CemilF
1个回答

1

如果您正在使用ImageResizing.net框架,我认为WhitespaceTrimmer插件可能是一个很好的起点。

如果您想自己编写代码,这个Gist展示了一个使用熵的好解决方案,但是它是用Ruby编写的。


其实,我无法理解WhitespaceTrimmer插件如何帮助我找到Aristos在我的帖子中评论的边缘中心。我对空格没有任何问题。 - CemilF
WhitespaceTrimmer插件使用边缘检测来找到需要删除的图像部分。由于它是开源的,所以我想你可以去那里看一下,并将其作为一个起点... - Yannick Blondeau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接