SourceCode/RFrameGenerate.Common/QrCodeHelper.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Gma.QrCodeNet.Encoding;
using Gma.QrCodeNet.Encoding.Windows.Render;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Web;
namespace RFrameGenerate.Common
{
    public class QrCodeHelper
    {
        public static bool GenerationQrCode(string value, string text, string filename)
        {
            try
            {
                QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M);
                QrCode qrCode = qrEncoder.Encode(value);

                GraphicsRenderer gRender = new GraphicsRenderer(new FixedModuleSize(15, QuietZoneModules.Four));

                using (MemoryStream mstream = new MemoryStream())
                {
                    gRender.WriteToStream(qrCode.Matrix, ImageFormat.Png, mstream, new Point(400, 400));

                    using (var img = Image.FromStream(mstream))
                    {
                        if (System.IO.Directory.Exists(Path.GetDirectoryName(filename)) != true)
                            System.IO.Directory.CreateDirectory(Path.GetDirectoryName(filename));

                        img.Save(filename);
                        //ImageWaterMarkText(img, filename, text, 7, 100, "宋体", 40);zhou 2016/4/15 屏蔽 越压缩越大
                    }
                }

                return true;
            }
            catch
            {
                return false;
            }
        }

        public static void ImageWaterMarkText(Image img, string filename, string watermarkText, int watermarkStatus, int quality, string fontname, int fontsize)
        {
            Graphics g = Graphics.FromImage(img);
            Font drawFont = new Font(fontname, fontsize, FontStyle.Regular, GraphicsUnit.Pixel);
            SizeF crSize;
            crSize = g.MeasureString(watermarkText, drawFont);

            float xpos = ((float)img.Width * (float).50) - (crSize.Width / 2);
            float ypos = ((float)img.Height * (float).99) - crSize.Height;
            
            g.DrawString(watermarkText, drawFont, new SolidBrush(Color.Black), xpos, ypos);

            ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
            ImageCodecInfo ici = null;
            foreach (ImageCodecInfo codec in codecs)
            {
后面还有 26 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。