بارکدها نقش حیاتی در ردیابی دقیق موجودی و تحویل محصولات از تولید تا نقطه فروش دارند. در موارد خاص، ممکن است لازم باشد بارکدهای تصاویر را به صورت برنامهریزی بخوانیم. ما به راحتی می توانیم انواع بارکدها و کدهای QR را در برنامه های جاوا شناسایی، تشخیص و مطالعه کنیم. این به توسعه برنامه های بارکدخوان یا اسکنر کمک می کند. در این مقاله نحوه خواندن بارکد از روی تصویر را با استفاده از جاوا یاد خواهیم گرفت.
موضوعات زیر در این مقاله پوشش داده خواهد شد:
- بارکد چیست؟
- Java API برای خواندن بارکد از تصویر
- بارکد را از یک تصویر بخوانید
- بارکد از نوع خاص را بشناسید
- بارکدهای متعدد را از یک تصویر بخوانید
- مختصات X و Y بارکد را دریافت کنید
- بارکد را از منطقه خاص تصویر بخوانید
بارکد چیست؟
بارکد یک کد قابل خواندن توسط ماشین است که داده های رمزگذاری شده را به شکل اعداد و الگویی از خطوط موازی نشان می دهد. تصویر بارکد مجموعه ای از نوارهای سیاه و سفید موازی را نشان می دهد که عرض، فاصله و اندازه متفاوت است. بارکدخوان ها یا اسکنرها تصاویر بارکد را اسکن کرده و اطلاعات را رمزگشایی می کنند.
Java API برای خواندن بارکد از تصویر
برای خواندن بارکدها از تصاویر درون برنامه های جاوا، از Aspose.BarCode for Java استفاده خواهیم کرد. این یک API غنی از ویژگی است که به شما امکان می دهد طیف گسترده ای از [نمادشناسی بارکد] را تولید، اسکن و بخوانید. کلاس BarCodeReader API اجازه خواندن بارکدها را می دهد. متد readBarCodes() این کلاس آرایه ای از [بارکدهای] شناخته شده را برمی گرداند. API امکان خواندن بارکدهای مشخص شده DecodeType را می دهد. کلاس BarCodeResult API داده های بارکد شناخته شده مانند نوع بارکد، متن کد، منطقه و سایر پارامترها را ذخیره می کند.
لطفاً JAR API را دانلود کنید یا پیکربندی pom.xml زیر را در یک برنامه جاوا مبتنی بر Maven اضافه کنید.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-barcode</artifactId>
<version>22.5</version>
</dependency>
بارکد را از یک تصویر در جاوا بخوانید
با دنبال کردن مراحل زیر می توانیم بارکدها را از یک تصویر بخوانیم:
- ابتدا یک تصویر را با استفاده از کلاس BarCodeReader بارگذاری کنید.
- با استفاده از متد readBarCodes() نتایج شناسایی را در شی کلاس BarCodeResult دریافت کنید.
- در نهایت، نتایج را حلقه بزنید و نوع و متن بارکد را نشان دهید.
نمونه کد زیر نحوه خواندن بارکد از یک تصویر با استفاده از جاوا را نشان می دهد.
// این مثال کد نحوه خواندن بارکد از یک تصویر را نشان می دهد.
// مسیر دایرکتوری تصویر
String dataDir = "C:\\Files\\BarCode\\";
// بارکدخوان را راه اندازی کنید
BarCodeReader reader = new BarCodeReader(dataDir + "CodeText.jpg");
// بارکد را بخوانید و نتایج را نشان دهید
for (BarCodeResult result : reader.readBarCodes()) {
System.out.println("CodeText: " + result.getCodeText());
System.out.println("Symbology type: " + result.getCodeType());
}
بارکد از نوع خاص در جاوا را بشناسید
با دنبال کردن مراحل زیر می توانیم یک بارکد از یک نوع خاص را از روی یک تصویر بخوانیم:
- ابتدا داده های بافر یک فایل تصویری را با استفاده از روش ImageIO.read() بخوانید.
- سپس یک نمونه از کلاس BarCodeReader با یک تصویر بافر و Decode Type ایجاد کنید.
- سپس، یک نوع رمزگشایی بارکد را برای خواندن بارکد یک نوع خاص، مانند CODE39STANDARD تنظیم کنید.
- پس از آن، با استفاده از متد readBarCodes() نتایج شناسایی را در شی کلاس BarCodeResult دریافت کنید.
- در نهایت، نتایج را حلقه بزنید و نوع و متن بارکد را نشان دهید.
نمونه کد زیر نحوه خواندن بارکد یک نوع خاص از یک تصویر را با استفاده از جاوا نشان می دهد.
// این مثال کد نحوه خواندن بارکد یک نوع رمزگشایی خاص از یک تصویر را نشان می دهد.
// مسیر دایرکتوری تصویر
String dataDir = "C:\\Files\\BarCode\\";
// تصویر بافور شده را دریافت کنید
BufferedImage img = ImageIO.read(new File(dataDir + "CODE_39_STANDARD.jpg"));
// بارکدخوان را راه اندازی کنید
BarCodeReader reader = new BarCodeReader(img, DecodeType.CODE_39_STANDARD);
// بارکد از نوع Code39Extended را بخوانید
for (BarCodeResult result : reader.readBarCodes()) {
System.out.println("CodeText: " + result.getCodeText());
System.out.println("Symbology type: " + result.getCodeType());
}
بارکدهای متعدد را از Image در جاوا بخوانید
همچنین با دنبال کردن مراحل زیر میتوانیم تمام بارکدهای موجود را از یک تصویر بخوانیم:
- ابتدا یک تصویر را با استفاده از کلاس BarCodeReader بارگذاری کنید.
- بعد، یک نوع رمزگشایی بارکد را به عنوان ALLSUPPORTEDTYPES تنظیم کنید.
- پس از آن، با استفاده از متد readBarCodes() نتایج شناسایی را در شی کلاس BarCodeResult دریافت کنید.
- در نهایت، نتایج را حلقه بزنید و نوع و متن بارکد را نشان دهید.
نمونه کد زیر نحوه خواندن چندین بارکد از یک تصویر را با استفاده از جاوا نشان می دهد.
// این مثال کد نحوه خواندن چندین بارکد بارکد از یک تصویر را نشان می دهد.
// مسیر دایرکتوری تصویر
String dataDir = "C:\\Files\\BarCode\\";
// بارکدخوان را راه اندازی کنید
BarCodeReader reader = new BarCodeReader(dataDir + "MultipleBarcodes.png", DecodeType.ALL_SUPPORTED_TYPES);
// تمام انواع بارکد موجود در تصویر ورودی را بخوانید
for (BarCodeResult result : reader.readBarCodes()) {
System.out.println("CodeText: " + result.getCodeText());
System.out.println("Symbology type: " + result.getCodeType());
System.out.println("-------------------------");
}
مختصات X و Y بارکد را با استفاده از جاوا دریافت کنید
با دنبال کردن مراحل زیر میتوانیم مختصات X و Y بارکد شناسایی شده را از یک تصویر بخوانیم:
- ابتدا یک تصویر را با استفاده از کلاس BarCodeReader بارگذاری کنید.
- سپس، با استفاده از متد readBarCodes() نتایج شناسایی را در شی کلاس BarCodeResult دریافت کنید.
- سپس، نتایج را حلقه بزنید و بررسی کنید که ()getRegion null نیست.
- پس از آن، آرایه Points را که منطقه بارکد را با استفاده از getPoints () محدود می کند، دریافت کنید.
- در نهایت، نقاط X و Y بارکد را نشان دهید.
نمونه کد زیر نحوه بدست آوردن نقاط مختصات X و Y یک بارکد را از یک تصویر با استفاده از جاوا نشان می دهد.
// این مثال کد نحوه خواندن نقطه منطقه X و Y بارکدها را از یک تصویر نشان می دهد.
// مسیر دایرکتوری تصویر
String dataDir = "C:\\Files\\BarCode\\";
// بارکدخوان را راه اندازی کنید
BarCodeReader reader = new BarCodeReader(dataDir + "Code39Std.png", DecodeType.ALL_SUPPORTED_TYPES);
// بارکد را بخوانید
for (BarCodeResult result : reader.readBarCodes()) {
if (result.getRegion() != null) {
// مختصات x و y همه بارکدهای شناسایی شده را نمایش دهید
Point[] point = result.getRegion().getPoints();
System.out.println("Top left coordinates: X = " + point[0].x + ", Y = " + point[0].y);
System.out.println("Bottom left coordinates: X = " + point[1].x + ", Y = " + point[1].y);
System.out.println("Bottom right coordinates: X = " + point[2].x + ", Y = " + point[2].y);
System.out.println("Top right coordinates: X = " + point[3].x + ", Y = " + point[3].y);
}
}
بارکد را از ناحیه خاص تصویر در جاوا بخوانید
با دنبال کردن مراحل زیر میتوانیم بارکد را از یک منطقه خاص یا ناحیهای از یک تصویر بخوانیم:
- ابتدا داده های بافر یک فایل تصویری را با استفاده از روش ImageIO.read() بخوانید.
- سپس یک نمونه از کلاس BarCodeReader ایجاد کنید. یک تصویر بافر، یک ناحیه مستطیل و یک نوع رمزگشایی را به عنوان آرگومان می گیرد.
- پس از آن، با استفاده از متد readBarCodes() نتایج شناسایی را در شی کلاس BarCodeResult دریافت کنید.
- در نهایت، نتایج را حلقه بزنید و نوع و متن بارکد را نشان دهید.
نمونه کد زیر نحوه خواندن بارکد را از یک منطقه خاص از یک تصویر با استفاده از جاوا نشان می دهد.
// این مثال کد نحوه خواندن بارکد را از ناحیه خاصی از یک تصویر نشان می دهد.
// مسیر دایرکتوری تصویر
String dataDir = "C:\\Files\\BarCode\\";
// BufferedImage را دریافت کنید
java.awt.image.BufferedImage img = javax.imageio.ImageIO.read(new java.io.File(dataDir + "specificRegion.png"));
// یک نمونه از کلاس BarCodeReader ایجاد کنید
// و منطقه ای را برای جستجوی بارکد مشخص کنید
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 700, 100), DecodeType.ALL_SUPPORTED_TYPES);
// تمام بارکدهای موجود در قسمت ارائه شده را بخوانید
for (BarCodeResult result : reader.readBarCodes()) {
System.out.println("CodeText: " + result.getCodeText());
System.out.println("Symbology type: " + result.getCodeType());
}
مجوز رایگان دریافت کنید
برای امتحان کتابخانه بدون محدودیت ارزیابی، می توانید [یک مجوز موقت رایگان دریافت کنید].
نتیجه
در این مقاله یاد گرفتیم که چگونه:
- بارگذاری تصویر بارکد به صورت برنامه ریزی شده
- بارکدهای مختلف را از روی یک تصویر تشخیص دهید.
- خواندن مختصات بارکد در جاوا.
- شناسایی و خواندن چندین بارکد از یک تصویر؛
- شناسایی و خواندن بارکدها از یک ناحیه خاص از یک تصویر.
علاوه بر این، میتوانید با استفاده از مستندات درباره Aspose.BarCode for Java API اطلاعات بیشتری کسب کنید. در صورت وجود هرگونه ابهام، لطفاً با ما در [تالار] تماس حاصل فرمایید11.