2019-02-19 10:59:57 qq_42817227 阅读数 464
  • 微信公众平台深度开发v2.0第3季——二维码、模板消息

    “微信公众平台深度开发Java版 v2.0”系列课程共有6季,使用JAVA语言,系统讲解微信公众平台订阅号、服务号官方列出的全部功能接口,包括:自定义菜单、个性化菜单(按需定制菜单)、群发消息、客服消息(有限次消息推送)、模板消息接(无限次消息推送)、微信网页开发(微信WEB开发、微信游戏)、微信JSSDK开发、用户管理、获取用户基本信息、网页授权获取用户基本信息(通过WEB得到用户信息)、二维码(临时二维码、永久二维码)、事件推送、接收普通消息、被动回复用户消息,等知识点。 以及,针对微信公众号开发的服务端架构设计方案。课程以微信公众号开发视角,讲解JAVA开发微信公众号所需的框架、第三方工具。 购买套餐还赠送经典微信开发课程——[微信公众号_独立知识点]环境搭建。该课程针对各种复杂的网络环境,讲解如何构建开发环境,已解决“没有服务器”、“没有固定IP”等开发者遇到的窘境。 课程采用独立知识点讲解,一个知识点,一组课程,真正做到“简单、高效、”以短的时间、实现的学习。更多课程信息请访问CSDN。网址:http://edu.csdn.net/lecturer/631 “微信公众平台企业号开发Java版”陆续上线。 详情 qq2326321088

    10262 人正在学习 去看看 翟东平

初心-杨瑞超个人博客诚邀您加入qq群(IT-程序猿-技术交流群): 757345416丨(IT-程序猿-技术交流2群): 936929828

现在的互联网时代,二维码处处可见,这次我们研究下二维码生成插件qrious

二维码百科:

二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。

二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。

使用qrious:

1、引入

注:可进入BootCDN选择任意版本即可

<script src="https://cdn.bootcss.com/qrious/4.0.2/qrious.min.js"></script>

2、源码

<html>

<head>
    <title>qrious二维码生成插件demo(www.chao99.top)</title>
</head>

<body>
    <img id="qrious">
    <script src="https://cdn.bootcss.com/qrious/4.0.2/qrious.min.js"></script>
    <script>
        const qr = new QRious({
            element: document.getElementById('qrious'),
            size: 266,
            level: 'H',
            value: 'http://www.chao99.top'
        });
    </script>
</body>

</html>

3、效果

在这里插入图片描述

4、二维码优势:

1、信息容量大, 可以容纳多达1850个大写字母或2710个数字或500多个汉字
2、应用范围广, 支持文字,声音,图片,指纹等等…
3、容错能力强, 即使图片出现部分破损也能使用
4、成本低, 容易制作
5、易用

5、二维码容错级别:

L级(低) 7%的码字可以被恢复
M级(中) 的码字的15%可以被恢复
Q级(四分)的码字的25%可以被恢复
H级(高) 的码字的30%可以被恢复

6、qrious配置参数:

qrious是一款基于HTML5 Canvas的纯JS二维码生成插件。通过qrious.js可以快速生成各种二维码,你可以控制二维码的尺寸颜色,还可以将生成的二维码进行Base64编码。

参数 类型 默认值 描述
background string “white” 二维码的背景颜色
foreground string “black” 二维码的前景颜色
level string “L” 二维码的误差校正级别(L, M, Q, H)。
mime string “image/png” 二维码输出为图片时的MIME类型。
size number 100 二维码的尺寸,单位像素。

文章到此结束,希望对你的学习有帮助!

