ASP.NET编程:在.net中利用GDI+来进步gif图片的保留画...
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的跨平台就是一句谎言。》,原本就是周末闲来无事,发表一篇略带争议性的博文让大家都来吵吵架,发表自己的看法,根本就没想着谁把谁打倒,一个行业或者是技术阵营是无法用短期口水仗打到对手的。 对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源 但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。 我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
页:
[1]