亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

c#裁剪圖片后使用zxing生成二維碼示例分享

2020-01-24 02:52:33
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

/// <summary>
/// 生成二維碼
/// </summary>
/// <param name="fileName">生成二維碼路徑</param>
/// <param name="url">生成的內容</param>
/// <param name="width">二維碼寬</param>
/// <param name="height">二維碼高</param>
/// <param name="userFace">需生成的Logo圖片</param>
/// <returns></returns>
private Bitmap GetCodeImgUrl(string fileName, string url, int width, int height, string userFace)
{

    BarcodeWriter writer = new BarcodeWriter
    {
        Format = BarcodeFormat.QR_CODE,
        Renderer = new BitmapRenderer
        {
            Foreground = Color.Black
        },
        Options = new ZXing.QrCode.QrCodeEncodingOptions
        {
            DisableECI = true,
            Height = height,
            Width = width,
            Margin = 0,
            CharacterSet = "UTF-8",
            ErrorCorrection = ErrorCorrectionLevel.M
        }
    };

    Bitmap bitmap = writer.Write(url);
    if (!string.IsNullOrEmpty(userFace))
    {
        Bitmap bits = (System.Drawing.Bitmap)System.Drawing.Image.FromFile(userFace);
        if (bits != null)
        {                   
            //剪裁一個80*80的Logo圖片
            ImageCut img = new ImageCut(0, 0, 80, 80);
            System.Drawing.Bitmap icon = img.KiCut(bits);
            //userFace_b.jpg是一個邊框的圖片
            Bitmap bits2 = new System.Drawing.Bitmap((System.Drawing.Bitmap)System.Drawing.Image.FromFile(Application.StartupPath + "/user/userFace_b.jpg"), 84, 84);
            if (icon != null)
            {
                try
                { 
                    //畫了2個邊框,一個是logo,一個在logo周圍加了一個邊框
                    using (var graphics = System.Drawing.Graphics.FromImage(bitmap))
                    {
                        graphics.DrawImage(bits2, (bitmap.Width - bits2.Width) / 2, (bitmap.Height - bits2.Height) / 2);
                        graphics.DrawImage(icon, (bitmap.Width - icon.Width) / 2, (bitmap.Height - icon.Height) / 2);

                    }

                }
                catch (Exception ex)
                {

                }
                finally
                {
                    icon.Dispose();
                    GC.Collect();

                }
            }
            bitmap.Save(fileName, ImageFormat.Jpeg);
        }

    }

    return bitmap;
}

復制代碼 代碼如下:

public class ImageCut
  {

      /// <summary>
      /// 剪裁 -- 用GDI+
      /// </summary>
      /// <param name="b">原始Bitmap</param>
      /// <param name="StartX">開始坐標X</param>
      /// <param name="StartY">開始坐標Y</param>
      /// <param name="iWidth">寬度</param>
      /// <param name="iHeight">高度</param>
      /// <returns>剪裁后的Bitmap</returns>
      public Bitmap KiCut(Bitmap b)
      {
          if (b == null)
          {
              return null;
          }
          int w = b.Width;
          int h = b.Height;
          int intWidth = 0;
          int intHeight = 0;
          if (h * Width / w > Height)
          {
              intWidth = Width;
              intHeight = h * Width / w;

          }
          else if (h * Width / w < Height)
          {
              intWidth = w * Height / h;
              intHeight = Height;

          }
          else
          {
              intWidth = Width;
              intHeight = Height;
          }

          Bitmap bmpOut_b = new System.Drawing.Bitmap(b, intWidth, intHeight);
          w = bmpOut_b.Width;
          h = bmpOut_b.Height;
        

          if (X >= w || Y >= h)
          {
              return null;
          }

          if (X + Width > w)
          {
              Width = w - X;
          }
          else
          {
              X = (w-Width) / 2;
          }

          if (Y + Height > h)
          {
              Height = h - Y;
          }
        

 

          try
          {
              Bitmap bmpOut = new Bitmap(Width, Height, PixelFormat.Format24bppRgb);            
              Graphics g = Graphics.FromImage(bmpOut);
              g.DrawImage(bmpOut_b, new Rectangle(0, 0, Width, Height), new Rectangle(X, Y, Width, Height), GraphicsUnit.Pixel);
              g.Dispose();

              return bmpOut;
          }
          catch
          {
              return null;
          }
      }

      public int X = 0;
      public int Y = 0;
      public int Width = 120;
      public int Height = 120;
      public ImageCut(int x, int y, int width, int heigth)
      {
          X = x;
          Y = y;
          Width = width;
          Height = heigth;
      }
  }