2016-07-13 00:13:12 llyouss 阅读数 3319
  • 微信公众平台深度开发v2.0第3季——二维码、模板消息

    “微信公众平台深度开发Java版 v2.0”系列课程共有6季,使用JAVA语言,系统讲解微信公众平台订阅号、服务号官方列出的全部功能接口,包括:自定义菜单、个性化菜单(按需定制菜单)、群发消息、客服消息(有限次消息推送)、模板消息接(无限次消息推送)、微信网页开发(微信WEB开发、微信游戏)、微信JSSDK开发、用户管理、获取用户基本信息、网页授权获取用户基本信息(通过WEB得到用户信息)、二维码(临时二维码、永久二维码)、事件推送、接收普通消息、被动回复用户消息,等知识点。 以及,针对微信公众号开发的服务端架构设计方案。课程以微信公众号开发视角,讲解JAVA开发微信公众号所需的框架、第三方工具。 购买套餐还赠送经典微信开发课程——[微信公众号_独立知识点]环境搭建。该课程针对各种复杂的网络环境,讲解如何构建开发环境,已解决“没有服务器”、“没有固定IP”等开发者遇到的窘境。 课程采用独立知识点讲解,一个知识点,一组课程,真正做到“简单、高效、”以短的时间、实现的学习。更多课程信息请访问CSDN。网址:http://edu.csdn.net/lecturer/631 “微信公众平台企业号开发Java版”陆续上线。 详情 qq2326321088

    10262 人正在学习 去看看 翟东平

二维码生成器二维码扫描

一)二维码生成器

下载demo:http://download.csdn.net/detail/llyouss/9574521


1.导入库文件libqrencode)

       配置:开启这个HAVE_CONFIG_H宏定义 如下图

       build settings--> Preprocessor Macros ->添加HAVE_CONFIG_H” 值

2.导入QRCodeGenerator.m/QRCodeGenerator.h文件

3.二维码生成调用例子

     #import "QRCodeGenerator.h”

 

 
UIImage *image = [QRCodeGenerator qrImageForString:@"www.baidu.com" imageSize:200];
     [self.qrCodeImageView setImage:image];



二) 二维码扫描


下载demo:http://download.csdn.net/detail/llyouss/9574523


1.导入类SYQRCodeViewController.h/SYQRCodeViewController.m


2.调用

 #import "SYQRCodeViewController.h"

<span style="font-size:18px;">//打开摄像头并扫描
- (IBAction)saomiaoAction:(id)sender
{
    //扫描二维码
    SYQRCodeViewController *qrcodevc = [[SYQRCodeViewController alloc] init];
    qrcodevc.SYQRCodeSuncessBlock = ^(SYQRCodeViewController *aqrvc,NSString *qrString){
        self.saomiaoLabel.text = qrString;
        [aqrvc dismissViewControllerAnimated:NO completion:nil];
    };
    qrcodevc.SYQRCodeFailBlock = ^(SYQRCodeViewController *aqrvc){
        self.saomiaoLabel.text = @"fail~";
        [aqrvc dismissViewControllerAnimated:NO completion:nil];
    };
    qrcodevc.SYQRCodeCancleBlock = ^(SYQRCodeViewController *aqrvc){
        [aqrvc dismissViewControllerAnimated:NO completion:nil];
        self.saomiaoLabel.text = @"cancle~";
    };
    [self presentViewController:qrcodevc animated:YES completion:nil];
}
</span>






           

2018-01-09 23:30:03 scimence 阅读数 4065
  • 微信公众平台深度开发v2.0第3季——二维码、模板消息

    “微信公众平台深度开发Java版 v2.0”系列课程共有6季,使用JAVA语言,系统讲解微信公众平台订阅号、服务号官方列出的全部功能接口,包括:自定义菜单、个性化菜单(按需定制菜单)、群发消息、客服消息(有限次消息推送)、模板消息接(无限次消息推送)、微信网页开发(微信WEB开发、微信游戏)、微信JSSDK开发、用户管理、获取用户基本信息、网页授权获取用户基本信息(通过WEB得到用户信息)、二维码(临时二维码、永久二维码)、事件推送、接收普通消息、被动回复用户消息,等知识点。 以及,针对微信公众号开发的服务端架构设计方案。课程以微信公众号开发视角,讲解JAVA开发微信公众号所需的框架、第三方工具。 购买套餐还赠送经典微信开发课程——[微信公众号_独立知识点]环境搭建。该课程针对各种复杂的网络环境,讲解如何构建开发环境,已解决“没有服务器”、“没有固定IP”等开发者遇到的窘境。 课程采用独立知识点讲解,一个知识点,一组课程,真正做到“简单、高效、”以短的时间、实现的学习。更多课程信息请访问CSDN。网址:http://edu.csdn.net/lecturer/631 “微信公众平台企业号开发Java版”陆续上线。 详情 qq2326321088

    10262 人正在学习 去看看 翟东平

