|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
2003年中微软发布最新版本的ASP.netWebMatrix,对于我们喜欢用Asp.net来编程的朋友实在是个好消息,我也实实在在的将Asp.net更深入的研究了一下,以方便我以后更好的运用它,同时我也讲讲使用它的感受。<P>//本文章有www.blue1000.com翻译,原文地点http://codebetter.com/blogs/brendan.tompkins/archive/2004/01/26/6103.aspx
//尊敬别人休息功效,转载请说明出处。写程序的时分常常用到GDI+,他能够将一幅深色32bpp图象保留为一个gif文件,历程也对照复杂。而且在利用CreateThumnailImage办法保留这个gif图片之前,你还能够调剂它的尺寸。
经常使用的代码:
System.Drawing.Bitmapb=newSystem.Drawing.Bitmap(“c:original_image.gif“);
System.Drawing.Imagethmbnail=b.GetThumbnailImage(100,75,null,newIntPtr());
thmbnail.Save(“c: humnail.gif“,System.Drawing.Imaging.ImageFormat.Gif);以上代码能够完成gif文件的绘制和保留事情,可是很快你就会发明成绩了:天生的thumnail.gif文件的画质远远低于我们的希冀值。
如上图所示的低画质粒状图像还必要举行“色彩量子化”处置(palettization)。之以是会呈现这类情形,是由于GDI+默许利用256色,而没有思索图象本身实践的色彩。
以后,我们实验着创建本人的“调色板”,但是了局更糟:)。一个好的“色彩量子化”算法应当思索在两个像素颗粒之间添补与这两个像素色彩邻近的过渡色彩,供应更多可视色彩空间。
这就是“Octree“算法。“Octree“算法同意我们拔出本人的算法来量子化我们的图象。
这里有微软的两片文章,也许对我们有匡助:KB319061和OptimizingColorQuantizationforASP.NETImages(微软MorganSkinner著)。MorganSkinner供应了很好的“Octree“算法代码,人人能够下载参考利用。
利用OctreeQuantizer很便利:
System.Drawing.Bitmapb=newSystem.Drawing.Bitmap(“c:original_image.gif“);
System.Drawing.Imagethmbnail=b.GetThumbnailImage(100,75,null,newIntPtr());
OctreeQuantizerquantizer=newOctreeQuantizer(255,8);
using(Bitmapquantized=quantizer.Quantize(thmbnail))
{
quantized.Save(“c: humnail.gif“,System.Drawing.Imaging.ImageFormat.Gif);
}
OctreeQuantizergrayquantizer=newGrayscaleQuantizer();
using(Bitmapquantized=grayquantizer.Quantize(thmbnail))
{
quantized.Save(“c: humnail.gif“,System.Drawing.Imaging.ImageFormat.Gif);
}
最终效果片以下(是否是大度多了?):
点击这里下载项目代码,修正namespace就能够在你本人的项目中利用它了。前天傍晚我发表了《Java的跨平台就是一句谎言。》,原本就是周末闲来无事,发表一篇略带争议性的博文让大家都来吵吵架,发表自己的看法,根本就没想着谁把谁打倒,一个行业或者是技术阵营是无法用短期口水仗打到对手的。 |
|