Последняя версия библиотеки сканирования кода Android на основе ZXing.
Последняя версия библиотеки сканирования кода Android на основе ZXing.

ZXingLite

ZXingLite для Android — это упрощенная и чрезвычайно быстрая версия ZXing.,на основеZXingКод сканирования оптимизации библиотекии Создать Функция QR-кода/штрих-кода,Интерфейс сканирования QR-кода полностью поддерживает настройку.,Вы также можете реализовать функцию сканирования кода по умолчанию с помощью одной строки кода. В любом случае, все, что вы хотите, здесь.

Это так просто, почему бы вам не попробовать? Давай~

GIF-дисплей

Вы также можете скачать его напрямую Демо-приложение Эффект опыта

Описание свойства ViewfinderView

свойство

свойствотип

значение по умолчанию

свойствоиллюстрировать

maskColor

color

#60000000

Цвет маски вне области сканирования

frameColor

color

#7F1FB3E2

Цвет границы области сканирования

cornerColor

color

#FF1FB3E2

Цвет углов области сканирования

laserColor

color

#FF1FB3E2

Цвет лазерной линии в зоне сканирования

labelText

string

Сканирование текстовой информации подсказки

labelTextColor

color

#FFC0C0C0

Подскажите цвет шрифта текста

labelTextSize

dimension

14sp

Подскажите размер шрифта текста

labelTextPadding

dimension

24dp

Расстояние между текстом подсказки и областью сканирования

labelTextWidth

dimension

Ширина текста подсказки по умолчанию равна ширине представления.

labelTextLocation

enum

bottom

Позиция отображения текста подсказки

frameWidth

dimension

Ширина поля скан-кода

frameHeight

dimension

Высота коробки сканирования

laserStyle

enum

line

Сканирование лазерного рисунка

gridColumn

integer

20

Номер колонны лазерного сканирования сетки

gridHeight

integer

40dp

Высота лазерного сканирования сетки. Если значение равно 0dp, это означает динамическое покрытие.

cornerRectWidth

dimension

4dp

Ширина углов области сканирования

cornerRectHeight

dimension

16dp

Высота углов области сканирования

scannerLineMoveDistance

dimension

2dp

Расстояние перемещения линии сканирования каждый раз

scannerLineHeight

dimension

5dp

Высота строки сканирования

frameLineWidth

dimension

1dp

Ширина линии границы

scannerAnimationDelay

integer

20

Интервал задержки анимации сканирования, единица измерения: миллисекунды

frameRatio

float

0.625f

Рамка сканирования и соотношение экрана к корпусу

framePaddingLeft

dimension

0

Внутреннее пространство в левой части окна сканирования

framePaddingTop

dimension

0

Внутреннее пространство над полем скан-кода

framePaddingRight

dimension

0

Внутреннее пространство справа от поля скан-кода.

framePaddingBottom

dimension

0

Внутреннее пространство под полем скан-кода

frameGravity

enum

center

Выравнивание поля скан-кода

pointColor

color

#FF1FB3E2

Цвет итоговой точки

pointStrokeColor

color

#FFFFFFFF

Цвет полученной обводки точки

pointRadius

dimension

15dp

радиус результирующей точки

pointStrokeRatio

float

1.2

Отношение радиуса хода результирующей точки к радиусу результирующей точки.

pointDrawable

reference

Пользовательское изображение итоговой точки

showPointAnim

boolean

true

Отображать ли анимацию точек результата

laserDrawable

reference

Лазерное сканирование пользовательских изображений

viewfinderStyle

enum

classic

Поддержка стиля видоискателя: классический: классический стиль (с рамкой сканирования), популярный: популярный стиль (без рамки сканирования).

представлять

Gradle:

  1. В проекте build.gradle Добавьте удаленный склад внутри
Язык кода:javascript
копировать
allprojects {
    repositories {
        //...
        mavenCentral()
    }
}
  1. В модуле build.gradle Добавьте зависимость власти внутри
