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

如何在.NET中按比例调整任何类型图像的大小?Share

时间:2023-04-10 13:24:40 C#

如何在.NET中按比例调整任何类型的图像的大小?能否以独立于图像类型(bmp、jpg、png等)的方式按比例调整图像大小?我有这段代码,知道缺少什么(但不确定是什么):publicboolResizeImage(stringfileName,stringimgFileName,ImageFormatformat,intwidth,intheight){try{using(Imageimg=Image.FromFile(fileName)){ImagethumbNail=newBitmap(width,height,img.PixelFormat);图形g=图形。从图像(缩略图);G。合成质量=合成质量。高质量;G。平滑模式=平滑模式。高质量;G。插值模式=插值模式。高品质双三次;矩形rect=newRectangle(0,0,width,height);g.DrawImage(img,rect);thumbNail.Save(imgFileName,格式);}返回真;}赶上(异常){返回假;如果不可能,我该如何重新缩放jpeg图像?我知道使用这种方法,但不知道在哪里(!)。首先,您没有获取图像的当前高度和宽度。为了按比例调整大小,您需要获取图像的当前高度/宽度并根据它调整大小。从那里找到最大的属性并根据它按比例调整大小。例如,假设当前图像为800x600,而您希望在400x400空间内按比例调整大小。抓住最大的比例(800)并找到它与新尺寸的比率。800->400=.5现在取该比率并乘以第二个维度(600*.5=300)。您的新尺寸是400x300。这是一个PHP示例(抱歉...您会明白的)$thumb_width=400;$thumb_height=400;$orig_w=imagesx($src_img);$orig_h=imagesy($src_img);if($orig_w>$orig_h){//找到更大的比例$ratio=$thumb_width/$orig_w;$thumb_height=$orig_h*$ratio;}else{$ratio=$thumb_height/$orig_h;$thumb_width=$orig_w*$比率;我认为你的代码很好,但考虑到参数width和height是我认为你出错的地方。为什么此方法的调用者必须决定他们想要的宽度和高度的大小?我建议改成百分比:以上是C#学习教程:Howtoproportionallyresizeanytypeofimagein.NET?如果分享的内容对你有用,需要进一步了解C#学习教程,希望你多多关注——publicboolResizeImage(stringfileName,stringimgFileName,ImageFormatformat,intpercent){try{using(Imageimg=Image.FromFile(fileName)){intwidth=img.Width*(percent*.01);intheight=img.Height*(percent*.01);图片thumbNail=newBitmap(width,height,img.PixelFormat);Graphicsg=Graphics.FromImage(thumbNail);g.CompositingQuality=CompositingQuality.HighQuality;g.SmoothingMode=SmoothingMode.HighQuality;g.InterpolationMode=InterpolationMode.HighQualityBicubic;矩形rect=newRectangle(0,0,width,height);g.DrawImage(img,rect);thumbNail.Save(imgFileName,格式);}返回真;}赶上(异常){返回假;}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理会员删除。如需转载请注明出处: