android - एंड्रॉइड एप्लिकेशन में बारकोड छवि उत्पन्न करें




2 Answers

आप आसानी से बारकोड उत्पन्न करने के लिए zxing लाइब्रेरी का उपयोग कर सकते हैं।

सबसे पहले, libs फ़ोल्डर के तहत core.jar का पता लगाएं।

libs/core.jar

आप यहां से ZXing-2.1.zip डाउनलोड कर सकते हैं।

http://repo1.maven.org/maven2/com/google/zxing/ ( source )

फ़ाइल को अनजिप करने के बाद, जार फ़ाइल ढूंढें।

\ZXing-2.1\zxing-2.1\core\core.jar

और फिर नीचे अपना कोड लिखें।

import java.util.EnumMap;
import java.util.Map;

import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;

public class BarcodeExampleActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout l = new LinearLayout(this);
    l.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    l.setOrientation(LinearLayout.VERTICAL);

    setContentView(l);

    // barcode data
    String barcode_data = "123456";

    // barcode image
    Bitmap bitmap = null;
    ImageView iv = new ImageView(this);

    try {

        bitmap = encodeAsBitmap(barcode_data, BarcodeFormat.CODE_128, 600, 300);
        iv.setImageBitmap(bitmap);

    } catch (WriterException e) {
        e.printStackTrace();
    }

    l.addView(iv);

    //barcode text
    TextView tv = new TextView(this);
    tv.setGravity(Gravity.CENTER_HORIZONTAL);
    tv.setText(barcode_data);

    l.addView(tv);

    }

    /**************************************************************
     * getting from com.google.zxing.client.android.encode.QRCodeEncoder
     * 
     * See the sites below
     * http://code.google.com/p/zxing/
     * http://code.google.com/p/zxing/source/browse/trunk/android/src/com/google/zxing/client/android/encode/EncodeActivity.java
     * http://code.google.com/p/zxing/source/browse/trunk/android/src/com/google/zxing/client/android/encode/QRCodeEncoder.java
     */

    private static final int WHITE = 0xFFFFFFFF;
    private static final int BLACK = 0xFF000000;

    Bitmap encodeAsBitmap(String contents, BarcodeFormat format, int img_width, int img_height) throws WriterException {
    String contentsToEncode = contents;
    if (contentsToEncode == null) {
        return null;
    }
    Map<EncodeHintType, Object> hints = null;
    String encoding = guessAppropriateEncoding(contentsToEncode);
    if (encoding != null) {
        hints = new EnumMap<EncodeHintType, Object>(EncodeHintType.class);
        hints.put(EncodeHintType.CHARACTER_SET, encoding);
    }
    MultiFormatWriter writer = new MultiFormatWriter();
    BitMatrix result;
    try {
        result = writer.encode(contentsToEncode, format, img_width, img_height, hints);
    } catch (IllegalArgumentException iae) {
        // Unsupported format
        return null;
    }
    int width = result.getWidth();
    int height = result.getHeight();
    int[] pixels = new int[width * height];
    for (int y = 0; y < height; y++) {
        int offset = y * width;
        for (int x = 0; x < width; x++) {
        pixels[offset + x] = result.get(x, y) ? BLACK : WHITE;
        }
    }

    Bitmap bitmap = Bitmap.createBitmap(width, height,
        Bitmap.Config.ARGB_8888);
    bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
    return bitmap;
    }

    private static String guessAppropriateEncoding(CharSequence contents) {
    // Very crude at the moment
    for (int i = 0; i < contents.length(); i++) {
        if (contents.charAt(i) > 0xFF) {
        return "UTF-8";
        }
    }
    return null;
    }

}

मुझे 1 डी बारकोड छवि उत्पन्न करने और इसे 13-वर्ण कोड के अनुसार ImageView पर सेट करने की आवश्यकता है। क्या कोई इस संबंध में मेरी सहायता कर सकता है?




इस पर उत्तर देखें: एंड्रॉइड में 1 डी बारकोड जेनरेट करें

वे IText का उपयोग करने का सुझाव देते हैं जो जावा पीडीएफ मैनिपुलेशन लाइब्रेरी है। इसमें बारकोड छवियां उत्पन्न करने की क्षमता भी है।

आप उस प्रश्न में नमूना कोड पा सकते हैं जिसे मैंने लिंक किया है और यहां भी




Related

android image barcode