zoukankan      html  css  js  c++  java
  • 将图像转换成一个图标

    /// <summary>
            /// Converts an image into an icon.
            /// 将图像转换成一个图标
            /// </summary>
            /// <param name="img">The image that shall become an icon</param>
            /// <param name="size">The width and height of the icon. Standard
            /// sizes are 16x16, 32x32, 48x48, 64x64.</param>
            /// <param name="keepAspectRatio">Whether the image should be squashed into a
            /// square or whether whitespace should be put around it.</param>
            /// <returns>An icon!!</returns>
            public static Icon ConvertIcon(Image img, int size, bool keepAspectRatio)
            {
                if (img == null)
                    return null;
     
                Bitmap square = new Bitmap(size, size); // create new bitmap
                Graphics g = Graphics.FromImage(square); // allow drawing to it
                int x, y, w, h; // dimensions for new image
                if (!keepAspectRatio || img.Height == img.Width)
                {
                    // just fill the square
                    x = y = 0; // set x and y to 0
                    w = h = size; // set width and height to size
                }
                else
                {
                    // work out the aspect ratio
                    float r = (float)img.Width / (float)img.Height;
     
                    // set dimensions accordingly to fit inside size^2 square
                    if (r > 1)
                    { // w is bigger, so divide h by r
                        w = size;
                        h = (int)((float)size / r);
                        x = 0; y = (size - h) / 2; // center the image
                    }
                    else
                    { // h is bigger, so multiply w by r
                        w = (int)((float)size * r);
                        h = size;
                        y = 0; x = (size - w) / 2; // center the image
                    }
                }
     
                // make the image shrink nicely by using HighQualityBicubic mode
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                g.DrawImage(img, x, y, w, h); // draw image with specified dimensions
                g.Flush(); // make sure all drawing operations complete before we get the icon
                // following line would work directly on any image, but then
                // it wouldn't look as nice.
                return Icon.FromHandle(square.GetHicon());
            }
  • 相关阅读:
    关于ArcMap中的地图文档单位
    洛谷—— P2983 [USACO10FEB]购买巧克力Chocolate Buying
    COGS——T 826. [Tyvj Feb11] GF打dota
    洛谷—— P1855 榨取kkksc03
    洛谷—— P2663 越越的组队
    COGS——T 1578. 次小生成树初级练习题
    Django中间件
    March 7 2017 Week 10 Tuesday
    March 6 2017 Week 10 Monday
    March 5 2017 Week 10 Sunday
  • 原文地址:https://www.cnblogs.com/hdl217/p/2256437.html
Copyright © 2011-2022 走看看