我使用烧烤生成条形码,现在我想根据需要调整条形码的大小。我尝试使用BufferedImage,然后我得到了不同大小的条形码,但随后我在条形码下面得到了一条额外的黑线。
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”的大小。
答案 0 :(得分:1)
要调整任何BufferedImage的大小,您可以创建一个新的BufferedImage,并在应用缩放的基础上绘制旧的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。
答案 1 :(得分:1)
试试这段代码:
Barcode b = BarcodeFactory.create2of7(jTextField1.getText());
b.setBarHeight(5);
b.setBarWidth(1);