如何在 Java 中创建条形码图像

条形码普遍用于商业和零售业,以帮助跟踪、购买和库存。这使组织能够准确记录其供应品、产品和其他对其运营至关重要的物品。 对于国际和国内使用,有不同的条形码用于特定环境。例如,UPC 和 EAN 条形码的格式看起来很相似,并且可以以类似的方式使用,但 UPC 主要是北美编码系统; 但是,UPC 和 EAN 都在全球范围内使用。 QR码也在全球范围内使用,但 通常用于共享复杂的信息集,如项目详细信息或网站链接。

以下五个 API 将允许您以前面提到的三种格式创建条形码图像。 这将允许您打印或创建带有个人条形码的包装,而无需从外部来源检索它。这对小型企业特别有用,因为它提高了公司的独立性,并提高了产品的视觉、专业吸引力。

要使用以下任何 API,您首先需要使用 Maven 或 Gradle 安装 SDK 参考。 要使用 Maven 进行安装,请在 pom.xml 中添加对存储库的 Jitpack 引用:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

然后,添加对依赖项的引用:

<dependencies>
<dependency>
    <groupId>com.github.Cloudmersive</groupId>
    <artifactId>Cloudmersive.APIClient.Java</artifactId>
    <version>v3.54</version>
</dependency>
</dependencies>

要使用 Gradle 进行安装,请 在仓库末尾添加对根 build.gradle 的引用:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

然后,在 build.gradle 中添加依赖项:

dependencies {
        implementation 'com.github.Cloudmersive:Cloudmersive.APIClient.Java:v3.54'
}

第一组功能以创建两种格式的 UPC 条形码为中心:UPC-A 和 UPC-E。UPC-A 是标准的 UPC 条形码类型,包含 12 位数字,用于对产品信息进行编码。UPC-E 充当此代码的压缩形式,因为它可以采用原始的 12 位值并将其抑制为 6 位,并带有第七位校验和位。 但是,如果您的 UPC 值不是以零开头的,则无法将其压缩为 UPC-E 代码。 这些应该主要用于零售和简单的产品编码,因为它们不具备传达复杂信息的能力。

要创建 UPC-A 条形码,请如上所示安装 SDK,然后调用该函数:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.GenerateBarcodeApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
GenerateBarcodeApi apiInstance = new GenerateBarcodeApi();
String value = "value_example"; // String | UPC-A barcode value to generate from
try {
    byte[] result = apiInstance.generateBarcodeUPCA(value);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling GenerateBarcodeApi#generateBarcodeUPCA");
    e.printStackTrace();
}

此功能唯一需要的输入是生成图像的 UPC 条形码值。 这将以 PNG 形式返回包含条形码图像的输出文件。 若要确保此 API 正常工作,需要确保满足某些要求:

UPC 条形码值有效且输入正确。

您已输入 API 密钥。这可以在 Cloudmersive 网站上免费检索,在我们的 API 库中提供每月 800 次调用。

若要创建 UPC-E 代码,请按照相同的步骤安装并调用以下函数:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.GenerateBarcodeApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
GenerateBarcodeApi apiInstance = new GenerateBarcodeApi();
String value = "value_example"; // String | UPC-E barcode value to generate from
try {
    byte[] result = apiInstance.generateBarcodeUPCE(value);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling GenerateBarcodeApi#generateBarcodeUPCE");
    e.printStackTrace();
}

EAN 条形码是为在欧洲使用而创建的,但在 国际上得到认可。EAN 代码的两种类型是 EAN-13 和 EAN-8,其中 EAN-13 使用最广泛。 与 UPC 格式一样,EAN 代码只能对数字数据进行编码,这使得它可以快速轻松地进行扫描。 EAN-13 包含 13 位数字,分别代表国家/地区代码、产品和制造商信息以及校验和数字。 EAN-8 包含 8 位数字,旨在用于包装太小而无法显示 EAN-13 代码的产品。

要生成 EAN-13 代码,请如上图所示安装 SDK,然后调用该函数:


// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.GenerateBarcodeApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
GenerateBarcodeApi apiInstance = new GenerateBarcodeApi();
String value = "value_example"; // String | Barcode value to generate from
try {
    byte[] result = apiInstance.generateBarcodeEAN13(value);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling GenerateBarcodeApi#generateBarcodeEAN13");
    e.printStackTrace();
}

对于 EAN-8 代码,请执行相同的初始步骤并调用以下函数:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.GenerateBarcodeApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
GenerateBarcodeApi apiInstance = new GenerateBarcodeApi();
String value = "value_example"; // String | Barcode value to generate from
try {
    byte[] result = apiInstance.generateBarcodeEAN8(value);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling GenerateBarcodeApi#generateBarcodeEAN8");
    e.printStackTrace();
}

所有这些以前的条形码格式都被视为一维类型,因为它们只能编码简单的数字数据,如产品代码。但是,如果您希望传达更复杂的信息,二维码(2D 格式)是理想的选择。 QR 码是 Quick Return 码的缩写,可用于通过使用支持 QR 码的设备(如智能手机)进行扫描来传达各种信息。这些可用于产品详细信息、营销目的和共享服务信息(如菜单)。

要生成QR码,请调用以下函数:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.GenerateBarcodeApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
GenerateBarcodeApi apiInstance = new GenerateBarcodeApi();
String value = "value_example"; // String | QR code text to convert into the QR code barcode
try {
    byte[] result = apiInstance.generateBarcodeQRCode(value);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling GenerateBarcodeApi#generateBarcodeQRCode");
    e.printStackTrace();
}

此函数的输入可以包含任何自由格式的文本,因此可以根据您的要求进行灵活处理。

所有这些函数都将返回一个包含您的条形码图像的 PNG 文件,以用于任何产品或项目。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java可以使用Zxing库来识别条形码。Zxing是一个功能强大的条形码和二维码处理库,可以在Java应用程序使用。以下是一个简单的Java代码示例,演示如何使用Zxing库识别条形码: ```java import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.BinaryBitmap; import com.google.zxing.MultiFormatReader; import com.google.zxing.NotFoundException; import com.google.zxing.RGBLuminanceSource; import com.google.zxing.Reader; import com.google.zxing.Result; import com.google.zxing.common.HybridBinarizer; public class BarcodeReader { public static void main(String[] args) throws IOException, NotFoundException { File file = new File("barcode.png"); BufferedImage image = ImageIO.read(file); RGBLuminanceSource source = new RGBLuminanceSource(image.getWidth(), image.getHeight(), getImagePixels(image)); BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); Reader reader = new MultiFormatReader(); Result result = reader.decode(bitmap); System.out.println(result.getText()); } private static int[] getImagePixels(BufferedImage image) { int width = image.getWidth(); int height = image.getHeight(); int[] pixels = new int[width * height]; image.getRGB(0, 0, width, height, pixels, 0, width); return pixels; } } ``` 在这个例子,我们从一个名为"barcode.png"的文件读取了条形码图像。我们使用Zxing库的RGBLuminanceSource类将图像转换为RGB像素数组。然后,我们使用HybridBinarizer类创建一个BinaryBitmap对象,并将其传递给MultiFormatReader类进行解码。最后,我们从Result对象获取条形码数据并打印出来。 请注意,我们也可以使用Zxing库来生成条形码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值