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();
                    }
                }             
                   
  • 相关阅读:
    JavaScript
    94.Binary Tree Inorder Traversal
    144.Binary Tree Preorder Traversal
    106.Construct Binary Tree from Inorder and Postorder Traversal
    105.Construct Binary Tree from Preorder and Inorder Traversal
    90.Subsets II
    78.Subsets
    83.Merge Sorted Array
    80.Remove Duplicates from Sorted Array II
    79.Word Search
  • 原文地址:https://www.cnblogs.com/caoyinglai/p/3228045.html
Copyright © 2011-2022 走看看