Skip to content

mamaria-k/bmp-editor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Обработка BMP-изображений

Реализована программа, которая выполняет команды:

  • crop-rotate вырезает прямоугольник из BMP-файла с изображением, поворачивает этот прямоугольник на 90 градусов по часовой стрелке и сохраняет результат в отдельный файл;
  • insert сохраняет в изображение сообщение (стенография);
  • extract извлекает из изображения сообщение (стенография).

Формат исходных данных и результата

  • Общий формат — BMP.
  • В рамках формата BMP используется формат DIB с заголовком BITMAPINFOHEADER (версия 3).
  • Значение поля biHeight (высота изображения) строго больше нуля.
  • Используются 24 бита цвета на пиксель (один байт на цветовой канал).
  • Палитра (таблица цветов) не используется.
  • Сжатие не используется.

Формат сообщения и способ кодирования

Исходное сообщение состоит только из заглавных латинских букв, пробела, точки и запятой. Каждый символ преобразовывается в число от 0 до 28, соответственно (всего 29 различных значений), а число — в пять бит, записанных от младших к старшим. Всего сообщение из N символов кодируется при помощи 5N Бит.

Детали реализации

  • Программа проверяет корректность аргументов.
  • При проблемах с аргументами, открытием файла, выделением памяти и прочим, программа должна корректно завершить работу и вернуть ненулевой код возврата.

Консольное приложение

Приложение запускается следующей командой:

./hw_01 crop-rotate ‹in-bmp› ‹out-bmp› ‹x› ‹y› ‹w› ‹h›

Используемые параметры:

  • crop-rotate — обязательный параметр, означающий выполняемое действие.
  • in-bmp — имя входного файла с изображением.
  • out-bmp — имя выходного файла с изображением.
  • x, y — координаты левого верхнего угла области, которую необходимо вырезать и повернуть. Координаты начинаются с нуля, таким образом (0, 0) — это верхний левый угол.
  • w, h — соотвественно, ширина и высота области до поворота.

Таким образом, если обозначить ширину и высоту исходного изображения за W и H, соответственно, верны следующие неравенства:

  • 0 <= x < x + w <= W
  • 0 <= y < y + h <= H

Для сохранения секретной строчки в изображение приложение запускается следующей командой:

./hw_01 insert ‹in-bmp› ‹out-bmp› ‹key-txt› ‹msg-txt›

Для извлечения секретной строчки из изображения приложение запускается следующей командой:

./hw_01 extract ‹in-bmp› ‹key-txt› ‹msg-txt›

Используемые параметры:

  • in-bmp — имя входного файла с изображением.
  • out-bmp — имя выходного файла с изображением.
  • key-txt — тестовый файл с ключом.
  • msg-txt — текстовый файл с секретным сообщением.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published