C#无损压缩图片
话不多说,请看代码:
//////根据指定尺寸得到按比例缩放的尺寸,返回true表示以更改尺寸 /// ///图片宽度 /// 图片高度 /// 指定宽度 ////// 指定高度 /// 返回true表示以更改尺寸 privateboolGetPicZoomSize(refintpicWidth,refintpicHeight,intspecifiedWidth,intspecifiedHeight) { intsW=0,sH=0; BooleanisZoomSize=false; //按比例缩放 Sizetem_size=newSize(picWidth,picHeight); if(tem_size.Width>specifiedWidth||tem_size.Height>specifiedHeight)//将**改成c#中的或者操作符号 { if((tem_size.Width*specifiedHeight)>(tem_size.Height*specifiedWidth)) { sW=specifiedWidth; sH=(specifiedWidth*tem_size.Height)/tem_size.Width; } else { sH=specifiedHeight; sW=(tem_size.Width*specifiedHeight)/tem_size.Height; } isZoomSize=true; } else { sW=tem_size.Width; sH=tem_size.Height; } picHeight=sH; picWidth=sW; returnisZoomSize; } //////无损压缩图片 /// ///原图片 /// 压缩后保存位置 /// 高度 /// 宽度 /// 压缩质量1-100 /// publicboolGetPicThumbnail(stringsFile,stringdFile,intdHeight,intdWidth,intflag) { System.Drawing.ImageiSource=System.Drawing.Image.FromFile(sFile); ImageFormattFormat=iSource.RawFormat; intsW=iSource.Width,sH=iSource.Height; GetPicZoomSize(refsW,refsH,dWidth,dHeight); Bitmapob=newBitmap(dWidth,dHeight); Graphicsg=Graphics.FromImage(ob); g.Clear(Color.WhiteSmoke); g.CompositingQuality=CompositingQuality.HighQuality; g.SmoothingMode=SmoothingMode.HighQuality; g.InterpolationMode=InterpolationMode.HighQualityBicubic; g.DrawImage(iSource,newRectangle((dWidth-sW)/2,(dHeight-sH)/2,sW,sH),0,0,iSource.Width,iSource.Height,GraphicsUnit.Pixel); g.Dispose(); //以下代码为保存图片时,设置压缩质量 EncoderParametersep=newEncoderParameters(); long[]qy=newlong[1]; qy[0]=flag;//设置压缩的比例1-100 EncoderParametereParam=newEncoderParameter(System.Drawing.Imaging.Encoder.Quality,qy); ep.Param[0]=eParam; try { ImageCodecInfo[]arrayICI=ImageCodecInfo.GetImageEncoders(); ImageCodecInfojpegICIinfo=null; for(intx=0;x 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!