微信小程序碼中間Logo修改


步驟:

1.用微信小程序提供的接口獲取小程序碼

   appId, secret-》access_token

   access_token-》二維碼(https://developers.weixin.qq.com/miniprogram/dev/api/qrcode.html) 注意這邊有個參數是圖片的大小,暫定為Size:1080

2.本地准備一張圖片,不過因為小程序中間LOGO是圓形的,所以需要處理一下

 1  /// <summary>
 2         /// 圖片處理為圓形
 3         /// </summary>
 4         /// <param name="img"></param>
 5         /// <param name="rec"></param>
 6         /// <param name="size"></param>
 7         /// <returns></returns>
 8         public static Image CutEllipse(Image img, Rectangle rec, Size size)
 9         {
10             Bitmap bitmap = new Bitmap(size.Width, size.Height);
11             using (Graphics g = Graphics.FromImage(bitmap))
12             {
13                 using (TextureBrush br = new TextureBrush(img, System.Drawing.Drawing2D.WrapMode.Clamp, rec))
14                 {
15                     br.ScaleTransform(bitmap.Width / (float)rec.Width, bitmap.Height / (float)rec.Height);
16                     g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
17                     g.FillEllipse(br, new Rectangle(Point.Empty, size));
18                 }
19             }
20             return bitmap;
21         }

這邊注意的就是圖片的寬度和高度(也就是半徑)必須是上面二維碼大小的一半(Size/2),才能完美覆蓋

3.之后就是把圖片畫在獲取的二維碼上

 /// <summary>
        /// 調用此函數后使此兩種圖片合並,類似相冊,有個
        /// 背景圖,中間貼自己的目標圖片
        /// </summary>
        /// <param name="imgBack">粘貼的源圖片</param>
        /// <param name="destImg">粘貼的目標圖片</param>
        public static Image CombinImage(Image imgBack, Image img,int r)
        {
            //string destImg
           // Image img = Image.FromFile(destImg);    //照片圖片
            if (img.Height != r || img.Width != r)
            {
                img = KiResizeImage(img, r, r, 0);
            }
            img = CutEllipse(img, new Rectangle(0, 0, r, r), new Size(r, r));
            Graphics g = Graphics.FromImage(imgBack);
            g.DrawImage(imgBack, 0, 0, imgBack.Width, imgBack.Height);   //g.DrawImage(imgBack, 0, 0, 相框寬, 相框高);
                                                                         //g.FillRectangle(System.Drawing.Brushes.White, imgBack.Width / 2 - img.Width / 2 - 1, imgBack.Width / 2 - img.Width / 2 - 1,1,1);//相片四周刷一層黑色邊框
                                                                         //g.DrawImage(img, 照片與相框的左邊距, 照片與相框的上邊距, 照片寬, 照片高);
            g.DrawImage(img, imgBack.Width / 2 - img.Width / 2, imgBack.Width / 2 - img.Width / 2, img.Width, img.Height);
            GC.Collect();
            return imgBack;
        }

之后就可以得到以下:

經過我塗改的圖片

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM