zoukankan      html  css  js  c++  java
  • C# 剪切图和缩小

                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();
                    }
                }
    wangliuzheng1990@126.com
  • 相关阅读:
    -Dmaven.test.skip=true 和 -DskipTests
    mysql 生成指定范围随机数
    Delphi 6 保存窗体设置
    Sql server left join,right join和inner join的比较
    Mysql配置文件my.ini详解
    网络游戏MMORPG服务器架构
    彻底删除SVN版本库中部分文件或文件夹
    高负载高并发应用 参考索引 地址
    Linux计划任务入门详解
    Linux下SVN的三种备份方式
  • 原文地址:https://www.cnblogs.com/wangliuzheng/p/3007563.html
Copyright © 2011-2022 走看看