復制代碼 代碼如下:

  private void btnSubmit_Click(object sender, EventArgs e)
        {
            string UserId = "1245460396";   

            string curFilePath = "/user/";

            string curFileName_b = "DimensionalPig_" + UserId + "_b";
            string path = Application.StartupPath + curFilePath;
            if (Directory.Exists(path) == false)//如果不存在就創建file文件夾
            {
                Directory.CreateDirectory(path);
            }
            string fileName_b = Application.StartupPath + curFilePath + "/" + curFileName_b + ".jpg";//獲得上傳文件名

            string UserUrl = string.Format("http://www.49028c.com/u{0}", UserId.Trim());
            string userFace_b = Application.StartupPath + "/user/" + UserId + "_b.jpg";

            Bitmap bitmap_b = GetCodeImgUrl(fileName_b.Replace("_b.", "_b_ewm."), UserUrl, 400, 400, userFace_b);
            this.p.Image =(System.Drawing.Image)bitmap_b;
this.p.Image.Save(fileName_b.Replace("_b.", "_b_ewm."));

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美另类国产| 亚洲无限乱码一二三四麻| 亚洲缚视频在线观看| 欧美在线观看网址综合| 国产亚洲一区二区精品| 成人av在线网址| 亚洲一区二区三区成人在线视频精品| 欧美国产日韩精品| 亚洲成人av片| 国产一区二区三区视频免费| 欧美精品成人91久久久久久久| 欧美激情xxxxx| 国产精品美女视频网站| 亚洲精品v欧美精品v日韩精品| 日韩网站免费观看| 久久九九国产精品怡红院| 成人黄色在线播放| 91老司机在线| 国产成人综合精品在线| 欧美在线视频一二三| 午夜精品久久久久久99热软件| 欧美大全免费观看电视剧大泉洋| 97视频在线观看免费| 97久久超碰福利国产精品…| 欧美在线一级视频| 国产欧美精品日韩| 午夜精品美女自拍福到在线| 亚洲欧美国产日韩中文字幕| 美女黄色丝袜一区| 国产剧情久久久久久| 欧美激情极品视频| 高清一区二区三区四区五区| 国产精品久久久久久一区二区| 日韩av免费网站| 国产精品视频久久久久| 国产精品aaaa| 毛片精品免费在线观看| 亚洲美女在线看| 精品视频中文字幕| 一区二区在线免费视频| 亚洲国产精品悠悠久久琪琪| 久久五月天综合| 久久久久久亚洲精品| 亚洲最新在线视频| 欧洲午夜精品久久久| 欧美黄色成人网| 中文日韩在线观看| 中文字幕欧美日韩精品| 中文字幕日韩欧美在线视频| 亚洲成年网站在线观看| 国产成人精品av在线| 亚洲区免费影片| 成人a免费视频| 91伊人影院在线播放| 国产精品入口尤物| 日韩在线视频中文字幕| 国产精品劲爆视频| 日韩中文在线视频| 国产69精品99久久久久久宅男| 欧美精品精品精品精品免费| 欧美在线免费视频| 韩国19禁主播vip福利视频| 中文字幕日韩精品在线观看| 国产不卡在线观看| 亚洲一区二区久久久久久| 中文字幕亚洲一区二区三区| 91中文在线观看| 久久久天堂国产精品女人| 色偷偷888欧美精品久久久| 在线观看国产精品淫| 国产精品一二三在线| 97视频在线观看视频免费视频| 91久久国产精品| 国产精品视频精品视频| 欧美日韩第一页| 国产精品亚洲综合天堂夜夜| 国产成人精品亚洲精品| 日韩激情第一页| 日本韩国在线不卡| 日韩av网站电影| 国产亚洲精品激情久久| 国产69精品久久久久9999| 伊人伊成久久人综合网站| 在线观看欧美www| 亚洲第一页在线| 欧美成人亚洲成人日韩成人| 亚洲天堂av综合网| 国产亚洲精品美女| 欧美激情久久久久| 欧美日韩在线免费观看| 91av中文字幕| 91精品国产91久久久久| 国产一区二区在线免费| 国产国产精品人在线视| 黑人巨大精品欧美一区免费视频| 久久6免费高清热精品| 欧美一级视频在线观看| 疯狂做受xxxx高潮欧美日本| 91av视频导航| 18一19gay欧美视频网站| 国产一区二区三区直播精品电影| 国产不卡av在线免费观看| 亚洲视屏在线播放| 久久理论片午夜琪琪电影网| 精品国产91久久久久久| 中文字幕亚洲综合久久筱田步美| 久久久久久国产精品三级玉女聊斋| 亚洲国产日韩欧美在线图片| 欧美日韩电影在线观看| 欧美制服第一页| 中文.日本.精品| 欧美日韩精品在线视频| 97免费中文视频在线观看| 日韩成人在线免费观看| 亚洲老板91色精品久久| 日韩成人在线视频网站| 欧美性xxxxx极品娇小| 在线播放国产一区二区三区| 最近2019中文免费高清视频观看www99| 日韩美女在线播放| 亚洲国产成人精品久久久国产成人一区| 亚洲娇小xxxx欧美娇小| 亚洲人av在线影院| 日韩有码在线视频| 亚洲最新av在线| 日韩电影中文字幕在线| 欧美一区二区三区艳史| 国产精品白嫩初高中害羞小美女| 国产精品免费福利| 亚洲人成电影网站色www| 欧美成人在线影院| 色综合天天综合网国产成人网| 亚洲字幕一区二区| 精品久久久一区二区| 97成人在线视频| 久久久免费精品视频| 亚洲va国产va天堂va久久| 亚洲激情小视频| 日韩h在线观看| 亚洲人成网站在线播| 国产精品久久久久久久av电影| 国产精品成人av性教育| 国产免费一区视频观看免费| 久久综合伊人77777| 亚洲欧美一区二区三区久久| 欧美一级bbbbb性bbbb喷潮片| 国产欧美日韩中文字幕在线| 欧美精品免费在线观看| 亚洲欧洲日产国码av系列天堂| 亚洲精品av在线播放| 97视频在线免费观看| 国产精品狼人色视频一区| 久久高清视频免费| 夜夜嗨av一区二区三区四区| 欧美激情一区二区久久久| 日韩av一卡二卡| 91久久久精品| 亚洲乱码一区二区| 91色视频在线导航| 日韩av一区在线| 欧美第一淫aaasss性| 久久久伊人日本| 国产视频亚洲精品| 欧美另类69精品久久久久9999|