Telegram Web Link
3. Обработка изображения — преобразуем изображение в монохромное (monochrome) и инвертирует его (invert). На скриншоте снизу мы применяем фильтры, в левом верхнем углу можно увидеть изображение, на которое были применены фильтры.
❤‍🔥4
4. Показываем получившееся изображение на экране в левом углу для дебага: вызывая колбэк onPreview с обработанным изображением.
❤‍🔥4
5. Пытаемся распознать баркод с использованием Vision Framework для разных ориентаций изображения (.up, .right, .left, .down). Разных типов изображений (монохромное, инвертированное). Если штрихкод найден, вызываем onBarcodeRead и прекращает дальнейший анализ. На картинках показано обнаружение баркода в разных ориентациях
❤‍🔥2
При обработке изображений мы используем следующие методы для обработки

1. invert — инвертирует цвета изображения. Использует фильтр CIColorMatrix для инверсии цветовых каналов. Про ColorMatrix можно почитать здесь: https://docs.rainmeter.net/tips/colormatrix-guide/

2. monochrome — преобразует изображение в черно-белое. Регулирует яркость, контраст и насыщенность через фильтр CIColorControls, увеличиваем экспозицию с помощью CIExposureAdjust.

Эти преобразования повышают вероятность успешного распознавания баркода в различных условиях при недостаточном освещении.
❤‍🔥3
До и После

До
1. Не могли отсканировать баркод средствами библиотек (react-native-vision).
2. Не могли кастомизировать библиотеки таким образом, чтобы кропнуть зону поиска.
3. Невозможно было наложить фильтры, на том же Android без инвертирования изображения, сканирование баркода было всегда безуспешным.
4. Не могли выбрать нужную камеру,

После
1. Получили полностью кастомный модуль, который легко можно настроить под свои нужды.
2. Сканируем баркод на всевозможных iOS и Android устройствах.
3. Не думаем искать готовое решение, перебирая кучу библиотек.
❤‍🔥3👍1
Другие модули, которые мы написали в рамках данного проекта:
1. Модуль для подключения по Wifi.
2. Модуль для взаимодействия с Ricoh 360 camera (получение live stream, снятие фото, удаление, получение настроек).
3. Просмотрщик 360 фотографий.

Также нам помогали нативные разработчики для написания:
• модуля для создания RoomScan, RoomPlan;
• модуля для создания 360 фото, используя камеру телефона (панорамы).
❤‍🔥3
Плюсы использования нативных модулей очевидны — это, во-первых, полный контроль над ходом решения задачи, во-вторых появляется уверенность в том, что нельзя решить задачу, если нет соответствующей библиотеки (например для того же наложения фильтров на изображения).

Из минусов, пожалуй, только страхи, что нужно лезть в нативный код и что-то писать самому, но вы всегда можете попросить помощи нативных разработчиков, которые могут подсказать вам, проревьюить ваш код или даже написать его. Но самостоятельные попытки покопаться в нативном коде, на мой взгляд, точно помогут подтянуть свои скилы и улучшить перспективы на рынке труда по сравнению с кандидатами, которые используют React Native без погружения в натив. Последнее, по-моему, невозможно, мне также близок JavaScript и TypeScript, но поставленные задачи как-то приходится решать, поэтому избежать написания нативных модулей не получилось.

Несмотря на то, что я писал нативные модули на многих проектах, сказать, что хорошо научился писать нативный код точно не могу (так что не кидайте камни в мой огород, глядя на исходный код). Все же я хочу оставаться React/React-Native разработчиком.
❤‍🔥3
В завершение хочу сказать вот что. Не бойтесь писать нативные модули, начните с малого. Например, можете начать с этой ссылки: https://reactnative.dev/docs/native-platform

Всем спасибо за ваши реакции и комментарии! До следующих встреч! 🫶
❤‍🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Пока мы тут марафонили, Microsoft опубликовала ИИ-агент OmniParser v2. Он прямо таки работает за вас, ориентируется в браузере и при этом, вы видите все, что он делает.

#ai
3🔥2
Актуальные вакансии февраля кого мы ищем прямо сейчас

От нас:
- удалёнка без привязки к конкретной стране,
- гибкий график,
- возможность работать по контракту заграницей,
- внутренние курсы английского,
- стабильные долгие проекты,
- новый ПК или мак для работы в любую точку мира,
- сильная команда.

Откликнуться можно прямо на сайте или через почту [email protected].

#jobs
От одноразовых покупок к подпискам: как мы внедряли подписки ничего о них не зная

📃 https://mrk.dev/subscriptions

Это история будет о том, как в условиях жестких дедлайнов и минимальных ресурсов мы, двое разработчиков, были вынуждены внедрить подписки через сторонние сервисы, такие как Google Play, App Store и Stripe на нашем проекте. Некоторые детали намеренно были опущены для сохранения драматургии и подписанного NDA. Проект уже включал сложные функции, такие как система рекомендаций, лидерборды, вознаграждения, разные роли пользователей и все это размазано на микросервисы. Кстати, мог ли пользователь сменить роль в любой момент? Это было бы намного проще, если бы не мог, не так ли?


Читайте статью от Паши Чернова — нашего бэкенд-разработчика и автора одно из марафонов на этом канале.

Статья на английском в нашем Linkedin: https://mrk.dev/subscriptions
4
Вот такая она, тайная жизнь работников сферы услуг 😁
😁6🌭1
image-palette-webgpu — крошечная JS-библиотека без единой зависимости для браузеров, которая извлекает доминирующие цвета из изображений с помощью различных алгоритмов, используя WebGPU API.

Библиотека разработана Иваном Людвигом Терешко и нашим ведущим инженером и экспертом в области веб-технологий Алексеем Родионовым.

В отличие от других подобных библиотек, в image-palette-webgpu алгоритмы реализованы в виде шейдеров на языке WGSL (WebGPU Shading Language) и исполняются на вычислительных ядрах GPU, способных выполнять работу параллельно.

NPM: https://npmjs.com/package/image-palette-webgpu

GitHub: https://github.com/IvanLudvig/image-palette-webgpu

Живое демо: https://ivanludvig.dev/image-palette-webgpu/

Также в планах добавить тесты и бенчмарки.

#web
3👍2🌭2
Меня зовут Женя и в сентябре прошлого года я отметила свою 11 годовщину в Меркури. Сейчас я работаю менеджером проектов, много путешествую параллельно с работой и прошла путь от заявки на разработку до релиза с внушительным числом проектов и заказчиков с известными именами. Но тем далеким сентябрем я пришла в компанию на позицию джуниор QA…

#career
🔥27❤‍🔥4🥰31👍1
2025/07/11 21:40:49
Back to Top
HTML Embed Code: