体育资讯网

您现在的位置是:首页 > 分类11 > 正文

分类11

datamatrix源码(Data matrix code)

hacker2022-06-13 12:39:25分类1141
本文目录一览:1、二维码生成程序C语言源代码2、

本文目录一览:

二维码生成程序C语言源代码

1、二维码有很多种标准datamatrix源码,可以控制存储数据的信息量datamatrix源码,也可以控制容错的数据量[使得部分污损的二维码可以被正常读龋通常的做法是调用二维码设计方提供的组件datamatrix源码,如果是自己生成二维码,应该可以生成可以看起来很像的东西。

Android二维码识别源码,可有多种实现方式

这里简单介绍一下ZXing库。ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。该项目可实现的条形码编码和解码。目前支持以下格式:UPC-A,UPC-E、EAN-8,EAN-13、39码、93码。ZXing是个很经典的条码/二维码识别的开源类库,以前在功能机上,就有开发者使用J2ME运用ZXing了,不过要支持JSR-234规范(自动对焦)的手机才能发挥其威力。

下面是ZXing的demo运行,我这里创建了一个二维码,内容是我博客的网址,大伙可以用微信的扫一扫功能,试一下。就可以直接打开我博客。

2、ZXing库主要类

下面给大家介绍一下,ZXing库里面主要的类以及这些类的作用:

CaptureActivity。这个是启动Activity 也就是扫描器。

CaptureActivityHandler 解码处理类,负责调用另外的线程进行解码。

DecodeThread 解码的线程。

com.google.zxing.client.android.camera 包,摄像头控制包。

ViewfinderView 自定义的View,就是我们看见的拍摄时中间的框框了。

3、使用ZXing生成二维码

下面针对二维码生成和解析做个简单介绍,至于详细的使用方法,建议大家还是自己看看源码,使用起来很简单,不过这个开源项目的代码,值得好好看看。首先给出二维码生成的方法:

View Code

上面就是二维码生成的方法接口,如果你只是使用者方法,很简单,只要传入一个URL即可,就像我截图里面一样,传入一个合法的网址即可。或者像现在一些移动APP的推广,把APP下载地址转为二维码,只要扫一下就可以下载相应的APP。这个也是目前比较流行的APP的推广方式。

上面代码做的事情不多,主要是调用ZXing库里面QRCodeWriter().encode的方法对我们传进去的URL进行编码,具体如何编码,这个我这里就不详细说,有兴趣可以看ZXing的源码。文章最后会给出ZXing的源码和例子代码。

4、扫描二维码获取信息

扫描获取二维码信息的工作稍微复杂一些,主要是需要编写Camera的使用,这个跟我们一般使用Camera一样,需要使用Surfaceview作为预览,这一部我这里就不说了,这个应该不是太复杂。对于使用过Camera做预览的朋友,应该是挺简单的事情。获取二维码数据的关键处理是在Camera的自动对焦回调函数哪里,调用ZXing的解码接口。

View Code

这里稍微多说一句,由于解码需要一定时间,所以ZXing的解码调用,都是使用了Handler作为线程通信机制,解码的工作都是放在独立线程里面使用的,如果你直接在主线程解码,恐怕ANR问题是避免不了。

View Code

上面是解码的线程处理不同状态的时候需要注意的地方,我们这里只看获取图像成功的地方,成功获取图片解码的实在DecodeThread里面实现,DecodeThread里面解码成功后,会把数据序列化,然后保存到Bundle里面,我们可以直接通过Bundle的序列化,获取到图片数据。同时会把解码后的结果保存到MSG里面,然后就可以根据实际情况进行处理,例如上面代码,解码成功后,会调用一个处理函数:

View Code

上面就是整个二维码的解码流程,里面因为涉及很多Camera的使用,所以你如果需要使用二维码识别,需要注意一下你的程序需要申请下面的权限,一般的Camera使用以及Camera的自动对焦等。

View Code

5、结语

上面就是生成和识别二维码的关键流程和代码,有兴趣的朋友可以自己查看ZXing的源码,里面有很多图像分析的知识可以学习。具体使用也可以参考我下面给出的Demo。二维码对于现在移动开发来说很是很常用的技术,所以有空可以了解一下,说不定什么时候就用上了。另外,ZXing库除了二维码外,其实对于条形码也是支持的,只是我这里没有介绍。有需要的自己去看看源码即可。

转载

asp.net二维码,上方或者下方带文字说明,求源码

这个是用js去做的,canvas 画布,配合 二维码生成插件(如dimensional_code.js)去做的

关键代码:

        var url="要声称二维码的地址";

        $('#要生成二维码的divid').html('').qrcode({

            render: "canvas",

            text: url

        });

        var mycanvas = $("#要生成二维码的divid").find("canvas")[0];

        var image    = mycanvas.toDataURL("image/png");

谁有二维码生成的源代码(java版本)的,能提供些吗?

  可以考虑使用图形绘制来解决二维码的生成问题,使用实例如下:

生成二维码

package net.qrcode;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import java.io.OutputStream;

import javax.imageio.ImageIO;

import com.google.zxing.common.BitMatrix;

public final class MartixToImageWriter {

        //私有不可更改的变量:生成二维码图片的颜色

        private static final int BLACK = 0xFF000000;

        private static final int WHITE = 0xFFFFFFFF;

        //空的构造方法

        public MartixToImageWriter() {

                // TODO Auto-generated constructor stub

        }

        /**

         * 静态方法

         * BufferedImage是Image的一个子类,BufferedImage生成的图片在内存里有一个图像缓冲区,利用这个缓冲区我们可以很方便的操作这个图片,

         * 通常用来做图片修改操作如大小变换、图片变灰、设置图片透明或不透明等。

         * @param matrix 编码形式

         * @return

         */

        public static BufferedImage toBufferedImage(BitMatrix matrix)

        {

                //图片的宽度和高度

                int width = matrix.getWidth();

                int height = matrix.getHeight();

                //BufferedImage.TYPE_INT_RGB将图片变为什么颜色

                BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);

                for(int x = 0;x  width;x++)

                {

                        for(int y = 0;y  height;y++)

                        {

                                image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);

                        }

                }

                return image;

        }

        /**

         * 静态方法 用于生成图片

         * @param matrix 编码形式

         * @param format 图片类型

         * @param file 文件(图片路径,图片名称)

         * @throws IOException

         */

        public static void writeToFile(BitMatrix matrix,String format,File file) throws IOException

        {

                BufferedImage image = toBufferedImage(matrix);

                if(!ImageIO.write(image, format, file))

                {

                        throw new IOException("Could not write an image of format " + format + " to " + file);

                }

        }

        /**

         * 输出

         * @param matrix

         * @param format

         * @param stream

         * @throws IOException

         */

        public static void writeToStream(BitMatrix matrix,String format,OutputStream stream) throws IOException

        {

                BufferedImage image = toBufferedImage(matrix);

                if(!ImageIO.write(image, format, stream))

                {

                        throw new IOException("Could not write an image of format " + format);

                }

        }

}