网页生成二维码:

http://scimence.gitee.io/url/QRTool.html?待生成二维码的数据

 

 

 

二维码工具。生成、解析二维码。

使用方法:
1. 拖动任意二维码图像至工具,即可自动解析
2. 输入二维码链接地址,自动生成二维码图像。右键->保存。

工具下载

工具源码下载

 

工具核心源码:

 

//生成二维码:
Bitmap pic = QRTool.Form_QR.ToQR("url"); 	// 生成二维码
QRTool.Form_QR.Save(pic);              		// 保存图像

//解析二维码:
String url = QRTool.ToCode(pic);
using Gma.QrCodeNet.Encoding;
using Gma.QrCodeNet.Encoding.Windows.Render;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Yc.QrCodeLib;
using Yc.QrCodeLib.Data;

namespace QRTool
{
    public partial class Form_QR : Form
    {
        public Form_QR()
        {
            InitializeComponent();
        }


        #region Form_QR相关事件逻辑

        bool update = true;
        /// <summary>
        /// url地址变动,更新二维码显示
        /// </summary>
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (update)
            {
                String url = textBox1.Text;
                if (!url.Equals(""))
                {
                    Bitmap pic = ToQR(url);
                    pictureBox1.Image = pic;
                }
            }
        }

        private void panel1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))    //判断拖来的是否是文件  
                e.Effect = DragDropEffects.Link;                //是则将拖动源中的数据连接到控件  
            else e.Effect = DragDropEffects.None;
        }

        /// <summary>
        /// 二维码图像变动,解析url地址到输入框
        /// </summary>
        private void panel1_DragDrop(object sender, DragEventArgs e)
        {
            Array files = (System.Array)e.Data.GetData(DataFormats.FileDrop);//将拖来的数据转化为数组存储
            foreach (object I in files)
            {
                try
                {
                    string str = I.ToString();
                    Image pic = Bitmap.FromFile(str);
                    pictureBox1.Image = pic;

                    // 解析二维码图像
                    update = false;
                    String code = ToCode(new Bitmap(pic));
                    textBox1.Text = code;
                    update = true;

                    break;
                }
                catch (Exception ex) { }
            }
        }

        /// <summary>
        /// 保存图像
        /// </summary>
        private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            linkLabel1.Visible = true;
            if (pictureBox1.Image != null)
            {
                Bitmap pic = new Bitmap(pictureBox1.Image);

                String filepath = Save(pic);
                linkLabel1.Text = "二维码已保存:" + filepath;
            }
            else linkLabel1.Text = "";
        }

        /// <summary>
        /// 在文件浏览器中显示已保存的二维码图像文件
        /// </summary>
        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            String dir = curDir() + "QR\\";
            String name = linkLabel1.Text.Substring("二维码已保存:".Length);
            ShowFileInExplorer(dir + name);

            linkLabel1.Visible = false;
        }

        private void 跳转二维码地址ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!textBox1.Text.Equals("")) System.Diagnostics.Process.Start(textBox1.Text);
        }

        #endregion


        #region 二维码功能函数

        /// <summary>
        /// 获取链接地址对应的二维码图像
        /// </summary>
        public static Bitmap ToQR(String url)
        {
            QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.M);
            QrCode qrCode = qrEncoder.Encode(url);

            GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two), Brushes.Black, Brushes.White);
            DrawingSize size = render.SizeCalculator.GetSize(qrCode.Matrix.Width);
            Bitmap pic = new Bitmap(size.CodeWidth, size.CodeWidth);
            Graphics g = Graphics.FromImage(pic);

            render.Draw(g, qrCode.Matrix);

            return pic;
        }

        /// <summary>
        /// 将二维码图像转化为编码串
        /// </summary>
        public static string ToCode(Bitmap pic)
        {
            QRCodeDecoder decoder = new QRCodeDecoder();
            String decodedString = decoder.decode(new QRCodeBitmapImage(pic));

            return decodedString;
        }

        # endregion


        #region 其他相关功能函数

        /// <summary>
        /// 保存图像返回文件名
        /// </summary>
        public static String Save(Bitmap pic)
        {
            String path = curDir() + "QR\\";
            checkDir(path);

            String name = DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".png";
            Save(pic, path + name);

            return name;
        }

        /// <summary>
        /// 保存图像
        /// </summary>
        public static void Save(Bitmap pic, String filePath)
        {
            if (File.Exists(filePath)) File.Delete(filePath);
            pic.Save(filePath, ImageFormat.Png);
        }

        /// <summary>
        /// 获取当前运行路径
        /// </summary>
        public static string curDir()
        {
            return AppDomain.CurrentDomain.BaseDirectory;
        }

        /// <summary>
        /// 检测目录是否存在,若不存在则创建
        /// </summary>
        public static void checkDir(string path)
        {
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
        }

        /// <summary>
        /// 在文件浏览器中显示指定的文件
        /// </summary>
        public static void ShowFileInExplorer(String file)
        {
            if (File.Exists(file)) System.Diagnostics.Process.Start("explorer.exe", "/e,/select, " + file);
            else System.Diagnostics.Process.Start("explorer.exe", "/e, " + file);
        }

        #endregion


    }
}

 

 

 

