当前位置: 首页 > 编程语言 > C#

调整图像gdi + graphics .net的大小分享

时间:2023-04-10 19:49:40 C#

C#学习教程:调整图像大小gdi+graphics.netintnewMaxWidth,intnewMaxHeight){图片img;使用(MemoryStreamoriginalImage=newMemoryStream(blogPhoto.BlogPhotoImage)){img=Image.FromStream(originalImage);}intnewWidth;诠释新高度;字节[]arr;如果(img.Width>img.Height){如果(img.Width<=newMaxWidth){使用(MemoryStreamthumbStr=newMemoryStream()){img.Save(thumbStr,ImageFormat.Jpeg);img.Dispose();arr=thumbStr.ToArray();}返回arr;}newWidth=newMaxWidth;newHeight=(int)(((float)newWidth/(float)img.Width)*(float)img.Height);}else{if(img.Height<=newMaxHeight){使用(MemoryStreamthumbStr=newMemoryStream()){img.Save(thumbStr,ImageFormat.Jpeg);img.Dispose();arr=thumbStr.ToArray();}返回arr;}newHeight=newMaxHeight;newWidth=(int)(((float)newHeight/(float)img.Height)*(float)img.Width);}Imagethumb=newBitmap(newWidth,newHeight);图形g=Graphics.FromImage(拇指);g.InterpolationMode=InterpolationMode.HighQualityBicubic;g.SmoothingMode=SmoothingMode.HighQuality;.CompositingQuality=CompositingQuality.HighQuality;g.DrawImage(img,0f,0f,(float)newWidth,(float)newHeight);使用(MemoryStreamthumbStr=newMemoryStream()){thumb.Save(thumbStr,ImageFormat.Jpeg);arr=thumbStr.ToArray();}g.Dispose();img.Dispose();返回arr;大多数时候它工作正常,但有时它会给我这个异常:GDI+错误代码-2147467259中发生一般错误。资料来源:“System.Drawing”。这发生在Image.Save(...我试图使这段代码尽可能具有防御性,但仍然不明白是什么原因造成的。如果有人知道答案会很好,那么欢迎批评。查看Image.FromStream()的文档http://sofzh.miximages.com/c%23/){using(MemoryStreamthumbData=newMemoryStream()){intnewWidth;诠释新高度;如果((original.Width=newMaxWidth)(original.Height=newMaxHeight)){original.Save(thumbData,ImageFormat.Jpeg);返回thumbData.ToArray();}if(original.Width>original.Height){newWidth=newMaxWidth;newHeight=(int)(((float)newWidth/(float)original.Width)*(float)original.Height);}else{newHeight=newMaxHeight;newWidth=(int)(((float)newHeight/(float)original.Height)*(float)original.Width);}//original.GetThumbnailImage(newWidth,newHeight,null,IntPtr.Zero)//.Save(thumbData,ImageFormat.Jpeg);//返回thumbData.ToArray();使用(Imagethumb=newBitmap(newWidth,newHeight)){Graphicsg=Graphics.FromImage(thumb);g.InterpolationMode=InterpolationMode.HighQualityBicubic;g.SmoothingMode=SmoothingMode.HighQuality;g.PixelOffsetMode=PixelOffsetMode.HighQuality;g.CompositingQuality=CompositingQuality.HighQuality;g.DrawImage(原始,0f,0f,(float)newWidth,(float)newHeight);thumb.Save(thumbData,ImageFormat.Jpeg);以上就是C#学习教程:调整图片大小gdi+图形.net分享的所有内容,如果对你有用还需要了解更多C#学习教程,希望大家多多付出注意它。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: