欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

C# 图片剪切与缩小的实例

时间:2021-11-04 10:01:47|栏目:.NET代码|点击:

复制代码 代码如下:

  public void CutToF(Stream stream)
            {
                Image initImage = Image.FromStream(stream, true);
                if (initImage.Width <= 480 && initImage.Height <= 480)
                {
                    initImage.Save("D://test.jpg", ImageFormat.Jpeg);
                }
                else
                {
                    int initWidth = initImage.Width;
                    int initHeight = initImage.Height;
                    if (initWidth != initHeight)
                    {
                        Image pickedImage = null;
                        Graphics pickedG = null;
                        if (initWidth > initHeight)
                        {
                            pickedImage = new Bitmap(initHeight, initHeight);
                            pickedG = Graphics.FromImage(pickedImage);
                            pickedG.InterpolationMode = InterpolationMode.HighQualityBicubic;
                            pickedG.SmoothingMode = SmoothingMode.HighQuality;
                            Rectangle fromR = new Rectangle(0, 0, initHeight, initHeight);//(initWidth - initHeight) / 2
                            Rectangle toR = new Rectangle(0, 0, initHeight, initHeight);
                            pickedG.DrawImage(initImage, fromR);
                            pickedImage.Save("D://jpg//test2.jpg");
                            initWidth = initHeight;
                        }
                        initImage = (Image)pickedImage.Clone();
                        pickedG.Dispose();
                        pickedImage.Dispose();
                        initImage.Save("D://jpg//test1.jpg");

                    }
                    Image resultImage = new Bitmap(150, 150);
                    Graphics resultG = Graphics.FromImage(resultImage);
                    resultG.InterpolationMode = InterpolationMode.HighQualityBicubic;
                    resultG.SmoothingMode = SmoothingMode.HighQuality;
                    resultG.Clear(Color.White);
                    resultG.DrawImage(initImage, new Rectangle(0, 0, 100, 100), new Rectangle(0, 0, initWidth, initHeight), GraphicsUnit.Pixel);

                    ImageCodecInfo[] icis = ImageCodecInfo.GetImageEncoders();
                    ImageCodecInfo ici = null;
                    foreach (ImageCodecInfo item in icis)
                    {
                        if (item.MimeType == "image/jpeg" || item.MimeType == "image/bmp" || item.MimeType == "image/png" || item.MimeType =="image/gif")
                        {
                            ici = item;
                        }
                    }
                    EncoderParameters ep = new System.Drawing.Imaging.EncoderParameters(1);
                    ep.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)100);
                    resultImage.Save("D://jpg//test.jpg", ici, ep);
                    ep.Dispose();
                    resultG.Dispose();
                    resultImage.Dispose();
                    initImage.Dispose();
                }
            }            
              

上一篇:C# byte数组与Image相互转换的方法

栏    目:.NET代码

下一篇:.net基础收集汇总

本文标题:C# 图片剪切与缩小的实例

本文地址:http://www.codeinn.net/misctech/182367.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有