2017-01-16 14:33:54 Android_Cll 阅读数 12650
  • 微信公众平台深度开发v2.0第3季——二维码、模板消息

    “微信公众平台深度开发Java版 v2.0”系列课程共有6季,使用JAVA语言,系统讲解微信公众平台订阅号、服务号官方列出的全部功能接口,包括:自定义菜单、个性化菜单(按需定制菜单)、群发消息、客服消息(有限次消息推送)、模板消息接(无限次消息推送)、微信网页开发(微信WEB开发、微信游戏)、微信JSSDK开发、用户管理、获取用户基本信息、网页授权获取用户基本信息(通过WEB得到用户信息)、二维码(临时二维码、永久二维码)、事件推送、接收普通消息、被动回复用户消息,等知识点。 以及,针对微信公众号开发的服务端架构设计方案。课程以微信公众号开发视角,讲解JAVA开发微信公众号所需的框架、第三方工具。 购买套餐还赠送经典微信开发课程——[微信公众号_独立知识点]环境搭建。该课程针对各种复杂的网络环境,讲解如何构建开发环境,已解决“没有服务器”、“没有固定IP”等开发者遇到的窘境。 课程采用独立知识点讲解,一个知识点,一组课程,真正做到“简单、高效、”以短的时间、实现的学习。更多课程信息请访问CSDN。网址:http://edu.csdn.net/lecturer/631 “微信公众平台企业号开发Java版”陆续上线。 详情 qq2326321088

    10262 人正在学习 去看看 翟东平

-----------------转载请注明出处:http://blog.csdn.net/android_cll

一:先上效果图、


二:实现步骤、

