ZBar Android-überprüfung von lokalen QR-oder bar-code-Bild
Ich versuche zu Scannen eines lokalen Bildes durch ZBar, aber wie ZBar keine Dokumentation für Android, aber nur eine detaillierte Dokumentation für das iPhone ich hatte kundenspezifische Kamera-test-Aktivität zu viel. Habe ich aber nicht bekommen keinen Erfolg.
In ZBar cameratest Aktivität
PreviewCallback previewCb = new PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera camera) {
Camera.Parameters parameters = camera.getParameters();
Size size = parameters.getPreviewSize();
Image barcode = new Image(size.width, size.height, "Y800");
barcode.setData(data);
int result = scanner.scanImage(barcode);
if (result != 0) {
previewing = false;
mCamera.setPreviewCallback(null);
mCamera.stopPreview();
SymbolSet syms = scanner.getResults();
for (Symbol sym : syms) {
scanText.setText("barcode result " + sym.getData());
barcodeScanned = true;
}
}
}
};
Ich anpassen möchten, in diesem code, so dass es verwendet ein lokales Bild aus der Galerie aus und gibt mir das Ergebnis. Wie Baue ich diesen code für eine lokale Bild aus der Galerie aus und Scannen Sie das Bild?
- Für Android-mit code.google.com/p/zxing - tutorial hier: tekeye.biz/2012/scan-barcode-von-android-app
- Zxing ist eine externe app . wenn die Zxing app wird nicht installiert im mobile Benutzer , die Benutzer herunterladen Zxing app aus dem playstore . wo, Wie Zbar ist als Bibliothek in mein Projekt genau das was ich brauche.
InformationsquelleAutor ShujatAli | 2013-07-25
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Probieren Sie es aus:
Oder durch Verwendung der API finden Sie HOWTO: Scannen von Bildern über die API.
pixels
sollte initialisiert werden, wieint[] pixels = new int[width * height];
Java-port von Zbar der scanner akzeptiert nur Y800 und GRAUE Pixel-format ( https://github.com/ZBar/ZBar/blob/master/java/net/sourceforge/zbar/ImageScanner.java ), das ist ok für raw-bytes eingefangen von der Kamera-Vorschau. Aber Bilder von den Androis s Gallery sind im JPEG-comressed Regel und Ihre Pixel sind nicht in Y800, so können Sie damit der scanner funktioniert, indem Bildes Pixel zu Y800-format. Sehen diese offiziellen support-forum-thread ist für den Beispiel-code. Zur Berechnung Pixel-array-Länge verwenden Sie einfach imageWidth*imageHeight Formel.
@shujatAli deinem Beispiel-Bild-palette das format ist Graustufen-Umrechnung es in RGB um aus Ihrem code-snippet für mich zu arbeiten. Sie können ändern palettenstellplatz s-format mit Bild-manipulation-Programm. Ich benutzte GIMP.
Ich weiß nicht, klar für Android, aber bei iOS tun:
Referenz für weitere Informationen: http://zbar.sourceforge.net/iphone/sdkdoc/optimizing.html
Idee von HOWTO: Scannen von Bildern über die API:
Folgen Sie den obigen code, und ändern Sie es so, dass es relevant ist, in Ihrer Sprache zu Programmieren.