Язык кода:javascript
копировать
// AndroidX Версия
implementation 'com.github.jenly1314:zxing-lite:2.3.1'

Добрые советы

оZXingLiteВерсияскомпилировано сSDKВерсия要求

использовать v2.3.x При использовании вышеуказанной версии требуется compileSdkVersion >= 33

использовать v2.2.x При использовании вышеуказанной версии требуется compileSdkVersion >= 31

если compileSdkVersion < 31 пожалуйстаиспользовать v2.2.x предыдущая версия

Для совместимости Android 5.0 (N) ниже Версиястарые проекты(Прямо сейчас:minSdk<21),Можетиспользовать1.xстарая версия

v1.x старая версия v1.1.9

Язык кода:javascript
копировать
// AndroidX Версия
implementation 'com.king.zxing:zxing-lite:1.1.9-androidx'

// Android Support Версия
implementation 'com.king.zxing:zxing-lite:1.1.9'

для v1.x Версия,если JCenter закрыто, Можетиспользовать JitPack

Инструкция по применению

Существует несколько способов быстрой реализации идентификации по сканированию кода:

1. Непосредственно обратитесь к CaptureActivity или CaptureFragment. (Реализация сканирования кода по умолчанию)

2. Используйте настраиваемый CaptureActivityили или CaptureFragment и настройте макет. (Применимо к большинству сценариев,Нет необходимости заботиться о логике, связанной со сканированием кода.,Настроитьмакет Нужно перезаписатьgetLayoutIdметод)Пример реализации:CustomCaptureActivity и QRCodeActivity

3. Просто создайте экземпляр CameraScan в действии или фрагменте вашего проекта. (Применимо для тех, кто хочет написать интерактивную логику в интерфейсе сканирования QR-кода.,И из-за структуры проекта и других причин,не может напрямуюиликосвенныйнаследоватьCaptureActivityилиCaptureFragmentчасиспользовать)Пример реализации:CustomFullScanActivity

4. Реализуйте один из вариантовCameraScan самостоятельно. Вы можете обратиться к классу реализации по умолчанию DefaultCameraScan. Остальные шаги аналогичны методу 3. (Расширенное расширенное использование, будьте осторожны)

О Камере Скан

CameraScan Поскольку это (основной) базовый класс сканирования камеры; все, что связано со сканированием камеры, прямо или косвенно контролируется на основе этого класса.

О конфигурации камеры

В основном конфигурации, связанные с камерой, такие как: передняя и задняя камеры, настройки предварительного просмотра камеры, конфигурации, связанные с анализом изображений и т. д.

Вы можете напрямую реализовать встроенную в библиотеку конфигурацию камеры: CameraConfigAspectRatioCameraConfig и ResolutionCameraConfig

Вот краткое описание их характеристик:
  • CameraConfig:Камера по умолчанию Конфигурация。
  • AspectRatioCameraConfig:По соотношению сторон Конфигурациякамера,Сделайте выходное анализируемое изображение максимально близким к соотношению экрана.
  • ResolutionCameraConfig:По размеру Конфигурациякамера的目标图像大小,Сделайте разрешение выходного анализируемого изображения максимально приближенным к размеру экрана.

Вы также можете настроить или переопределить CameraConfig в options Метод, настройте конфигурацию по мере необходимости.

Здесь особенное Советы: Конфигурация по умолчанию При анализе размера изображения без настройки камеры приоритет будет отдан: Пейзаж использовать: 640 * 480 Вертикальный экран: 480 * 640;

В зависимости от качества изображения, вот плюсы и минусы конфигурации по умолчанию:

  • Достоинства: Потому что качество изображения невысокое.,Поэтому его также можно держать на устройствах с низкой конфигурацией.,Таким образом, его можно максимально адаптировать к различным устройствам;
  • Недостатки: Именно из-за невысокого качества изображения это может незначительно повлиять на скорость обнаружения и распознавания. Например, на некоторых моделях впечатления не очень хорошие.
  • Вывод: Вам предстоит сделать выбор между адаптацией, производительностью и опытом и найти точку баланса.

