Refactoring the department structure

This commit is contained in:
Egor Tsyganchuk
2024-12-02 19:38:23 +03:00
parent a02f275cb3
commit 6475ac3814
11 changed files with 318 additions and 48 deletions

View File

@@ -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` для работы с изображениями.

View File

@@ -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.

58
image/split_image.md Normal file
View File

@@ -0,0 +1,58 @@
# Руководство по использованию скрипта для разрезания изображения на части
Этот скрипт позволяет разрезать изображение на части заданного размера и сохранить их в указанной папке. Скрипт использует библиотеку `PIL` из `Pillow` для обработки изображений и `argparse` для обработки аргументов командной строки.
## Описание работы скрипта
1. Скрипт открывает изображение по указанному пути.
2. Разбивает изображение на части заданного размера (ширина и высота).
3. Сохраняет полученные части как отдельные файлы PNG в указанной папке.
## Требования
- Установите библиотеку Pillow, если она ещё не установлена:
```
pip install pillow
```
## Использование
Для запуска скрипта используйте командную строку и укажите следующие параметры:
```bash
python script.py <image_path> <output_folder> <part_width> <part_height>
```
### Параметры
- `<image_path>`: Путь к изображению (формат PNG), которое вы хотите разрезать.
- `<output_folder>`: Папка, в которой будут сохранены части изображения.
- `<part_width>`: Ширина каждой части (в пикселях).
- `<part_height>`: Высота каждой части (в пикселях).
### Пример
```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".
```
## Заметки
- Скрипт автоматически создаст папку для сохранения частей, если она не существует.
- Последние части изображения могут быть немного меньше указанного размера, если изображение не делится на равные части по обеим осям.

View File

@@ -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 перепутаны), и выполняет их корректировку.

View File

@@ -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`, извлечет массивы байт и размеры изображений, а затем запустит внешний скрипт для дальнейшей обработки изображений.

View File

@@ -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 изображения, которые вы хотите обработать.
- Папка выходных изображений (необязательный аргумент) — путь к папке, в которую будут сохранены обработанные изображения. Если этот аргумент не указан, скрипт будет перезаписывать оригинальные файлы в папке входных изображений.