1.xml的实现、

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#f0f0f0"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="49dp"
        android:background="#ffffff">

        <ImageView
            android:id="@+id/imgfh"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:padding="5dp"
            android:src="@drawable/farm_nav_fanhui" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="优惠券"
            android:textColor="#333333"
            android:textSize="18dp" />

    </RelativeLayout>

    <View
        android:layout_width="fill_parent"
        android:layout_height="0.5dp"
        android:background="#d9dad7" />

    <View
        android:layout_width="fill_parent"
        android:layout_height="9dp"
        android:background="#f0f0f0" />

    <View
        android:layout_width="fill_parent"
        android:layout_height="0.5dp"
        android:background="#e6e6e6" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="49dp"
        android:background="#ffffff">

        <ImageView
            android:id="@+id/juan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="12dp"
            android:src="@drawable/haojuan_saoma_icon" />

        <TextView
            android:id="@+id/titlezhe"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="5dp"
            android:layout_toRightOf="@+id/juan"
            android:text="七天连锁酒店7.5折优惠券"
            android:textColor="#262626"
            android:textSize="16dp" />
    </RelativeLayout>

    <View
        android:layout_width="fill_parent"
        android:layout_height="0.5dp"
        android:background="#e6e6e6" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="36dp"
        android:background="#ffffff"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="12dp"
            android:text="有效期:"
            android:textColor="#808080"
            android:textSize="14dp" />

        <TextView
            android:id="@+id/yxtime"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="2016.12.30-2017.1.16"
            android:textColor="#808080"
            android:textSize="14dp" />
    </LinearLayout>

    <View
        android:layout_width="fill_parent"
        android:layout_height="0.5dp"
        android:background="#e6e6e6" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="228dp"
        android:background="#ffffff">

        <RelativeLayout
            android:id="@+id/relativeLayout1"
            android:layout_width="165dp"
            android:layout_height="165dp"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="22dp"
            android:background="@drawable/sjzsewm">

            <ImageView
                android:id="@+id/img"
                android:layout_width="150dp"
                android:layout_height="150dp"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true" />

        </RelativeLayout>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/relativeLayout1"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="10dp"
            android:text="向商家出示扫码即可消费"
            android:textColor="#343434"
            android:textSize="14dp" />

    </RelativeLayout>

    <View
        android:layout_width="fill_parent"
        android:layout_height="0.5dp"
        android:background="#e6e6e6" />

</LinearLayout>
2.二维码外围转角、

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 背景颜色 -->
    <solid android:color="#ffffff" />

    <!-- 控制边界线颜色和大小 -->
    <stroke
        android:width="1dp"
        android:color="#e6e6e6" />

    <!-- 控制圆角大小 -->
    <corners android:radius="4dp" />

</shape>
3.activity的实现、

package com.zjtd.bzcommunity.activity;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.os.Environment;
import android.view.Gravity;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.zjtd.bzcommunity.R;

import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Calendar;
import java.util.Date;

/**
 * Created by Administrator on 2017/1/16.
 * 优惠券扫描
 */
public class YhqsmActivity extends Activity implements View.OnClickListener {