Когда использовать по умолчанию CameraConfig Если на некоторых моделях впечатления неудовлетворительны, вы можете попробовать использовать AspectRatioCameraConfig или ResolutionCameraConfig Будут неожиданные чудесные эффекты.

о Analyzer

Analyzer Это определенный интерфейс анализатора, который в основном используется для анализа данных кадра предварительного просмотра камеры путем реализации; Analyzer Процесс анализа можно настроить.

о CaptureActivity и CaptureFragment

CaptureActivity и CaptureFragment Будучи базовым классом интерфейса предварительного просмотра сканирования, его основная цель — облегчить быстрое сканирование и распознавание кода.

Интерфейс предварительного просмотра сканирования заблокирован CameraScan,и обработано CameraScan Инициализация (например, разрешения камеры, предварительный просмотр камеры, жизненный цикл и другие сведения)

Пример использования

Пример конфигурации CameraScan

CameraScan Он содержит некоторые методы, поддерживающие цепные вызовы, то есть вызов возвращает CameraScan Некоторые предложения конфигурации сами по себе называются startCamera() метод перед вызовом.

еслипереданонаследовать CaptureActivity или ВОЗ CaptureFragment или Сканирование камеры, реализованное его подклассами, можно найти в initCameraScan() Получить метод CameraScan , а затем при необходимости измените соответствующие конфигурации.

Пример 1:

Язык кода:javascript
копировать
// Загрузите CameraScan и отсканируйте соответствующие настройки конфигурации. CameraScanОн содержит некоторые методы, поддерживающие цепные вызовы, то есть вызов ВозвращаетCameraScan, перед запуском которого предлагается вызвать некоторую Конфигурацию.
getCameraScan().setPlayBeep(true)//Устанавливаем, воспроизводить ли звуковые эффекты, значение по умолчанию — false
        .setVibrate(true)//Установить, следует ли вибрировать, значение по умолчанию — false
        .setCameraConfig(new CameraConfig())//Установить информацию о конфигурации камеры. CameraConfig может переопределить метод параметров для настройки конфигурации.
        .setNeedAutoZoom(false)//QR-код можно автоматически масштабировать, если он слишком мал, значение по умолчанию — false
        .setNeedTouchZoom(true)//Поддерживает масштабирование с помощью касания несколькими пальцами, значение по умолчанию — true
        .setDarkLightLux(45f)//Устанавливаем порог достаточно темного света (единица измерения: люкс), необходимо пройти {@link #bindFlashlightView(View)}Настройте фонарик, чтобы он работал эффективнее
        .setBrightLightLux(100f)//Устанавливаем порог достаточно яркого света (единица измерения: люкс), необходимо пройти {@link #bindFlashlightView(View)}Настройте фонарик, чтобы он работал эффективнее
        .bindFlashlightView(ivFlashlight)//Привязка фонарика. После привязки кнопка фонарика может динамически отображаться и скрываться в зависимости от датчика освещенности.
        .setOnScanResultCallback(this)//Установите обратный вызов для результата сканирования. Если вам нужно обработать его самостоятельно, если вам нужно непрерывно сканировать, вы можете установить обратный вызов и самостоятельно обработать соответствующую логику.
        .setAnalyzer(new MultiFormatAnalyzer(new DecodeConfig()))//Установите анализатор. DecodeConfig может предоставить некоторую информацию при декодировании. Если встроенный не соответствует вашим потребностям, вы также можете настроить реализацию.
        .setAnalyzeImage(true);//Установите, следует ли анализировать изображения, значение по умолчанию — true. если установлено значение false, что эквивалентно отключению функции распознавания QR-кода.
        
// Запуск предварительного просмотра (если реализуется через наблюдениеCaptureActivityилиCaptureFragment, поэтому нет необходимости вызывать startCamera)
getCameraScan().startCamera();

