Создание 2D штрих-кода (например, QR Code, Data Matrix, PDF417) на iPhone и Android - PullRequest
4 голосов
/ 30 ноября 2010

Мне нужна библиотека для генерации двумерного штрих-кода на iPhone и Android (и, предпочтительно, WM7 и, возможно, также j2me) - идея состоит в том, чтобы передавать информацию на другое устройство с соответствующим сканером (декодером).Какие есть хорошие варианты?

ZXing - это опция, в частности для аспекта чтения / декодирования, но я хочу создать их на этих устройствах.

Ответы [ 9 ]

3 голосов
/ 28 августа 2012

Я попробовал все решения, описанные выше, но безуспешно, но затем нашел эту библиотеку: akopanev КСН-QR-Code-кодировщик

Открытый исходный код, прост в реализации, имеет пример проекта xcode, прекрасно работает

автор - Андрей Копанев

3 голосов
/ 30 ноября 2010

Лучшим вариантом должна быть библиотека ZXing .Я не уверен насчет поддержки Windows Phone 7.

2 голосов
/ 09 марта 2011

Я успешно использую ZXING для кодирования QR-кодов.Однако, по крайней мере в текущей версии, кажется, что она имеет ограниченную поддержку кодирования других символов (например, PDF-417).

Я использую следующий фрагмент кода:

    // Encode the bitmap and display it on the screen
    try {
        // This will produce a 150x150 QR Barcode and display it on the screen.
        Bitmap bm = encodeAsBitmap(barcodeContentString, BarcodeFormat.QR_CODE, 150, 150);

        if(bm != null) {
            barcodeImage.setImageBitmap(bm);
        }
}
    catch (WriterException e) { ... }

В этом примере barcodeContentString - это данные, которые кодируются.BarcodeImage - это стандартный ImageView.

Я не показываю его здесь, но я включаю экран на весь период времени, в течение которого отображается штрих-код.Таким образом, я могу успешно сканировать штрих-код с помощью QR-совместимого сканера штрих-кода.

2 голосов
/ 15 декабря 2010

ZXING будет работать для Android. Кодировщик Java не был перенесен на C ++ (не стесняйтесь переходить и вносить свой вклад ... не должно быть так сложно.) Пока этого не произошло, я использовал кодировщик psytec (http://groups.google.com/group/zxing/msg/27e421daeb510d0f). на японском, но это довольно просто.

Мне нечего добавить на WM7. Это C #? Существует порт Zxing на C #, но я не знаю никого, кто бы активно его поддерживал, и не знаю, включает ли он кодировщик.

1 голос
/ 19 декабря 2010

Также проверьте (я не мог опубликовать их, потому что stackoverflow предотвратил более одного URL): Версия Python (как указано на сайте выше): http://pyqrcode.sourceforge.net/

1 голос
/ 19 декабря 2010

Также проверьте (я не мог опубликовать их, потому что stackoverflow предотвратил более одного URL): И версия .net (как указано на сайте выше): http://www.codeproject.com/KB/cs/qrcode.aspx

1 голос
/ 19 декабря 2010

Вот еще одна версия Java: http://qrcode.sourceforge.jp/

Резюме - «Этот проект разрабатывает и распространяет библиотеку декодирования / кодирования QR-кода под GPL v2. Целью проекта является использование встроенной информации QR-кода для программируемых устройств во всем мире. QR-код является промышленным стандартом, JIS-X- 0510 и ISO / IEC18004. "

1 голос
/ 01 декабря 2010

Если вы собираетесь перенести на другое устройство онлайн, то вы можете использовать сторонний QR-код API для получения изображения.Вызов API REST - лучший вариант кроссплатформенных мобильных приложений.

Этот API делает это для URI: http://www.tag.cx/qr-codes/

Вы также можете разместить свой собственныйAPI генератора QR-кода.

0 голосов
/ 01 ноября 2015

Возможно, я уже слишком поздно, чтобы помочь вам, но я нашел хороший SDK для кодов Data Matrix.Более подробные инструкции есть на их сайте ЗДЕСЬ , но для предоставления кода здесь вы должны сделать что-то вроде этого:

OBLinear *pLinear = [OBLinear new];
[pLinear setNBarcodeType: OB_CODE128A];
[pLinear setPDataMsg: [[NSString alloc] initWithString:@"AB"]];
//[pLinear setPSupData: [[NSString alloc] initWithString:@"14562"]];
[pLinear setFX: USER_DEF_BAR_WIDTH];
[pLinear setFY: USER_DEF_BAR_HEIGHT];

[pLinear setFLeftMargin:USER_DEF_LEFT_MARGIN];
[pLinear setFRightMargin:USER_DEF_RIGHT_MARGIN];
[pLinear setFTopMargin:USER_DEF_TOP_MARGIN];
[pLinear setFBottomMargin:USER_DEF_BOTTOM_MARGIN];

[pLinear setNRotate:OB_Rotate0];

UIFont *pTextFont = [UIFont fontWithName: @"Arial" size: 8.0f];
[pLinear setPTextFont: pTextFont];

[pLinear drawWithView:self.view];
...