    private ImageView imgfh;//返回键
    private TextView titlezhe;//title和打折类型
    private TextView yxtime;//有效期
    private ImageView result = null;//二维码
    private Bitmap bmp = null;//bitmap
    private String content;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.yhqsm_layout);
        initlayout();
    }

    /**
     * 实例化
     */
    private void initlayout() {
        imgfh = (ImageView) findViewById(R.id.imgfh);
        titlezhe = (TextView) findViewById(R.id.titlezhe);
        yxtime = (TextView) findViewById(R.id.yxtime);
        result = (ImageView) findViewById(R.id.img);
        imgfh.setOnClickListener(this);
        content = "你来打我呀!";
        try {
            bmp = createBitmap(Create2DCode(content));
        } catch (WriterException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        result.setImageBitmap(bmp);
        ByteArrayOutputStream baos1 = new ByteArrayOutputStream();

        bmp.compress(Bitmap.CompressFormat.PNG, 100, baos1);

        try {
            Writetemp(baos1.toByteArray());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            //返回键
            case R.id.imgfh:
                finish();
                break;
        }
    }

    public Bitmap Create2DCode(String str) throws WriterException,
            UnsupportedEncodingException {

        BitMatrix matrix = new MultiFormatWriter().encode(
                new String(str.getBytes("GBK"), "ISO-8859-1"),
                BarcodeFormat.QR_CODE, 300, 300);

        int width = matrix.getWidth();
        int height = matrix.getHeight();
        int[] pixels = new int[width * height];
        for (int y = 0; y < height; y++) {
            for (int x = 0; x < width; x++) {
                if (matrix.get(x, y)) {
                    pixels[y * width + x] = 0xff000000;
                }

            }
        }
        int[] colors = {R.color.white};
        Bitmap bitmap = Bitmap.createBitmap(width, height,
                Bitmap.Config.ARGB_8888);
        bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
        return bitmap;
    }

    public void Write(byte[] b) throws IOException {
        File cacheFile = null;
        if (Environment.getExternalStorageState().equals(
                Environment.MEDIA_MOUNTED)) {
            File sdCardDir = Environment.getExternalStorageDirectory();

            long time = Calendar.getInstance().getTimeInMillis();
            String fileName = time + ".png";
            File dir = new File(sdCardDir.getCanonicalPath() + "/zibuyu/");
            if (!dir.exists()) {
                dir.mkdirs();
            }
            cacheFile = new File(dir, fileName);

        }
        Toast toast = Toast.makeText(getApplicationContext(), "哈哈哈哈",
                Toast.LENGTH_LONG);
        toast.setGravity(Gravity.CENTER, 0, 0);
        LinearLayout toastView = (LinearLayout) toast.getView();
        ImageView imageCodeProject = new ImageView(getApplicationContext());
        toastView.addView(imageCodeProject, 0);
        toast.show();
        BufferedOutputStream bos = null;
        try {
            bos = new BufferedOutputStream(new FileOutputStream(cacheFile));
            bos.write(b, 0, b.length);
            bos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void Writetemp(byte[] b) throws IOException {
        File cacheFile = null;
        if (Environment.getExternalStorageState().equals(
                Environment.MEDIA_MOUNTED)) {
            File sdCardDir = Environment.getExternalStorageDirectory();
            Date curDate = new Date(System.currentTimeMillis());
            String fileName = "temp.jpg";
            File dir = new File(sdCardDir.getCanonicalPath() + "/zibuyu/temp");
            if (!dir.exists()) {
                dir.mkdirs();
            }
            cacheFile = new File(dir, fileName);

        }
        BufferedOutputStream bos = null;
        try {
            bos = new BufferedOutputStream(new FileOutputStream(cacheFile));

            bos.write(b, 0, b.length);
            bos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private Bitmap createBitmap(Bitmap src) {
        if (src == null) {
            return null;
        }
        Paint paint = new Paint();
        paint.setColor(Color.WHITE);
        paint.setAntiAlias(true);

        int w = 300;
        int h = 300;
        Bitmap newb = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
        Canvas cv = new Canvas(newb);

        cv.drawColor(Color.WHITE);

        cv.drawBitmap(src, 0, 0, null);
        cv.save(Canvas.ALL_SAVE_FLAG);
        cv.restore();
        return newb;

    }
}


就只需简单几步就OK了!不会的可以学习一下,大神就别喷了、、、、



2019-10-11 17:29:06 liucai1018 阅读数 22
  • 微信公众平台深度开发v2.0第3季——二维码、模板消息

    “微信公众平台深度开发Java版 v2.0”系列课程共有6季,使用JAVA语言,系统讲解微信公众平台订阅号、服务号官方列出的全部功能接口,包括:自定义菜单、个性化菜单(按需定制菜单)、群发消息、客服消息(有限次消息推送)、模板消息接(无限次消息推送)、微信网页开发(微信WEB开发、微信游戏)、微信JSSDK开发、用户管理、获取用户基本信息、网页授权获取用户基本信息(通过WEB得到用户信息)、二维码(临时二维码、永久二维码)、事件推送、接收普通消息、被动回复用户消息,等知识点。 以及,针对微信公众号开发的服务端架构设计方案。课程以微信公众号开发视角,讲解JAVA开发微信公众号所需的框架、第三方工具。 购买套餐还赠送经典微信开发课程——[微信公众号_独立知识点]环境搭建。该课程针对各种复杂的网络环境,讲解如何构建开发环境,已解决“没有服务器”、“没有固定IP”等开发者遇到的窘境。 课程采用独立知识点讲解,一个知识点,一组课程,真正做到“简单、高效、”以短的时间、实现的学习。更多课程信息请访问CSDN。网址:http://edu.csdn.net/lecturer/631 “微信公众平台企业号开发Java版”陆续上线。 详情 qq2326321088

    10262 人正在学习 去看看 翟东平

一、点击进入谷歌网上应用商店,搜索二维码生成器

二、添加至chrome

三、添加完成后浏览器右上角出现如下图标

四、在需要生成二维码的页面,点击该图标即会生成地址对应的二维码,手机扫描即可

 

 

二维码生成与解析

阅读数 120

二维码的生成

阅读数 216

没有更多推荐了,返回首页