测试二维码是否生成成功

package net.qrcode;

import java.io.File;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import com.google.zxing.BarcodeFormat;

import com.google.zxing.EncodeHintType;

import com.google.zxing.MultiFormatWriter;

import com.google.zxing.common.BitMatrix;

public class TwoDimensionCode {

        public static void main(String[] args) {

                try

                {

                        System.out.println("请输入您要生成二维码的信息");

                        Scanner input = new Scanner(System.in);

                        String content = input.next();

                        String path = "C:\\Users\\Administrator\\Desktop\\二维码图片库";

                                MultiFormatWriter multiFormatWrite = new MultiFormatWriter();

                                Map hints = new HashMap();

                                hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");

                                // 按照指定的宽度,高度和附加参数对字符串进行编码

                                //生成二维码

                                BitMatrix bitMatrix = multiFormatWrite.encode(content, BarcodeFormat.QR_CODE, 400, 400, hints);

                                File file1 = new File(path,userId+".jpg");

                                // 写入文件

                                MartixToImageWriter.writeToFile(bitMatrix, "jpg", file1);

                        System.out.println("二维码图片生成成功!");

                }

                catch(Exception e)

                {

                        e.printStackTrace();

                }

        }

}

求:asp生成二维码的源码。

其实是一个误会,二维码本身存什么无所谓,只不过编码规则不一样而已。软能动力的网站上好像有免费用控件,可以用任何一种语言调用。他们家是专业做二维码的,号称从2005年就开始研发了。如果你不知道怎么样编码,你就给他们的技术打电话好了

发表评论

评论列表

  • 怎忘羁客(2022-06-13 19:20:56)回复取消回复

                  {                                image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);                        }                }