zoukankan      html  css  js  c++  java
  • 图片处理

      #region 图片处理
    
            /// <summary>
            /// 生成缩略图重载方法1,返回缩略图的Image对象
            /// </summary>
            /// <param name="Width">缩略图的宽度</param>
            /// <param name="Height">缩略图的高度</param>
            /// <returns>缩略图的Image对象</returns>
            public Image GetReducedImage(int Width, int Height)
            {
                try
                {
                    Image ResourceImage = Image.FromFile("");
    
                    //用指定的大小和格式初始化Bitmap类的新实例
                    Bitmap bitmap = new Bitmap(Width, Height, PixelFormat.Format32bppArgb);
                    //从指定的Image对象创建新Graphics对象
                    Graphics graphics = Graphics.FromImage(bitmap);
                    //清除整个绘图面并以透明背景色填充
                    graphics.Clear(Color.Transparent);
                    //在指定位置并且按指定大小绘制原图片对象
                    graphics.DrawImage(ResourceImage, new Rectangle(0, 0, Width, Height));
                    return bitmap;
                }
                catch (Exception e)
                {
                    
                    return null;
                }
            }
    
    
            /// <summary>
            /// 截取图片方法
            /// </summary>
            /// <param name="url">图片地址</param>
            /// <param name="beginX">开始位置-X</param>
            /// <param name="beginY">开始位置-Y</param>
            /// <param name="getX">截取宽度</param>
            /// <param name="getY">截取长度</param>
            /// <param name="fileName">文件名称</param>
            /// <param name="savePath">保存路径</param>
            /// <param name="fileExt">后缀名</param>
            public static string CutImage(string url, int beginX, int beginY, int getX, int getY, string fileName, string savePath, string fileExt)
            {
                if ((beginX < getX) && (beginY < getY))
                {
                    Bitmap bitmap = new Bitmap(url);//原图
                    if (((beginX + getX) <= bitmap.Width) && ((beginY + getY) <= bitmap.Height))
                    {
                        Bitmap destBitmap = new Bitmap(getX, getY);//目标图
                        Rectangle destRect = new Rectangle(0, 0, getX, getY);//矩形容器
                        Rectangle srcRect = new Rectangle(beginX, beginY, getX, getY);
    
                        Graphics.FromImage(destBitmap);
                        //Graphics.DrawImage(bitmap, destRect, srcRect, GraphicsUnit.Pixel);
    
                    
                        ImageFormat format = ImageFormat.Png;
                        switch (fileExt.ToLower())
                        {
                            case "png":
                                format = ImageFormat.Png;
                                break;
                            case "bmp":
                                format = ImageFormat.Bmp;
                                break;
                            case "gif":
                                format = ImageFormat.Gif;
                                break;
                        }
                        destBitmap.Save(savePath + "//" + fileName, format);
                        return savePath + "\" + "*" + fileName.Split('.')[0] + "." + fileExt;
                    }
                    else
                    {
                        return "截取范围超出图片范围";
                    }
                }
                else
                {
                    return "请确认(beginX < getX)&&(beginY < getY)";
                }
            }
    
            #endregion
    

      

  • 相关阅读:
    List of Examples Converting XNA 3.1 to XNA 4.0
    XNA程序开发常用到的一些代码汇总
    在WCF中使用Flag Enumerations
    能飞过海洋的却只有海鸥【转载】
    Variant类型转换成CString代码
    一种漂亮的自绘菜单
    转 在OpenCV中用cvCalibrateCamera2进行相机标定(附程序)
    COM组件设计与应用之VC6中用ATL写组件
    vc的菜单,工具栏
    (餐饮)写一些开店的经验转
  • 原文地址:https://www.cnblogs.com/lhlong/p/6275760.html
Copyright © 2011-2022 走看看