// Установите, включен ли фонарик (фонарик) или нет. Для эффективности его необходимо вызывать после запуска камеры.
getCameraScan().enableTorch(torch);

Пример 2: (Пример конфигурации, в которой необходимо только распознать QR-код)

Язык кода:javascript
копировать
// Инициализация декодирования
DecodeConfig decodeConfig = new DecodeConfig();
decodeConfig.setHints(DecodeFormatManager.QR_CODE_HINTS) //если только необходимость распознавать QR-код, поэтому эффективность настройки будет выше. Если не установлено, по умолчанию используется DecodeFormatManager.DEFAULT_HINTS.
    .setFullAreaScan(false)//Установить, распознавать ли всю область, значение по умолчанию — false
    .setAreaRectRatio(0.8f)//Установите соотношение области распознавания, по умолчанию установлено значение 0,8. Установленное соотношение в конечном итоге обрежет прямоугольник на основе этого соотношения в области предварительного просмотра для сканирования и распознавания кода.
    .setAreaRectVerticalOffset(0)//Устанавливает вертикальное смещение области распознавания, по умолчанию 0, 0 означает центрирование, это может быть отрицательное число
    .setAreaRectHorizontalOffset(0);//Устанавливаем горизонтальное смещение области распознавания, по умолчанию 0, 0 означает центрирование, это может быть отрицательное число

// Перед запуском предварительного просмотра настройте анализатор на распознавание только QR-кодов.
getCameraScan()
        .setCameraConfig(new AspectRatioCameraConfig(this))//设置камера Конфигурация,использовать AspectRatioCameraConfig
        .setVibrate(true)//Установить, следует ли вибрировать, значение по умолчанию — false
        .setAnalyzer(new MultiFormatAnalyzer(decodeConfig)); //Установим анализатор. Некоторые встроенные анализаторы не соответствуют вашим потребностям. Вы также можете настроить их.

Пример макета

PreviewView Для предварительного просмотра в макете должен быть хотя бы один PreviewView,еслиданаследовать CaptureActivity или CaptureFragment,контрольidМожетперезаписатьgetPreviewViewIdметод Настроить

ViewfinderView Он используется для визуализации просмотра скан-кода и предоставления пользователю визуального эффекта. Само распознавание скан-кода не имеет к этому никакого отношения. CaptureActivity или CaptureFragment,контрольIDМожет复写getViewfinderViewIdметод Настроить,По умолчанию previewView,Возврат 0 означает, что нет необходимости ViewfinderView

ivFlashlight это макет встроенного фонарика, если это необходимо CaptureActivity или CaptureFragment,контрольidМожет复写getFlashlightIdметод Настроить,По умолчанию ivFlashlight。Возврат 0 означает, что нет необходимости内置手电筒。您也Может以自己去定义

Может Настроитьмакет(перезаписатьgetLayoutIdметод),В макете должен быть хотя бы один PreviewView

Язык кода:javascript
копировать
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.camera.view.PreviewView
        android:id="@+id/previewView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <com.king.zxing.ViewfinderView
        android:id="@+id/viewfinderView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ImageView
        android:id="@+id/ivFlashlight"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="@dimen/zxl_flashlight_margin_top"
        android:contentDescription="@null"
        android:src="@drawable/zxl_flashlight_selector" />
</FrameLayout>

или Добавьте в свой макет

Язык кода:javascript
копировать
    <include layout="@layout/zxl_capture"/>

пример кода

Инструмент CodeUtils Пример использования (QR-код/штрих-код)

Язык кода:javascript
копировать
    // Создать QR-код
    CodeUtils.createQRCode(content,600,logo);
    // Создать штрих-код
    CodeUtils.createBarCode(content, BarcodeFormat.CODE_128,800,200);
    // Разобрать штрих-код/QR-код
    CodeUtils.parseCode(bitmap);
    // Разобрать QR-код
    CodeUtils.parseQRCode(bitmap);

