Coder Social home page Coder Social logo

rkolovanov / png-editor Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 9.67 MB

Курсовая работа по дисциплине "Программирование" на тему "Обработка изображений". Программа с графическим интерфейсом для работы с PNG-изображениями

License: MIT License

QMake 2.98% HTML 6.00% C 2.38% C++ 88.64%
png cpp editor qt5 libpng

png-editor's Introduction

PNG Editor

Курсовая работа по дисциплине "Программирование" на тему "Обработка изображений". Программа с графическим интерфейсом для работы с PNG-изображениями

Зависимости

  1. Фреймворк Qt 5.14.2 (установка: https://wiki.qt.io/Install_Qt_5_on_Ubuntu)
  2. Библиотека libpng (установка: sudo apt-get install libpng-dev)

Запуск программы

  1. Запустите программу Qt Creator (идет в комплекте с Qt)
  2. Откройте вкладку 'Начало'. Во вкладке 'Проекты' нажмите 'Открыть' и выберите .pro файл (файл проекта, находящийся в папке src)
  3. Выполните сборку проекта и запустите программу

Скриншоты примеров работы программы находятся в папке images_test Скриншоты примеров обработки ошибок программой находятся в папке images_error Картинки, на которых я запускаю программу находятся в папке images

Инструменты программы

  1. Рисование квадрата. Для начала выберите инструмент "Drawing a square", нажав на соответствующую кнопку в панели интсрументов. Параметры можно настроить в той же панели инструментов: первый цвет отвечает за цвет границы, второй цвет отвечает за цвет заливки, line width - толщина линий квадрата, square side - размер стороны квадрата, выбрать тип заливки можно при помощи кнопки "Square filling" на пенели инструментов. Далее выберите место расположение левого верхнего угла квадрата на изображении, нажав на это место левой кнопкой мыши. Следует отметить, что квадрат будет размером СторонаКвадрата на СторонаКвадрата пикселей, при этом изменение параметра толщины линий квадрата не изменит итоговые размеры квадрата (увеличение толщины линий происходит вовнутрь).
  2. Перестановка 4 частей изображения в выбранной области. Для начала выберите инструмент "Exchange 4 parts of the selected area", нажав на соответствующую кнопку в панели инструментов. Выбрать метод перестановки частей можно при помощи кнопки "Exchanging parts method" на пенели инструментов. Далее выберите область, которую нужно поделить на части и поменять их местами. Для этого зажмите левую кнопку мыши в одном из углов этой области, далее не отпуская клавишу наведите на противоположный угол области, после отпустите кнопку (работает так же, как выделение в различных ОС). Следует отметить, что в случае выбора области, которую невозможно поделить на 4 равные части, правая или нижняя граница области могут сдвинутся на 1 пиксель.
  3. Замена самого часто встречающегося цвета. Для начала выберите цвет замены, это можно сделать на панели инструментов - цвет 1. Далее выполните замену цвета, нажав на кнопку "Replace a common color" в панели инструментов. Следует отметить, что программа считает разными цвета с одинаковыми R, G, B, но различными A значениями.
  4. Инверсия цвета в выбранной области. Для начала выберите инструмент "Color inversion in the selected area", нажав на соответствующую кнопку в панели инструментов. Далее выберите область, в которой нужно выполнить инверсию цвета. Для этого зажмите левую кнопку мыши в одном из углов этой области, далее не отпуская клавишу наведите на противоположный угол области, после отпустите кнопку (работает так же, как выделение в различных ОС). Следует отметить, что при инверсии цвета его A значение не меняется.

png-editor's People

Contributors

rkolovanov avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.