Я сгенерировал тестовое изображение штрих-кода,
![barcode](https://i.stack.imgur.com/cYcFX.png)
http://generator.onbarcode.com/linear.aspx?TYPE=7&DATA=ID%3ao0123456789&UOM=0&X=1&Y=60&LEFT-MARGIN=0&RIGHT-MARGIN=0&TOP-MARGIN=0&BOTTOM-MARGIN=0&RESOLUTION=0&ROTATE=0&BARCODE-WIDTH=0&BARCODE-HEIGHT=0&SHOW-TEXT=true&TEXT-FONT=Arial|9|Regular&TextMargin=6&FORMAT=png&PROCESS-TILDE=false
Я сохранил его локально и попытался загрузить его простой Java-программой и распечатать первую строку сканирования следующим образом:
File bmpFile = new File("barcode.bmp");
BufferedImage img;
try {
img = ImageIO.read(bmpFile);
int[] pixels = img.getRGB(0, 0, img.getWidth(), img.getHeight(), null, 0, img.getWidth());
int w = img.getWidth();
for (int i = 0; i< w; i++) {
System.out.print(pixels[i]+", ");
}
System.out.println();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
А затем я попытался загрузить растровое изображение в приложении Android на эмуляторе с помощью следующего кода
Bitmap barcode = BitmapFactory.decodeResource(context.getResources(), R.raw.barcode);
Config cfg = globe.getConfig();
int w = barcode.getWidth();
for (int i = 0; i < w; i++) {
int color = barcode.getPixel(i, 0);
System.out.print(color+", ");
}
System.out.println();
Невероятно, но эти два простых приложения должны иметь совершенно разные данные сканирования.
данные отсканированной строки из программы Java:
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -16777216, -16777216, -1, -16777216, -1, -1 , -16777216, -1, -1, -1, -1, -16777216, -16777216, -1, -1, -1, -16777216, -1, -1, -1, -16777216, -1, - 16777216, -1, -16777216, -16777216, -1, -1, -1, -16777216, -1, -1, -1, -16777216, -16777216, -16777216, -1, -1, -16777216, -1, -1, -16777216, -16777216, -1, -16777216, -1, -1, -1, -16777216, -16777216, -16777216, -1, -16777216, -1, -16777216 , -1, -16777216, -16777216, -16777216, -1, -16777216, -16777216, -16777216, -16777216, -1, -16777216, -16777216, -1, -1, -16777216, -16777216, - 1, -16777216, -16777216, -1, -1, -16777216, -16777216, -16777216, -1, -16777216, -1, -16777216, -16777216, -16777216, -1, -16777216, -1, -16777216, -16777216, -16777216, -1, -16777216, -16777216, -1, -1, -1, -16777216, -1, -1, -1, -1, -16777216, -1 , -16777216, -16777216, -1, -1, -16777216, -16777216, -1, -16777216, -16777216, -1, -16777216, -16777216, -16777216, -16777216, -1, -16777216, - 1, -167772 16, -16777216, -1, -1, -1, -16777216, -1, -1, -1, -16777216, -16777216, -1, -1, -1, -16777216, -16777216, -16777216, -1, -16777216, -1, -16777216, -16777216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Сканирование данных из приложения Android :
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2170914, -13026247 , -16777216, -15197160, -4342083, -7565684, -15197160, -4342083, -1, -2170914, -13026247, -9736853, -1, -1, -1, -1, -1, -7565684, - 16777216, -16777216, -9736853, -1, -1, -1, -1052689, -13026247, -9736853, -1, -1, -1, -1052689, -13026247, -10855078, -1052689, -13026247, -10855078, -1052689, -13026247, -16777216, -16249848, -4342083, -1, -1, -1, -6512996, -16249848, -4342083, -1, -1, -1, -6512996, -16777216 , -16777216, -16777216, -16249848, -5394771, -1, -1052689, -11907766, -10855078, -1, -1, -6512996, -16777216, -16777216, -10855078, -1, -11907766, - 10855078, -1, -1, -1, -1, -11907766, -16777216, -16777216, -16777216, -16777216, -16777216, -5394771, -5394771, -16777216, -5394771, -5394771, -16777216, -5394771, -5394771, -16777216, -16777216, -16777216, -16777216, -5394771, -5394771, -16777216, -16777216, -16777216, -16777216, -16777216, -11907766, -1, -16857772, -1, -165507278 -16777216, -6512996, -1, -1, -108 55078, -16777216, -16777216, -6512996, -5394771, -16249848, -16777216, -11907766, -1052689, -1, -5394771, -16249848, -16777216, -16777216, -16777216, -6512991, -539477 -16249848, -16777216, -13026247, -1052689, -10855078, -16777216, -16777216, -16777216, -13026247, -1052689, -10855078, -13026247, -1052689, -10855078, -16777216, -16777216, -16777216, -16777216 , -13026247, -1052689, -9736853, -16777216, -16777216, -7565684, -1, -1, -1, -4342083, -16249848, -7565684, -1, -1, -1, -1, - 1, -9736853, -13026247, -2170914, -9736853, -16777216, -16777216, -7565684, -1, -1, -9736853, -16777216, -16777216, -7565684, -4342083, -15197160, -16777216, -14078935, -2170914, -9736853, -16777216, -16777216, -16777216, -16777216, -16777216, -7565684, -3223602, -15197160, -7565684, -3223602, -15197160, -16777216, -14078935, , -1, -1, -1, -8684165, -14078935, -2170914, -1, -1, -1, -8684165, -16777216, -16777216, -8684165, -1, -1, -1, - 3223602, -14078935, -16777216, -16777216, -16777216, -8684165, -3223602, -1 4078935, -8684165, -3223602, -14078935, -16777216, -15197160, -3223602, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
Мне кажется, что данные отсканированной строки из Java-программы более разумны. В приложении для Android я попытался поместить растровое изображение как в res / drawable / , так и в res / raw / , однако возвращаются одни и те же данные строки сканирования. Может ли кто-нибудь просветить меня, как это могло произойти?