Полный пример сканирования QR-кода путем наследования CaptureActivity

Язык кода:javascript
копировать
public class QRCodeActivity extends CaptureActivity {


    @Override
    public int getLayoutId() {
        return R.layout.qr_code_activity;
    }

    @Override
    public void initCameraScan() {
        super.initCameraScan();

        //Инициализация декодирования
        DecodeConfig decodeConfig = new DecodeConfig();
        decodeConfig.setHints(DecodeFormatManager.QR_CODE_HINTS) //если только необходимость распознавать QR-код, поэтому эффективность настройки будет выше. Если не установлено, по умолчанию используется DecodeFormatManager.DEFAULT_HINTS.
            .setFullAreaScan(false)//Установить, распознавать ли всю область, значение по умолчанию — false
            .setAreaRectRatio(0.8f)//Установите соотношение области распознавания, по умолчанию установлено значение 0,8. Установленное соотношение в конечном итоге обрежет прямоугольник на основе этого соотношения в области предварительного просмотра для сканирования и распознавания кода.
            .setAreaRectVerticalOffset(0)//Устанавливает вертикальное смещение области распознавания, по умолчанию 0, 0 означает центрирование, это может быть отрицательное число
            .setAreaRectHorizontalOffset(0);//Устанавливаем горизонтальное смещение области распознавания, по умолчанию 0, 0 означает центрирование, это может быть отрицательное число

        //Перед запуском предварительного просмотра настройте анализатор на распознавание только QR-кодов.
        getCameraScan()
                .setVibrate(true)//Установить, следует ли вибрировать, значение по умолчанию — false
                .setNeedAutoZoom(true)//QR-код можно автоматически масштабировать, если он слишком мал, значение по умолчанию — false
                .setAnalyzer(new MultiFormatAnalyzer(decodeConfig)); //Установим анализатор. Некоторые встроенные анализаторы не соответствуют вашим потребностям. Вы также можете настроить их.
    }


    /**
     * Обратный вызов результатов сканирования кода
     * @param result
     * @return Возврат false означает отсутствие перехвата, интерфейс сканирования QR-кода будет закрыт, а результат будет возвращен на вызывающий интерфейс;
     *  Возврат true означает перехват, и вам придется разобраться с логикой самостоятельно. Если isAnalyze имеет значение true, изображение будет продолжать анализироваться по умолчанию (то есть непрерывное сканирование).
     *  если只да想拦截Обратный вызов результатов сканирования кода,Я не хочу продолжать анализировать изображение (не хочу сканировать непрерывно),Пожалуйста, настройте логику сканирования кода перехвата, изменив
     *  Используйте {@ссылку CameraScan#setAnalyzeImage(boolean)},
     *  Потому что {@link Метод CameraScan#setAnalyzeImage(boolean)} может динамически контролировать, следует ли продолжать анализ изображения.
     *
     */
    @Override
    public boolean onScanResultCallback(Result result) {
        /*
         * Потому что метод setAnalyzeImage может динамически контролировать, следует ли продолжать анализ изображения.
         *
         * 1. Поскольку по умолчанию для анализа изображений установлено значение true, если вы хотите поддерживать непрерывное сканирование, просто верните true.
         * Если логика обработки непрерывного сканирования сложна, перед обработкой логики вызовите getCameraScan().setAnalyzeImage(false).
         * чтобы прекратить анализ изображения, а затем вызвать getCameraScan().setAnalyzeImage(true), чтобы продолжить анализ изображения после обработки логики.
         *
         * 2. если只да想拦截Обратный вызов результатов сканирования кодаразберись с логикой сам,Но я не хочу продолжать анализировать изображение (то есть не хочу сканировать непрерывно),Может通过
         * Вызовите getCameraScan().setAnalyzeImage(false), чтобы прекратить анализ изображения.
         */
        return super.onScanResultCallback(result);
    }
}

