C#图片截取块并画在画板上带白边框带添加文字,截取支付宝的付款码

版权声明:本文为博主原创文章,未经博主允许不得转载。转载请在文章结尾显眼处附带博主文章地址。 https://blog.csdn.net/qq_27559331/article/details/70773537

在项目中需要使用到截取支付宝的付款码,话不多说直接看图片

这里需要提取中间的付款码,听在下面加文字,当然这里的图片上的付款码换成了其他的二维码,换我自己二维码也没有人转账给我,还是不要暴露自己为好

就是这么个需求, 下面开始撸码

html部分

 <form action="Handler.ashx" method="post" enctype="multipart/form-data">           
        请选择文件:
    <input type="file" name="file1" value="" />
        <input type="submit" value="上传" />
    </form>

后端代码cs文件

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using System.Drawing;


public class Handler : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        string strmsg = "支付宝文字";
        if (context.Request.Files.Count > 0)
        {
            //1.接受用户上传的文件
            HttpPostedFile file = context.Request.Files[0];
            //判断文件后缀名 文件的ContentType是不是image开头的
            //file.FileName,file.ContentType="image"

            //2.根据用户上传的文件创建一个image对象,这个对象是用户上传的原图的对象
            using (Image imgbig = Image.FromStream(file.InputStream))
            {
                //3.再创建一个小图片(image对象),这个是一个缩略图
                using (Image imgSmall = new Bitmap(1068, 1168))   //生成文件的大小
                {
                    //4.基于小图片,创建一个“画布”
                    using (Graphics g = Graphics.FromImage(imgSmall))
                    {
                        //清除整个绘图面并以透明背景色填充
                        g.Clear(Color.White);
                        //5.把大图“画”到小图片上

                        //g.DrawImage(imgbig, 756, 1318, 968, 968);

                        Rectangle destRect = new Rectangle(50, 50, 968, 968);//显示图像的位置  50是白色边框  968是二维码大小
                        Rectangle srcRect = new Rectangle(756, 1318, 968, 968);//显示图像那一部分
                        GraphicsUnit units = GraphicsUnit.Pixel;//源矩形的度量单位设置为像素
                        g.DrawImage(imgbig, destRect, srcRect, units);
                        Font fromat = new Font("宋体", 30);
                        StringFormat format = new StringFormat();
                        format.Alignment = StringAlignment.Center;//水平对其


                        SizeF size = g.MeasureString(strmsg, fromat);   //   MeasureText(strmsg, new Font("宋体", 30));
                        float X = (1068- size.Width) / 2;
                        g.DrawString(strmsg, fromat, Brushes.Black, X, 1028);
                    }
                    //6.保持大图片,保持小图片
                    string GuidName = Guid.NewGuid().ToString();
                    imgbig.Save(context.Request.MapPath("imges/" + GuidName + "大图" + ".jpg"));
                    imgSmall.Save(context.Request.MapPath("imges/" + GuidName + "小图" + ".jpg"));
                    context.Response.Write("ok!");
                }
            }
        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

Demo下载

http://download.csdn.net/detail/qq_27559331/9825824

你有困难我帮忙,我住隔壁我姓王。----------------- 你隔壁的老王宣。

猜你喜欢

转载自blog.csdn.net/qq_27559331/article/details/70773537
今日推荐