Ранее я делал серию постов про битовые операторы.
Вот вам ещё один наглядный пример как это используется в Python в модуле re.
Чтобы указать флаг для компилятора нам надо указать его после передаваемой строки. Например, добавляем флаг для игнорирования переноса строки.
pattern = re.compile(r"(\w+)+")
words = pattern.search(text, re.DOTALL)
А как указать несколько флагов? Ведь явно будут ситуации когда нам потребуется больше одного. Кто читал посты по битовые операторы уже понял как.
pattern.search(text, re.DOTALL | re.VERBOSE)
А теперь смотрим исходники, что находится в этих атрибутах?
Не удивительно, степени двойки. Почему? Потому что каждое следующее значение это сдвиг единицы влево.
>>> for n in [1, 2, 4, 8, 16, 32, 64, 128, 256]:
>>>
print(bin(n))
0b1
0b10
0b100
0b1000
0b10000
0b100000
0b1000000
0b10000000
0b100000000
Чтобы было понятней, давайте напишем тоже самое но иначе, добавим ведущие нули:
000000001
000000010
000000100
000001000
000010000
000100000
001000000
010000000
100000000
Не понятно что тут происходит? Читай три поста про битовые операторы начиная с этого ➡️https://t.me/pythonotes/45
В общем, это пример применения побитовых операций в самом Python.
Теперь вы знаете Python еще немного лучше)
#tricks#regex#libs
🤖Как проверить, какие комбинации фичей поддерживает камера смартфона
Современные смартфоны умеют снимать с HDR, 120 FPS и стабилизацией, но вот какая комбинация этих фич реально доступна — загадка. Например, стабилизация часто работает только при 1080p, а 60 FPS не всегда доступны в 4K.
С выходом Jetpack CameraX 1.5 появилось API GroupableFeature и новые параметры для SessionConfig, которые позволяют из кода проверить, какие функции камера может использовать одновременно.
// Пример проверки неподдерживаемых комбинаций
val unsupportedFeatures =
mutableSetOf<GroupableFeature>()
val appFeatureOptions =
setOf(HDR_HLG10, FPS_60, PREVIEW_STABILIZATION)
appFeatureOptions
.filterNot { it in currentFeatures }
.filter { featureOption ->
cameraInfo.isFeatureGroupSupported(
SessionConfig(
useCases = useCases,
requiredFeatureGroup =
currentFeatures + featureOption
)
)
}
.forEach { unsupportedFeatures.add(it) }
Так можно заранее отсеять неподдерживаемые сочетания — например, когда HDR и стабилизация не работают вместе при 60 FPS 🎥
Подробнее в статье (EN)
#android#camerax#Jetpack#androidjetpack
🚀Как снять видео с FPS 120, 240 и выше c Jetpack CameraX
В Jetpack CameraX 1.5 появилась фича high-speed capture - позволяет делать съемку с высокой частотой кадров. Также это может использоваться для съёмки slow-motion видео.
Не все устройства смогут снимать видео с высокой частотой кадров, а если и смогут, то это это будет разрешение FullHD или ниже. CameraX проверяет информацию на основе CamcorderProfile, который провалидирован с помощью Android Compatibility Test Suite (CTS) для каждого устройства.
Если вам интересно, то в статье найдете подробную инструкцию по реализации в коде.
#android#jetpack#камера#camerax
🤖Рассказали про возможности для работы со съемкой видео с помощью CameraX и редактированием видео через Jetpack Media3. Уже вполне можно накладывать эффекты и править видео
#android#jetpack#media3#camerax
Руководство(EN,6м) от команды CameraX по созданию эффекта как на видео, когда весь ваш UI на Compose. Используется определение лиц в кадре и наложение масок
🔗Ссылка без VPN
#android#jetpack#camerax#камера#compose
🤖Вышла CameraX 1.6.0 с крутыми улучшениями
Вышел стабильный релиз CameraX 1.6.0. Цикл разработки был долгим, зато список изменений получился весомым.
👉Переход на CameraPipe — CameraX теперь работает на том же стеке, что и приложение камеры Pixel. Все оптимизации и новые computational photography фичи отныне приходят в CameraX автоматически.
👉Media3 Muxer по умолчанию — видеозапись через VideoCapture теперь использует Media3 Muxer. Если приложение упадёт во время записи, файл не повредится. Плюс более эффективный процессинг в целом.
👉Feature Group обновился — GroupableFeatures пополнился константами VIDEO_STABILIZATION и UHD_RECORDING. Теперь их можно комбинировать с другими фичами в одном SessionConfig, туда же вписываются CameraEffect и ImageAnalysis.
👉SessionConfig стал стабильным API — вышел из experimental вместе с HighSpeedVideoSessionConfig. Появился isSessionConfigSupported для проверки совместимости конкретной комбинации фич до биндинга к lifecycle. Также появился ExtensionSessionConfig для работы с CameraX Extensions.
Также исправили баг на Android 17. Версия 1.5.2 падает.
🔗 Источник - developer.android.com
🐱Примеры на Github
#Android#AndroidDev#CameraX#Jetpack#Камера
🔥Jetpack CameraX теперь разрабатывается вместе с командой камеры Pixel
Вышла первая альфа-версия Jetpack CameraX 1.6.0
Главное изменение — переход на унифицированный высокопроизводительный стек камеры, тот самый, что используется в приложении камеры Pixel. Этот стек известен как CameraPipe — и теперь CameraX и Pixel Camera развиваются совместно.
Новый стек принесёт:
👉 более быструю и стабильную инициализацию камеры,
👉 консистентную обработку фреймов,
👉 и улучшенную совместимость между устройствами.
Повод задуматься для миграции на CameraX для тех, кто не решался это сделать
#android#jetpack#androidjetpack#camerax#camera