Подробнее об использовании,пожалуйста Проверятьappв Исходный код Пример использованияилипрямой ПроверятьСправочная документация по API

другой

AndroidManifest

если вы напрямую используете значение по умолчанию CaptureActivity , вам необходимо зарегистрировать его в AndroidManifest вашего проекта. CaptureActivity,Конфигурацияследующее

Язык кода:javascript
копировать
    <activity
        android:name="com.king.zxing.CaptureActivity"
        android:screenOrientation="portrait"
        android:theme="@style/CaptureTheme"/>
JDK-версия

Требуется компиляция JDK8+, добавьте Конфигурацию в android{} вашего проекта вbuild.gradle:

Язык кода:javascript
копировать
compileOptions {
    targetCompatibility JavaVersion.VERSION_1_8
    sourceCompatibility JavaVersion.VERSION_1_8
}
десахаризация API

когдаиспользоватьZXingLiteдля v2.3.x Вот и все Версиячас,(Прямо сейчас:Обновите zxing до версии 3.5.1 или более поздняя версия); если она должна быть совместима с Android. 7.0 (N) ниже Версия(Прямо сейчас:minSdk<24),API Java 8 и выше доступен через десахаризацию.

Язык кода:javascript
копировать
compileOptions {
    // Flag to enable support for the new language APIs
    coreLibraryDesugaringEnabled true
    // Sets Java compatibility to Java 8
    targetCompatibility JavaVersion.VERSION_1_8
    sourceCompatibility JavaVersion.VERSION_1_8
}
Язык кода:javascript
копировать
dependencies {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.2'
}

Связанные рекомендации

MLKit Мощный и простой в использовании набор инструментов. Через МЛ Комплект позволяет легко реализовать распознавание текста, распознавание штрих-кода, маркировку изображений, распознавание лиц, обнаружение объектов и другие функции.
WeChatQRCode Библиотека распознавания кода при сканировании, перенесенная из механизма QR-кода WeChat с открытым исходным кодом OpenCV.

Примечания к выпуску

v2.x переработан на основе CameraX.

Преимущества версии 2.x перед версией 1.x
  • Версия 2.x основана на CameraX, которая абстрагирует весь процесс и имеет более высокую масштабируемость.
  • v2.x использует камеру (она должна покрывать весь экран))
специальные инструкции v2.x
  • v2.xесли функцию сканирования кода реализуете через наблюдениеCaptureActivityилиCaptureFragment,Затем соответствующее приложение с динамическим разрешением обрабатывается в CaptureActivityилиCaptureFragment.
  • v2.xесли функцию сканирования кода реализуете через наблюдениеCaptureActivityилиCaptureFragment,если Хотите изменить Конфигурацию по умолчанию,Может重写initCameraScanметод,Просто измените конфигурацию CameraScan.,если Никакой модификации не требуется Конфигурация,прямой在跳转原界面的onActivityResult 接收扫码结果Прямо сейчас Может(Более具体详情Может参见appв Пример использования)。
описание v1.x

【v1.1.9】 еслитыиспользовать 1.x Пожалуйста, нажмите на ссылку ниже, чтобы просмотреть текущую версию филиала. 2.x версия основана на CameraX Требуется рефакторинг, API существенно изменилось, поэтому обновляйтесь с осторожностью.

Посмотреть версию AndroidX 1.x ветвь Пожалуйста, нажмите здесь

Посмотреть Android Поддержка версии 1.x ветвь Пожалуйста, нажмите здесь

Проверять 1.x Справочная документация по API

запись версии

v2.3.1:2023-3-4
  • Обновите CameraX до версии 1.2.1.
  • Обновите Gradle до версии 7.5.
  • Оптимизировать детали
v2.3.0:2022-12-11
  • Обновите CameraX до версии 1.2.0.
  • Обновите zxing до версии 3.5.1
  • Обновите compileSdkVersion до 33.
Проверять Болеезапись версии
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose