JavaでAspose Barcode APIを使用してQRコードを検出および位置特定する方法


  1. イメージファイルからQRコードを検出する方法:
import com.aspose.barcode.BarCodeReadType;
import com.aspose.barcode.BarCodeReader;
import com.aspose.barcode.QRErrorLevel;
public class QRCodeDetection {
    public static void main(String[] args) {
        String imageFilePath = "path/to/image.png";

        try {
            BarCodeReader reader = new BarCodeReader(imageFilePath, BarCodeReadType.QR);
            reader.setErrorLevel(QRErrorLevel.LEVEL_L); // エラーレベルを設定(省略可)

            while (reader.read()) {
                System.out.println("QRコードが検出されました。");
                System.out.println("テキスト: " + reader.getCodeText());
                System.out.println("位置: " + reader.getCodeLocation().getArea());
                System.out.println("--------------");
            }

            reader.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}
  1. カメラからリアルタイムでQRコードを検出する方法:
import com.aspose.barcode.BarCodeReader;
import com.aspose.barcode.BarCodeReadType;
import com.aspose.barcode.QRErrorLevel;
import com.aspose.barcodeRecognition.BarCodeReaderException;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.io.ByteArrayInputStream;
import javax.imageio.ImageIO;
import javax.swing.*;
public class QRCodeDetectionRealTime extends JFrame {
    private JLabel label;
    public QRCodeDetectionRealTime() {
        setTitle("QRコード検出");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());
        label = new JLabel();
        add(label, BorderLayout.CENTER);
        pack();
        setVisible(true);
        try {
            BarCodeReader reader = new BarCodeReader();
            // カメラからフレームを取得する処理を実装する
            while (true) {
                BufferedImage frameImage = getFrame(); // フレームを取得するメソッド
                if (frameImage != null) {
                    reader.setBarCodeImage(frameImage);
                    reader.setReadType(BarCodeReadType.QR);
                    reader.setErrorLevel(QRErrorLevel.LEVEL_L); // エラーレベルを設定(省略可)
                    if (reader.read()) {
                        System.out.println("QRコードが検出されました。");
                        System.out.println("テキスト: " + reader.getCodeText());
                        System.out.println("位置: " + reader.getCodeLocation().getArea());
                        System.out.println("--------------");
                    }
                }
// 取得したフレームを画面に表示する処理を実装する
                showFrame(frameImage); // フレームを表示するメソッド
            }
            reader.close();
        } catch (BarCodeReaderException ex) {
            ex.printStackTrace();
        }
    }
    private BufferedImage getFrame() {
        // カメラからフレームを取得する処理を実装する
        // フレームをBufferedImageオブジェクトとして返す
    }
    private void showFrame(BufferedImage frameImage) {
        if (frameImage != null) {
            ImageIcon icon = new ImageIcon(frameImage);
            label.setIcon(icon);
            label.repaint();
        }
    }
    public static void main(String[] args) {
        SwingUtilities.invokeLater(QRCodeDetectionRealTime::new);
    }
}

これらはいくつかのQRコードの検出および位置特定の方法の例です。Aspose Barcode APIを使用することで、Javaで効果的にQRコードを処理することができます。詳細なドキュメントやAPIリファレンスは、Asposeの公式ウェブサイトで入手できます。