Search code examples
javaservletsbarcodegif

Creating gif barcode using barcode4j


I'm trying to create barcode using barcode4j lib. This is what I've got:enter image description here And it looks smooth. This is how I do:

        BitmapCanvasProvider provider = null;


        Interleaved2Of5Bean bean = new Interleaved2Of5Bean();
        int dpi = 100;

        // Configure the barcode generator
        bean.setModuleWidth(UnitConv.in2mm(1.0f /
                                           dpi)); // makes the narrow
        // bar
        // width exactly
        // one
        // pixel

        bean.doQuietZone(false);
        provider =
                new BitmapCanvasProvider(100, BufferedImage.TYPE_BYTE_GRAY,
                                         true, 0);
        bean.generateBarcode(provider, request.getParameter("barcode"));
        provider.finish();


        BufferedImage barcodeImage = provider.getBufferedImage();
        response.setContentType("image/gif");
        OutputStream outputStream = response.getOutputStream();
        ImageIO.write(barcodeImage, "gif", outputStream);
        outputStream.close();

How to increase its difinition?


Solution

  • Ok, I found a solution . This is how I did:

        Interleaved2Of5Bean bean = new Interleaved2Of5Bean();
    
        bean.setHeight(10d);
    
        bean.doQuietZone(false);
    
        OutputStream out =
            new java.io.FileOutputStream(new File("output.png"));
    
        BitmapCanvasProvider provider =
            new BitmapCanvasProvider(out, "image/x-png", 110,
                                     BufferedImage.TYPE_BYTE_GRAY, false,
                                     0);
        bean.generateBarcode(provider, request.getParameter("barcode"));
    
        provider.finish();
    
        BufferedImage barcodeImage = provider.getBufferedImage();
        response.setContentType("image/x-png");
        OutputStream outputStream = response.getOutputStream();
        ImageIO.write(barcodeImage, "png", outputStream);
        outputStream.close();
    

    enter image description here