2011-09-29 66 views
1

我已經使用燒烤生成了條形碼,現在我想根據需要調整條形碼大小。我嘗試過使用BufferedImage,然後得到不同大小的條形碼,但是我在條形碼下找到了一條額外的黑線。如何調整燒烤api生成的條形碼大小?

 

    public class GenerateBarcode { 
    public static void main(String[] args) throws Exception { 
     String initialString = JOptionPane.showInputDialog("Enter the text here"); 
     Barcode barcode = BarcodeFactory.createCode128(initialString); 
     BufferedImage bi = BarcodeImageHandler.getImage(barcode); 
     } 
    } 

這裏我想調整「bi」的大小。

回答

1

要調整任何BufferedImage的大小,您可以創建一個新的並在應用縮放比例的情況下繪製舊的。例如:

double scale = 2; 
BufferedImage scaledBi = new BufferedImage((int)(bi.getWidth()*scale), (int) (bi.getHeight()*scale), bi.getType()); 
Graphics2D g2 = scaledBi.createGraphics(); 
g2.drawImage(bi, 0, 0, scaledBi.getWidth(), scaledBi.getHeight(), 0, 0, bi.getWidth(), bi.getHeight(), null); 

scaledBi現在包含縮放圖像。請注意,這不是基於矢量的,所以我不確定質量。爲了增加縮放質量,您可以玩rendering hints

+0

Thanks.I也得到了通過直接改變原始圖像的大小,然後將其轉換成BufferedImage的另一種解決方案。 – Ankur

1

試試這個代碼:

Barcode b = BarcodeFactory.create2of7(jTextField1.getText()); 
b.setBarHeight(5); 
b.setBarWidth(1);