Здесь приведен краткий обзор консольных утилит, которые позволяют получить информацию о растровой картинке RAW, BMP и других форматов:
- метод кодирования/сжатия - количество цветов - разрешение по горизонтали и вертикали - другая информация, которая может понадобиться для декодирования в растр BMP.
Вот основные консольные утилиты Ubuntu для анализа растровых изображений:
1. file (базовая идентификация)
file image.bmp file image.raw
Выведет что-то наподобие: `image.bmp: PC bitmap, Windows 3.x format, 640 x 480`. Пример вывода информации по картинке RAW:
$ file frame.raw
frame.raw: JPEG image data, baseline, precision 8, 640x480, components 3
2. identify (ImageMagick) - самый мощный инструмент.
Установка:
$ sudo apt install imagemagick
Использование:
$ identify -verbose image.bmp
$ identify -format "%m %w %h %z %C" image.bmp
Пример вывода:
Format: BMP (Microsoft Windows bitmap)
Mime type: image/bmp
Geometry: 640x480
Depth: 8-bit
Colors: 256
Compression: None
Filesize: 922KB
3. exiftool (метаданные)
Установка:
$ sudo apt install libimage-exiftool-perl
Использование:
exiftool image.bmp exiftool image.raw
Пример вывода:
ExifTool Version Number : 12.76
File Name : image.raw
Directory : .
File Size : 17 kB
File Modification Date/Time : 2025:10:08 11:55:19+03:00
File Access Date/Time : 2025:10:08 11:55:37+03:00
File Inode Change Date/Time : 2025:10:08 11:55:19+03:00
File Permissions : -rw-r--r--
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
Image Width : 640
Image Height : 480
Encoding Process : Baseline DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:2 (2 1)
Image Size : 640x480
Megapixels : 0.307
4. ffprobe (FFmpeg) - отлично подходит для RAW.
Установка:
$ sudo apt install ffmpeg
Пример для BMP:
Для RAW с указанием параметров:
$ ffprobe -f rawvideo -pixel_format yuyv422 -video_size 640x480 image.raw
5. bmptopnm + pnminfo (Netpbm)
Этот вариант подойдет только для формата BMP. Установка:
$ sudo apt install netpbm
Анализ BMP:
$ bmptopnm image.bmp | pnminfo
6. gdalinfo (для данных геолокации и растров)
Установка:
$ sudo apt install gdal-bin
Пример использования:
[Практический пример скрипта для анализа]
Для BMP файлов:
#!/bin/bash
analyze_bmp() { local file="$1"
echo "=== Анализ BMP: $file ==="
# 1. Базовая информация echo "1. file:" file "$file" echo
# 2. Детальная информация ImageMagick if command -v identify &> /dev/null; then echo "2. identify -verbose:" identify -verbose "$file" | grep -E "(Format|Geometry|Depth|Colors|Compression|Filesize)" echo fi
# 3. Метаданные if command -v exiftool &> /dev/null; then echo "3. exiftool:" exiftool "$file" | grep -E "(Image Size|Bit Depth|Compression|Color)" echo fi }
analyze_bmp "$1"
Для RAW файлов:
#!/bin/bash
analyze_raw() { local file="$1" local width="${2:-640}" local height="${3:-480}" local format="${4:-yuyv422}"
echo "=== Анализ RAW: $file ===" echo "Предполагаемые параметры: ${width}x${height} $format" echo
# 1. Размер файла echo "1. Размер файла:" ls -lh "$file" echo " Байт: $(stat -c%s "$file")" echo " Расчетные кадры: $(($(stat -c%s "$file") / (width * height * 2)))" echo
# 2. HEX-дамп заголовка echo "2. HEX-дамп (первые 64 байта):" hexdump -C "$file" | head -5 echo
# 3. Попытка анализа через ffprobe if command -v ffprobe &> /dev/null; then echo "3. ffprobe анализ:" ffprobe -f rawvideo -pixel_format "$format" -video_size "${width}x${height}" \ -i "$file" 2>&1 | grep -E "(Stream|Video)" echo fi }
analyze_raw "$1" "$2" "$3" "$4"
Универсальный скрипт для анализа:
#!/bin/bash
analyze_image() { local file="$1"
if [ ! -f "$file" ]; then echo "Файл не найден: $file" return 1 fi
echo "=========================================" echo "Анализ изображения: $file" echo "========================================="
# Определяем тип файла по расширению extension="${file##*.}"
case "${extension,,}" in bmp) analyze_bmp "$file" ;; raw|yuv|rgb) analyze_raw "$file" ;; *) echo "Используется общий анализ..." file "$file" if command -v identify &> /dev/null; then identify -verbose "$file" | head -20 fi ;; esac }
# Функции analyze_bmp и analyze_raw из примеров выше
analyze_image "$1"
Использование утилит. Для BMP:
Для RAW с параметрами:
$ ./analyze.sh frame.raw 1920 1080 yuyv422
Быстрый анализ через identify:
$ identify -format "Формат: %m\nРазмер: %w x %h\nГлубина: %z-bit\nЦвета: \
%k\nСжатие: %C\nРазмер: %b" image.bmp
Рекомендации:
1. Для BMP - используйте identify -verbose + exiftool 2. Для RAW - используйте ffprobe с указанием параметров + hexdump для анализа структуры 3. Для быстрой проверки - file + identify -format
ImageMagick (identify) - самый универсальный инструмент для растровой графики, однако он не понимает RAW. ИМХО для вывода информации о картинках RAW лучше всего подойдет exiftool.
|