1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jenly1314-ZXingLite

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ZXingLite for Android — это упрощённая и оптимизированная версия ZXing, которая основана на библиотеке ZXing. Она специализируется на функциях сканирования и генерации QR-кодов и штрих-кодов. ZXingLite позволяет быстро реализовать функции распознавания сканирования.

Gif-демонстрация

GIF.gif

Вы также можете скачать демонстрационное приложение (https://raw.githubusercontent.com/jenly1314/ZXingLite/master/app/release/app-release.apk) для тестирования его работы.

Введение

Gradle:

  1. Добавьте удалённый репозиторий в Project/build.gradle или setting.gradle:

    repositories {
        //...
        mavenCentral()
    }
  2. Включите зависимость в Module/build.gradle:

    implementation 'com.github.jenly1314:zxing-lite:3.2.0'
    

Примечание:

Требования к версии SDK для разных версий ZXingLite:

— Для версий 3.1.x и выше требуется compileSdkVersion >= 34.

— Для версий 3.0.x и выше требуется compileSdkVersion >= 33.

— Если compileSdkVersion < 33, рекомендуется использовать версию 2.x (https://github.com/jenly1314/ZXingLite/tree/2.x).

Использование:

Изменения в версии 3.x:

Основные изменения по сравнению с версией 2.x включают:

— Удаление классов, связанных с CameraScan, в версии 2.x. Начиная с версии 3.0.0, используется библиотека CameraScan (https://github.com/jenly1314/CameraScan), которая поддерживается отдельно.

— Удаление ViewfinderView в версии 2.x. С версии 3.0.0 используется ViewfinderView (https://github.com/jenly1314/ViewfinderView), который также поддерживается отдельно.

— Удаление базовых классов CaptureActivity и CaptureFragment в версии 2.x. В версии 3.0.0 используются BarcodeCameraActivity и BarcodeCameraFragment.

Помимо этих изменений, использование версии 3.x в целом аналогично версии 2.x, но с дополнительной оптимизацией.

Если вы переходите с версии 2.x на 3.x, обратите внимание на эти основные различия, особенно на то, что библиотеки, которые были отделены от ZXingLite, теперь имеют другие имена пакетов. Рекомендуется тщательно подходить к обновлению.

Для пользователей версии 2.x рекомендуется обратиться к ветке v2.x (https://github.com/jenly1314/ZXingLite/tree/2.x).

В версии 3.x используется CameraScan как основная библиотека для реализации функций анализа и обнаружения. Поэтому рекомендуется сначала ознакомиться с использованием CameraScan, а затем интегрировать и использовать ZXingLite.

Основные классы:

Анализаторы:

  • MultiFormatAnalyzer: распознаёт различные форматы.
  • QRCodeAnalyzer: распознаёт только QR-коды.

Рекомендуется использовать MultiFormatAnalyzer, если вам нужно распознавать различные типы штрих-кодов, или QRCodeAnalyzer, если требуется только распознавание QR-кодов.

DecodeConfig используется для настройки параметров при распознавании штрих-кода. Он позволяет контролировать процесс распознавания и упрощает его.

DecodeFormatManager классифицирует и разделяет различные типы штрих-кодов для удобства настройки.

Класс CodeUtils предоставляет инструменты для создания и анализа штрих-кодов. Пример использования:

// Создание QR-кода
CodeUtils.createQRCode(content,600,logo);
// Создание штрих-кода
CodeUtils.createBarCode(content, BarcodeFormat.CODE_128,800,200);
// Анализ штрих-кода/QR-кода
CodeUtils.parseCode(bitmap);
// Анализ QR-кода
CodeUtils.parseQRCode(bitmap);
``` **О BarcodeCameraScanActivity**

Пример полного наследования BarcodeCameraScanActivity для реализации сканирования двумерного кода:
```java
public class QRCodeScanActivity extends BarcodeCameraScanActivity {

    @Override
    public void initCameraScan(@NonNull CameraScan<Result> cameraScan) {
        super.initCameraScan(cameraScan);
        // 根据 необходимости устанавливаем конфигурацию CameraScan
        cameraScan.setPlayBeep(true);
    }

    @Nullable
    @Override
    public Analyzer<Result> createAnalyzer() {
        // Инициализируем конфигурацию декодирования
        DecodeConfig decodeConfig = new DecodeConfig();
        decodeConfig.setHints(DecodeFormatManager.QR_CODE_HINTS) // Если есть только потребность в распознавании двумерных кодов, такая настройка будет более эффективной, по умолчанию используется DecodeFormatManager.DEFAULT_HINTS
                .setFullAreaScan(false) // Устанавливаем, следует ли выполнять полное сканирование области, по умолчанию false
                .setAreaRectRatio(0.8f) // Устанавливаем коэффициент распознавания области, по умолчанию 0.8, окончательное распознавание будет выполнено на основе этого коэффициента в прямоугольной области предварительного просмотра
                .setAreaRectVerticalOffset(0) // Устанавливаем вертикальное смещение области распознавания, по умолчанию 0, что означает центрирование, может быть отрицательным числом
                .setAreaRectHorizontalOffset(0); // Устанавливаем горизонтальное смещение области распознавания, по умолчанию 0, что означает центрирование, может быть отрицательным числом
        // В BarcodeCameraScanActivity по умолчанию используется MultiFormatAnalyzer, если требуется только распознавать двумерные коды, здесь можно использовать QRCodeAnalyzer
        return new MultiFormatAnalyzer(decodeConfig);
    }

    /**
     * Идентификатор макета; можно настроить макет, переопределив этот метод
     *
     * @return Идентификатор макета
     */
    @Override
    public int getLayoutId() {
        return R.layout.activity_qrcode_scan;
    }

    @Override
    public void onScanResultCallback(@NonNull AnalyzeResult<Result> result) {
        // Останавливаем анализ
        getCameraScan().setAnalyzeImage(false);
        // Возвращаем результат
        Intent intent = new Intent();
        intent.putExtra(CameraScan.SCAN_RESULT, result.getResult().getText());
        setResult(Activity.RESULT_OK, intent);
        finish();
    }
}

Использование BarcodeCameraScanFragment аналогично.

Для получения дополнительной информации о использовании, пожалуйста, обратитесь к исходному коду приложения или непосредственно к документации API (https://jenly1314.github.io/ZXingLite/api/).

Другие

JDK версия и API де-сахарификация

Если вы используете ZXingLite версии v2.3.x или выше (то есть обновляете zxing до v3.5.1), и если вам нужно поддерживать Android 7.0 (N) или ниже (то есть minSdk < 24), вы можете использовать Java 8 и более поздние версии API через де-сахарификацию.

compileOptions {
    // Флаг для включения поддержки новых языковых API
    coreLibraryDesugaringEnabled true
    // Устанавливает совместимость с Java на Java 11
    targetCompatibility JavaVersion.VERSION_11
    sourceCompatibility JavaVersion.VERSION_11
}

dependencies {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.3'
}

Рекомендуемые ресурсы

  • MLKit — мощный и простой в использовании набор инструментов. С помощью ML Kit вы можете легко реализовать функции распознавания текста, штрих-кодов, маркировки изображений, обнаружения лиц и объектов.
  • WeChatQRCode — это библиотека распознавания штрих-кодов с открытым исходным кодом, основанная на OpenCV, которая была перенесена из WeChat.
  • CameraScan — это упрощённая базовая библиотека для сканирования и распознавания.
  • ViewfinderView — это представление для захвата изображений: оно в основном используется для рендеринга анимационных эффектов, связанных со сканированием.

Журнал версий

Версия Дата Изменения
v3.2.0 2024-07-16 Обновлён CameraScan до v1.2.0, обновлён ViewfinderView до v1.2.0, оптимизированы детали
v3.1.1 2024-04-29 Обновлён CameraScan до v1.1.1, обновлён zxing до v3.5.3
v3.1.0 2023-12-31 Обновлён CameraScan до v1.1.0, обновлён zxing до v3.5.2, обновлён compileSdkVersion до 34, обновлён Gradle до v8.0
v3.0.1 2023-9-13 Обновлён CameraScan до v1.0.1, обновлён ViewfinderView до v1.1.0
v3.0.0 2023-8-23 Разделил и реорганизовал общие базовые классы, в дальнейшем будет проще поддерживать; удалил зависимость от CameraScan, заменил её на CameraScan; заменил ViewfinderView на ViewfinderView; удалил CaptureActivity и CaptureFragment, заменил их на BarcodeCameraScanActivity и BarcodeCameraScanFragment; оптимизировал опыт работы с производительностью процесса анализа сканирования (оптимизировал процесс анализа данных кадра)
v2.4.0 2023-4-15 Оптимизирована конфигурация по умолчанию для CameraScan (конфигурация CameraConfig), оптимизирован пользовательский атрибут ViewfinderView (добавлен laserDrawableRatio), оптимизирована обработка данных YUV в ImageAnalyzer, обновлен CameraX до v1.2.2

Посмотреть больше записей журнала версий

Пожертвования

Если вам нравится ZXingLite или вы считаете, что ZXingLite помог вам, вы можете поддержать его, поставив звезду. Ваша поддержка — моя мотивация. Спасибо!

Вы также можете сканировать следующий QR-код, чтобы поддержать автора:

О себе

Мой блог GitHub Gitee CSDN
[Блог автора] [GitHub автора] [Gitee автора] [CSDN автора]
Официальный аккаунт в WeChat Jenly666
Электронная почта Gmail jenly1314@gmail.com
Электронная почта QQ jenly1314@vip.qq.com
QQ группа 20867961
QQ группа 64020761

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Ускоренная и оптимизированная версия ZXing: улучшенные функции сканирования и создания двумерных штрих-кодов. Поддерживаются стили сканирования: линейчатый стиль WeChat и сетчатый стиль Alipay. Всего несколько строк кода — и у вас есть функция сканирования. С ZXing Lite интеграция становится ещё проще (скорость сканирования как в WeChat). Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/jenly1314-ZXingLite.git
git@api.gitlife.ru:oschina-mirror/jenly1314-ZXingLite.git
oschina-mirror
jenly1314-ZXingLite
jenly1314-ZXingLite
master