diff --git a/image/create_excel_with_images.md b/image/create_excel_with_images.md new file mode 100644 index 0000000..ba8ed9d --- /dev/null +++ b/image/create_excel_with_images.md @@ -0,0 +1,60 @@ +# Руководство по использованию скрипта для создания Excel с изображениями + +Этот скрипт позволяет создать Excel файл, содержащий информацию об изображениях из указанной папки. Для каждого изображения будут записаны его имя, размер (в КБ) и добавлена миниатюра изображения. + +## Зависимости + +Перед использованием убедитесь, что у вас установлены следующие библиотеки: + +- `openpyxl` — для работы с Excel файлами. +- `Pillow` (PIL) — для обработки изображений. + +Установите их через pip: + +```bash +pip install openpyxl Pillow +``` + +## Как использовать + +### 1. Запуск скрипта + +Скрипт используется через командную строку. Запустите его следующим образом: + +```bash +python script.py <путь_к_папке> <путь_для_сохранения_файла> +``` + +Где: + +- `<путь_к_папке>` — путь к папке с изображениями (например, `/home/user/images/`). +- `<путь_для_сохранения_файла>` — путь и имя для сохранения Excel файла (например, `output.xlsx`). + +### 2. Что делает скрипт + +- Скрипт проходит по всем файлам в указанной папке. +- Проверяет, является ли файл изображением (по расширениям `.png`, `.jpg`, `.jpeg`, `.gif`, `.bmp`). +- Для каждого изображения добавляется информация: + - Имя файла + - Размер в килобайтах + - Миниатюра изображения размером 100x100 пикселей +- Все данные записываются в Excel файл с тремя столбцами: **Filename**, **Size (KB)** и **Thumbnail**. + +### 3. Пример использования + +```bash +python script.py /home/user/images/ output.xlsx +``` + +После выполнения скрипта будет создан Excel файл `output.xlsx`, в котором будут перечислены изображения из папки `/home/user/images/`. + +## Примечания + +- Миниатюры изображений вставляются в Excel в отдельный столбец. +- Скрипт автоматически устанавливает высоту строк в зависимости от высоты изображения. +- Поддерживаются форматы изображений: PNG, JPG, JPEG, GIF, BMP. +- Все изображения сжимаются до размеров 100x100 пикселей. + +## Источник + +Скрипт написан на Python с использованием библиотек `openpyxl` для работы с Excel и `Pillow` для работы с изображениями. diff --git a/make_excel_file.py b/image/create_excel_with_images.py similarity index 100% rename from make_excel_file.py rename to image/create_excel_with_images.py diff --git a/image/crop_image_to_object_pixels.md b/image/crop_image_to_object_pixels.md new file mode 100644 index 0000000..77ac1ed --- /dev/null +++ b/image/crop_image_to_object_pixels.md @@ -0,0 +1,65 @@ +# Руководство по использованию скрипта для обрезки PNG изображений + +Этот скрипт предназначен для обрезки PNG изображений в указанной папке, чтобы сохранить только видимый объект, удаляя пустое пространство вокруг. Обрезка выполняется с использованием информации о непрозрачных пикселях изображения. + +## Требования + +Перед запуском скрипта убедитесь, что установлены следующие библиотеки: + +- **Pillow**: для обработки изображений. + +Установите их с помощью команды: + +```bash +pip install Pillow +``` + +## Как использовать + +### Запуск скрипта + +1. Скачайте или скопируйте скрипт на ваш компьютер. +2. В командной строке запустите скрипт, указав путь к папке с PNG изображениями: + +```bash +python script.py <путь_к_входной_папке> [путь_к_выходной_папке] +``` + +- **<путь_к_входной_папке>** — путь к папке с PNG изображениями, которые необходимо обработать. +- **[путь_к_выходной_папке]** (необязательный параметр) — путь к папке, куда будут сохранены обработанные изображения. Если не указать, изображения сохранятся в той же папке, что и входные. + +### Пример использования + +```bash +python script.py /path/to/images /path/to/output +``` + +Если не указать выходную папку, изображения будут обработаны и сохранены в той же папке: + +```bash +python script.py /path/to/images +``` + +### Что делает скрипт? + +- Скрипт перебирает все PNG изображения в указанной входной папке. +- Для каждого изображения он находит границы видимых объектов (то есть непрозрачных пикселей). +- Затем изображение обрезается до этих границ и сохраняется в выходной папке. + +### Пример вывода + +При обработке каждого изображения в консоль выводится сообщение: + +``` +Processed image1.png +Processed image2.png +``` + +## Возможности + +- Скрипт поддерживает работу с папками, содержащими несколько изображений. +- Если выходная папка не указана, скрипт создает её автоматически или использует входную папку для сохранения результатов. + +## Примечание + +Скрипт работает только с изображениями формата PNG. diff --git a/crop_to_object.py b/image/crop_image_to_object_pixels.py similarity index 100% rename from crop_to_object.py rename to image/crop_image_to_object_pixels.py diff --git a/image/split_image.md b/image/split_image.md new file mode 100644 index 0000000..c96195d --- /dev/null +++ b/image/split_image.md @@ -0,0 +1,58 @@ +# Руководство по использованию скрипта для разрезания изображения на части + +Этот скрипт позволяет разрезать изображение на части заданного размера и сохранить их в указанной папке. Скрипт использует библиотеку `PIL` из `Pillow` для обработки изображений и `argparse` для обработки аргументов командной строки. + +## Описание работы скрипта + +1. Скрипт открывает изображение по указанному пути. +2. Разбивает изображение на части заданного размера (ширина и высота). +3. Сохраняет полученные части как отдельные файлы PNG в указанной папке. + +## Требования + +- Установите библиотеку Pillow, если она ещё не установлена: + + ``` + pip install pillow + ``` + +## Использование + +Для запуска скрипта используйте командную строку и укажите следующие параметры: + +```bash +python script.py +``` + +### Параметры + +- ``: Путь к изображению (формат PNG), которое вы хотите разрезать. +- ``: Папка, в которой будут сохранены части изображения. +- ``: Ширина каждой части (в пикселях). +- ``: Высота каждой части (в пикселях). + +### Пример + +```bash +python split_image.py image.png output_folder 100 100 +``` + +Этот пример разрежет изображение `image.png` на части размером 100x100 пикселей и сохранит их в папку `output_folder`. + +## Как работает скрипт + +1. Скрипт открывает изображение, используя библиотеку `PIL`. +2. Затем вычисляется, сколько частей по ширине и высоте будет получено, исходя из размеров исходного изображения и указанных параметров. +3. Для каждой части вычисляются координаты обрезки, и изображение сохраняется в указанной папке с именем `part_X_Y.png`, где X и Y — это индексы части по горизонтали и вертикали. +4. Скрипт уведомит о завершении операции. + +## Пример вывода + +``` +Изображение успешно разрезано на части размером 100x100 и сохранено в "output_folder". +``` + +## Заметки + +- Скрипт автоматически создаст папку для сохранения частей, если она не существует. +- Последние части изображения могут быть немного меньше указанного размера, если изображение не делится на равные части по обеим осям. diff --git a/split_image.py b/image/split_image.py similarity index 100% rename from split_image.py rename to image/split_image.py diff --git a/lvgl/make_image_from_file.md b/lvgl/make_image_from_file.md new file mode 100644 index 0000000..07370ca --- /dev/null +++ b/lvgl/make_image_from_file.md @@ -0,0 +1,69 @@ +# Руководство по использованию скрипта для создания изображения из бинарных данных + +Этот скрипт позволяет извлечь байты, представленные в виде шестнадцатеричных значений, из текстового файла, сохранить их в бинарный файл и затем создать изображение в формате PNG на основе этих байтов. Используются библиотеки `binascii` и `PIL` (Pillow). + +## Установка зависимостей + +Для работы скрипта необходимо установить библиотеку `Pillow`. Для этого выполните команду: + +```bash +pip install Pillow +``` + +## Описание функций + +### `extract_bytes(input_file)` + +- Извлекает байты, представленные в виде шестнадцатеричных значений, из текстового файла. +- Преобразует их в бинарный формат и сохраняет в новый файл с суффиксом `_output.bin`. +- Принимает на вход путь к текстовому файлу и возвращает путь к созданному бинарному файлу. + +### `create_image_from_bytes(byte_file, image_file, width, height)` + +- Читает байты из бинарного файла. +- Меняет местами каналы R и B (преобразует из формата BGRA в RGBA). +- Создает изображение и сохраняет его в формате PNG. +- Принимает на вход путь к бинарному файлу, имя выходного изображения и размеры изображения (ширину и высоту). + +## Как использовать + +1. **Подготовьте текстовый файл**, в котором содержатся шестнадцатеричные данные, начинающиеся с '0x'. Например: + + ``` + 0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A ... + ``` + +2. **Запустите скрипт** с параметрами: + - Путь к входному текстовому файлу + - Ширина изображения + - Высота изображения + + Пример команды: + + ```bash + python script.py input.txt 100 100 + ``` + +3. **Скрипт выполнит два шага**: + - Извлечет байты из текстового файла и сохранит их в бинарный файл с именем, основанным на имени входного файла. + - Создаст изображение на основе извлеченных байтов и сохранит его в формате PNG. + +## Пример работы + +1. У вас есть текстовый файл `input.txt` с данными, начинающимися с '0x'. +2. Запускаете скрипт: + + ```bash + python script.py input.txt 100 100 + ``` + +3. Скрипт: + - Извлечет байты из `input.txt` и создаст файл `input_output.bin`. + - Преобразует байты в изображение и сохранит его как `input.png`. + +После выполнения скрипта, вы получите изображение `input.png`, которое будет создано на основе бинарных данных. + +## Примечания + +- Размеры изображения (ширина и высота) должны соответствовать количеству байтов в бинарном файле. Убедитесь, что количество пикселей (ширина * высота) соответствует размеру данных. +- Скрипт предполагает, что данные представлены в формате BGRA (когда каналы R и B перепутаны), и выполняет их корректировку. diff --git a/make_image_from_file.py b/lvgl/make_image_from_file.py similarity index 100% rename from make_image_from_file.py rename to lvgl/make_image_from_file.py diff --git a/lvgl/parse_c_files_from_dir.md b/lvgl/parse_c_files_from_dir.md new file mode 100644 index 0000000..33b7344 --- /dev/null +++ b/lvgl/parse_c_files_from_dir.md @@ -0,0 +1,66 @@ +# Руководство по использованию скрипта для извлечения массивов байт из C-файлов + +Этот скрипт предназначен для извлечения массивов байт из C-файлов, начиная с участка кода `#if LV_COLOR_DEPTH == 32` и заканчивая `#endif`, исключая комментарии и строки `#if` и `#endif`. Он также извлекает размеры изображения (ширину и высоту) из C-файла и сохраняет массив байт в отдельный текстовый файл. Для каждого файла с изображением скрипт запускает внешний скрипт для дальнейшей обработки изображения. + +## Описание функций + +### `extract_byte_array_from_c_file(file_path)` + +Извлекает массив байт из C-файла, находящегося по пути `file_path`. Ищет участок кода между `#if LV_COLOR_DEPTH == 32` и `#endif`, исключая комментарии и строки `#if` и `#endif`. + +**Параметры**: + +- `file_path`: Путь к C-файлу. + +**Возвращает**: + +- Строку с массивом байт или `None`, если участок не найден. + +### `extract_image_dimensions(file_path)` + +Извлекает размеры изображения (ширину и высоту) из C-файла. + +**Параметры**: + +- `file_path`: Путь к C-файлу. + +**Возвращает**: + +- Кортеж с шириной и высотой изображения или `(None, None)`, если размеры не найдены. + +### `process_directory(directory_path)` + +Обрабатывает все C-файлы в указанной директории. Для каждого C-файла извлекается массив байт и сохраняется в текстовый файл с тем же именем. Также извлекаются размеры изображения и запускается внешний скрипт для обработки изображения. + +**Параметры**: + +- `directory_path`: Путь к директории, содержащей C-файлы. + +### `main()` + +Основная функция, которая обрабатывает аргументы командной строки и запускает процесс обработки файлов в указанной директории. + +## Использование + +1. Скачайте или скопируйте скрипт на ваш компьютер. +2. Установите необходимые библиотеки, если они еще не установлены: + + ```bash + pip install argparse + ``` + +3. Запустите скрипт из командной строки, передав путь к директории с C-файлами: + + ```bash + python script.py /path/to/directory + ``` + + Замените `/path/to/directory` на путь к директории, содержащей C-файлы. + +## Пример + +```bash +python script.py ./c_files +``` + +Этот скрипт обработает все C-файлы в директории `./c_files`, извлечет массивы байт и размеры изображений, а затем запустит внешний скрипт для дальнейшей обработки изображений. diff --git a/parse_c_files_from_dir.py b/lvgl/parse_c_files_from_dir.py similarity index 100% rename from parse_c_files_from_dir.py rename to lvgl/parse_c_files_from_dir.py diff --git a/readme.md b/readme.md index be1df14..76ae536 100644 --- a/readme.md +++ b/readme.md @@ -1,51 +1,3 @@ # Скрипты В этой директории находятся полезные для проекта скрипты позволяющие автоматизировать процесс разработки. - -## Создать картинку из массива байт - -Скрипт принимает 3 обязательных аргумента: - -- Путь к текстовому документу в котором находиться перечисление байтов -- Ширина выходной изображения -- Длина выходного изображения - -Главной особенностью скрипта перевод **BGRA** в **RGBA** и игнорирование запятых. - -## Разобрать *.c файлы на изображения - -- Скрипт принимает путь к директории с исходными файлами проекта на языке программирования Си и конвертирует при помощи скрипта `make_image_from_file.py` массив байт в изображение. -- На текущий момент скрипт поддерживает только исходные файлы которые были созданы при помощи **COLOR_ALPHA_TRUE_COLOR** цветового формата. -- Самостоятельно извлекает из структуры размеры выходного изображения и передает их скрипту для сборки. - -## Создать карту изображений из директории в формате Excel файла - -Скрипт принимает 2 обязательных параметра: - -- Путь к целевому каталогу с изображениями -- Путь к выходному файлу в формате *.xlsx или*.xls в котором будут находиться: - - Название изображения - - Размер изображения - - Эскиз изображения - -Работает на текущий момент с популярными форматами: `'.png', '.jpg', '.jpeg', '.gif', '.bmp'`. - -## Разделить картинку на части - -Скрипт `split_image.py` позволяет легко разделить изображение на части одинаковой ширины и длины в формате `.png`. - -Принимает 4 аргумента: - -- Путь к исходному изображению в формате `.png` -- Путь к каталогу, в котором будут размещены фрагменты `.png` -- Ширина -- Длина - -## Обрезка изображения по объекту - -Скрипт `crop_to_object.py` предназначен для обрезки PNG изображений до размеров видимого объекта. Он удаляет прозрачные области изображения и сохраняет результат в указанной папке. Если выходная папка не указана, скрипт перезаписывает оригинальные файлы. - -Скрипт принимает два аргумента командной строки: - -- Папка входных изображений (обязательный аргумент) — путь к папке, содержащей PNG изображения, которые вы хотите обработать. -- Папка выходных изображений (необязательный аргумент) — путь к папке, в которую будут сохранены обработанные изображения. Если этот аргумент не указан, скрипт будет перезаписывать оригинальные файлы в папке входных изображений.