2011-05-11 110 views

回答

0

ImageMagick(以免费和开放源代码软件提供)可以通过命令行选项轻松完成您的描述。这听起来像你想要一个.NET库,将完成相同的事情。我不知道任何事情,但我敢打赌,如果你是谷歌的.NET图像处理库,你会发现一些,然后你将能够完成你所需要的。

0

第012个示例(示例#2 - 缩放到固定大小)在此帖子http://www.codeproject.com/Articles/2941/Resizing-a-Photographic-image-with-GDI-for-NET中显示了如何使用.net System.Drawing执行您(和我)需要的操作。

我还发现了命令,实现与ImageMagick的结果:

转换input.png调整大小150×150 -background白色-compose复制-gravity中心-extent 150×150 -quality 92 output3.png

但我发现ImageMagickNet是用于.Net的ImageMagick的包装,并未更新,并且没有关于某些命令的文档。我发现如何调整图像的大小和范围,但是我找不到如何设置背景颜色,重力和其他配置。 CodePlex网站页面有一些讨论,但只有极少数的答案(http://imagemagick.codeplex.com/)

ImageMagickNET.MagickNet.InitializeMagick(); 
ImageMagickNET.Image img = new ImageMagickNET.Image("c:\\images\\input.png"); 
ImageMagickNET.Geometry geometry = new ImageMagickNET.Geometry("150x150"); 
img.Resize(geometry); 
img.Compose(CompositeOperator.CopyCompositeOp); 
img.Extent(geometry); 
img.Write("c:\\images\output.png"); 

有一些技巧,使运行ImageMagickNET,但你可以很容易地找到他们在CodePlex上或计算器。 所以我的建议是:去System.Drawing!

2

ImageResizer支持这一点:

<img src="image.jpg?width=500&height=300&mode=pad&scale=canvas" /> 

您还可以&bgcolor=color|hex调整背景颜色,或使用&format=png得到它的透明度来代替。