精华内容
下载资源
问答
  • 1、调用二维码生成工具类返回 ByteArrayOutputStream ByteArrayOutputStream output = new ByteArrayOutputStream();...2、将字节数组转换成 BASE64 字符串 public static String byteToString(byte[] data){ .
    1、调用二维码生成工具类返回 ByteArrayOutputStream
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    QRCodeUtils.encode(context,output);//二维码工具类
    byte[] arry = output.toByteArray();

    2、将字节数组转换成 BASE64 字符串

    public static String byteToString(byte[] data){
        String dataString=null;
        try{
            dataString = new BASE64Encoder().encode(data);
        }catch(Exception e){
            e.printStackTrace();
        }
        return dataString;
    }

     3、使用json传输图片信息字符串

    4、js显示二维码图片

    var outputImg = document.getElementById('qrcode');
    outputImg.src = 'data:image/png;base64,'+str12;

     

    展开全文
  • 最近一直在研究二维码模块,想要在自己的软件上加上类似二维码自动扫描的功能,所以找到二维码模块中decode函数后,想要得到bitmap图像,但是二维码扫描得到的都是YUV图像(YUV420sp),而在模块里面能找到的转换成...

    最近一直在研究二维码模块,想要在自己的软件上加上类似二维码自动扫描的功能,所以找到二维码模块中decode函数后,想要得到bitmap图像,但是二维码扫描得到的都是YUV图像(YUV420sp),而在模块里面能找到的转换成RGB图像的是灰度图,所以百度上找了好久,终于有牛人贡献了他的代码:

    http://www.fx114.net/qa-162-87624.aspx


    #######################################33


    public Bitmap rawByteArray2RGBABitmap2(byte[] data, int width, int height) {
            int frameSize = width * height;
            int[] rgba = new int[frameSize];
    
                for (int i = 0; i < height; i++)
                    for (int j = 0; j < width; j++) {
                        int y = (0xff & ((int) data[i * width + j]));
                        int u = (0xff & ((int) data[frameSize + (i >> 1) * width + (j & ~1) + 0]));
                        int v = (0xff & ((int) data[frameSize + (i >> 1) * width + (j & ~1) + 1]));
                        y = y < 16 ? 16 : y;
    
                        int r = Math.round(1.164f * (y - 16) + 1.596f * (v - 128));
                        int g = Math.round(1.164f * (y - 16) - 0.813f * (v - 128) - 0.391f * (u - 128));
                        int b = Math.round(1.164f * (y - 16) + 2.018f * (u - 128));
    
                        r = r < 0 ? 0 : (r > 255 ? 255 : r);
                        g = g < 0 ? 0 : (g > 255 ? 255 : g);
                        b = b < 0 ? 0 : (b > 255 ? 255 : b);
    
                        rgba[i * width + j] = 0xff000000 + (b << 16) + (g << 8) + r;
                    }
    
            Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
            bmp.setPixels(rgba, 0 , width, 0, 0, width, height);
            return bmp;
        }


    展开全文
  • } // 水印部分加上二维码 ByteArrayOutputStream out = new ByteArrayOutputStream(); ImageIO.write(get(), "png",out); byte[] b = out.toByteArray(); Image itextimage = Image.getInstance(b); // 水印图片...

    记录一次使用itext生成pdf,并添加水印的过程

    本地字体路径:C:\Windows\Fonts

    Maven导入:

    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.5.4</version>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itext-asian</artifactId>
        <version>5.2.0</version>
    </dependency>

    代码:

        public void pdf() {
            System.out.println(System.getProperty("user.dir"));
            BaseFont bf;
            Font titleFont = null;
            Font font = null;
            Font underlineFont = null;
            Font noFont = null;
            Font signatureFont = null;
    
            try {
                bf = BaseFont.createFont("font/simfang.ttf", BaseFont.IDENTITY_H,
                        BaseFont.NOT_EMBEDDED);//创建字体
                titleFont = new Font(bf, 20, Font.BOLD);//使用字体
                font = new Font(bf, 15);//使用字体
                underlineFont = new Font(bf, 15, Font.UNDERLINE);
                noFont = new Font(bf, 14);
                signatureFont = new Font(bf, 14);
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            try {
                String name = "xxx";
                String idCode = "xxxxxxxxxxxxxxxxxx";
                String year = "2020";
                String month = "3";
                String day = "20";
                String number = "xxxxxxxxxxxxxxx";
                String expireDay = "7";
                String signPlace = "xxxxxxxxxx所";
                String signDate = "2020年3月20日";
    
                //实现A4纸页面
                Document document = new Document();
                PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream("F:/解除医学观察告知书.pdf"));
                //打开文档
                document.open();
                // 加入水印
                PdfContentByte waterMar = pdfWriter.getDirectContentUnder();
                // 开始设置水印
                waterMar.beginText();
                // 设置水印透明度
                PdfGState gs = new PdfGState();
                // 设置填充字体不透明度为0.4f
                gs.setFillOpacity(0.1f);
    
                try {
                    // 设置水印字体参数及大小 (字体参数,字体编码格式,是否将字体信息嵌入到pdf中(一般不需要嵌入),字体大小)
                    waterMar.setFontAndSize(BaseFont.createFont("font/simfang.ttf", BaseFont.IDENTITY_H,
                            BaseFont.NOT_EMBEDDED), 50);
                    // 设置透明度
                    waterMar.setGState(gs);
                    // 设置水印对齐方式 水印内容 X坐标 Y坐标 旋转角度
                    waterMar.showTextAligned(Element.ALIGN_RIGHT, "数据修复平台", 450, 900, 20);
                    waterMar.showTextAligned(Element.ALIGN_RIGHT, "数据修复平台", 450, 700, 20);
                    waterMar.showTextAligned(Element.ALIGN_RIGHT, "数据修复平台", 450, 500, 20);
                    waterMar.showTextAligned(Element.ALIGN_RIGHT, "数据修复平台", 450, 300, 20);
                    waterMar.showTextAligned(Element.ALIGN_RIGHT, "数据修复平台", 450, 100, 20);
                    // 设置水印颜色
                    waterMar.setColorFill(BaseColor.GRAY);
                    //结束设置
                    waterMar.endText();
                    waterMar.stroke();
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    waterMar = null;
                    gs = null;
                }
    
                //段落
                Paragraph p = new Paragraph("NO:" + number, noFont);
                p.setIndentationLeft(380);
    
                document.add(p);
    
                p = new Paragraph("解除医学观察告知书", titleFont);
                p.setLeading(30);
                p.setAlignment(Element.ALIGN_CENTER);
                document.add(p);
    
                p = new Paragraph();
                //短语
                Phrase ph = new Phrase();
                //块
                Chunk space = new Chunk("    ", font);
                Chunk c0 = new Chunk(" " + name + " ", underlineFont);
                Chunk c1 = new Chunk("先生/女士(身份证号码:", font);
                Chunk c2 = new Chunk(" " + idCode + " ", underlineFont);
                Chunk c3 = new Chunk("),按照《中华人民共和国传染病防治法》相关规定,经卫健部门评估后决定自", font);
                Chunk c4 = new Chunk(" " + year + " ", underlineFont);
                Chunk c5 = new Chunk("年", font);
                Chunk c6 = new Chunk(" " + month + " ", underlineFont);
                Chunk c7 = new Chunk("月", font);
                Chunk c8 = new Chunk(" " + day + " ", underlineFont);
                Chunk c9 = new Chunk("日(期满", font);
                Chunk c10 = new Chunk(" " + expireDay + "天 ", underlineFont);
                Chunk c11 = new Chunk(")起解除对您的医学观察,并对您给予我们工作的支持和配合表示衷心感谢。", font);
    
                ph.add(space);
                ph.add(c0);
                ph.add(c1);
                ph.add(c2);
                ph.add(c3);
                ph.add(c4);
                ph.add(c5);
                ph.add(c6);
                ph.add(c7);
                ph.add(c8);
                ph.add(c9);
                ph.add(c10);
                ph.add(c11);
                p.add(ph);
                p.setSpacingBefore(20);
                p.setLeading(40);
                document.add(p);
    
                p = new Paragraph();
                ph = new Phrase();
                ph.add(new Chunk(signPlace+"\n", signatureFont));
                p.add(ph);
                ph = new Phrase();
                ph.add(new Chunk(signDate+"\n", signatureFont));
                p.add(ph);
                ph = new Phrase();
                ph.add(new Chunk("医生签名:", signatureFont));
                p.add(ph);
    
                p.setSpacingBefore(50);
                p.setIndentationLeft(300);
                p.setLeading(30);
                document.add(p);
    
                document.close();
                pdfWriter.close();
            } catch (Exception e) {
                System.out.println("file create exception");
            }
        }
    

    最终效果:

     

    二维码插入代码:

    // 生成二维码BufferedImage
    public BufferedImage get() throws Exception {
            String text = "http://47.115.86.208:8080/";
            int width = 95;
            int height = 95;
            Hashtable hints = new Hashtable();
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
            BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, width, height, hints);
            return MatrixToImageWriter.toBufferedImage(bitMatrix);
        }
    // 水印部分加上二维码
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    ImageIO.write(get(), "png",out);
    byte[] b = out.toByteArray();
    Image itextimage = Image.getInstance(b);
    // 水印图片位置
    itextimage.setAbsolutePosition(50, 730);
    // 附件加上水印图片
    waterMar.addImage(itextimage);

    最终效果:

     

    展开全文
  •  // 获得内容的字节数组,设置编码格式  byte[] contentBytes = content.getBytes("utf-8");  // 图片尺寸  int imgSize = 67 + 12 * (size - 1);  bufImg = new BufferedImage(imgSize, imgSize, ...
     public static BufferedImage qRCodeCommon(String content, String imgType, int size) {  
            BufferedImage bufImg = null;  
            try {  
                Qrcode qrcodeHandler = new Qrcode();  
                // 设置二维码排错率,可选L(7%)、M(15%)、Q(25%)、H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小  
                qrcodeHandler.setQrcodeErrorCorrect('M');  
                qrcodeHandler.setQrcodeEncodeMode('B');  
                // 设置设置二维码尺寸,取值范围1-40,值越大尺寸越大,可存储的信息越大  
                qrcodeHandler.setQrcodeVersion(size);  
                // 获得内容的字节数组,设置编码格式  
                byte[] contentBytes = content.getBytes("utf-8");  
                // 图片尺寸  
                int imgSize = 67 + 12 * (size - 1);  
                bufImg = new BufferedImage(imgSize, imgSize, BufferedImage.TYPE_INT_RGB);  
                Graphics2D gs = bufImg.createGraphics();  
                // 设置背景颜色  
                gs.setBackground(Color.WHITE);  
                gs.clearRect(0, 0, imgSize, imgSize);  
     
                // 设定图像颜色> BLACK  
                gs.setColor(Color.BLACK);  
                // 设置偏移量,不设置可能导致解析出错  
                int pixoff = 2;  
                // 输出内容> 二维码  
                if (contentBytes.length > 0 && contentBytes.length < 800) {  
                    boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);  
                    for (int i = 0; i < codeOut.length; i++) {  
                        for (int j = 0; j < codeOut.length; j++) {  
                            if (codeOut[j][i]) {  
                                gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);  
                            }  
                        }  
                    }  
                } else {  
                    throw new Exception("QRCode content bytes length = " + contentBytes.length + " not in [0, 800].");  
                }  
                gs.dispose();  
                bufImg.flush();  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
            return bufImg;  

        } 


        @Override
        public String getTwoDimensionCode() {
            //获取优惠券二维码号
                 String encoderContent = goodsSeriesDao.getTwoDimensionCode();
                BufferedImage image = TwoDimensionCode.qRCodeCommon(encoderContent,"PNG",7);
    //            BufferedImage image = TwoDimensionCode.qRCodeCommon("抓紧时间 寝室有10个妹子在 不要让他们等的太长时间哦!","PNG",7);
                ByteArrayOutputStream out = new ByteArrayOutputStream();
                String base64 ="";
                try {
    //                ImageIO.write(image, "PNG", out);
                    ImageIO.write(image, "png", new File("e:\\文涛.png"));
    //                File f = new File("e://test.png");           
    //                BufferedImage bi;    
    //                bi = ImageIO.read(f);  
    //                ImageIO.write(bi, "jpg", out);   
                        
                        
                    ImageIO.write(image, "jpg", out);    
                    byte[] bytes = out.toByteArray();    
                     base64 = encoder.encodeBuffer(bytes).trim();//将图片转成base64编码
                } catch (IOException e) {
                    e.printStackTrace();
                }
                //把b保存到tfs上去并返回上传图片后的名称
                System.out.println(image);
                System.err.println(encoderContent);
                return base64;
        }


    <imgsrc=“data:image/png;base64“>


    展开全文
  • 最近做项目遇到了一种常见得需求,起初是生成一个二维码图片,用base64展现在页面上,而后发现这种方式显得页面很乱,于是将其转化为图片文件存储在项目目录当中,返回图片名称供前端引用图片,话不多说,直接上代码...
  • C#彩色二维码

    2018-01-04 17:10:09
    首先先生成二维码 在给二维码添加图片背景 注意QRCodeVersion与字节有关QRCodeVersion=7 二维码存储字节小于等于120 QRCodeVersion=10字节小于等于200 不是绝对的 有更好的可以留言给我
  • 二维码

    2014-01-08 09:54:04
    二维码的特点:  1.高密度编码,信息容量大:可容纳多达950个大写字母或1210个数字或560个字节,或200多个汉字,比普通条码信息容量约高几十倍。  2.编码范围广:该条码可以把图片、声音、文字、签字、指纹等...
  • 什么是二维码 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。...
  • 生成二维码

    2020-11-12 10:51:31
    生成二维码 Java实现二维码生成 Google-Zxing ... 篇文章将介绍java中如何生成二维码...2.将二维码转为字节数组,然后在web页面显示。生成二维码的功能主要是依赖Google的Zxing包。 项目添加依赖 <dependency&.
  • // <summary> /// 获取链接地址对应的二维码图像 /// /// </summary> public static Bitmap ToQR(String str) { QrEncoder qrEncoder = new Qr...
  • Java实现二维码生成 Google-Zxing

    万次阅读 多人点赞 2019-01-08 00:12:40
    二维码转为字节数组,然后在web页面显示。web项目的目录结构以前面的一篇文章中的目录结构为基础(传送门)。生成二维码的功能主要是依赖Google的Zxing包。 1.添加Zxing的依赖(maven工程为例) &lt;...
  •  * void TODO 生成不带Logo的二维码,并输出到指定的输出流  */  public static void encode(String content, OutputStream output) throws WriterException, IOException {  QRCodeUtil.encode(content, ...
  • Halcon环境下可通过设置set_system(‘filename_encoding’, ‘utf8’),可以将二维码的识别结果解析出汉字。 VS环境下则需要将utf8转换成gbk格式。代码如下: int UTF8ToGBK(unsigned char * lpUTF8Str,unsigned ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,110
精华内容 6,844
关键字:

二维码多少字节