C# форум

Формула программиста

основатель — Волосатов Евгений Витольдович
Open shop C++ Графика. Обработка изображений

C++ Графика. Обработка изображений

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

Обработка изображений на C++

Список уроков | фото | видео

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE Презентация курса 00:03:00
34 чел. ★ 4.6 Done
  Приглашаю всех на курс по созданию программы работы с графикой на Visual C++ (Win32 Project).
На этом курсе мы научимся создавать простые программы в этой среде, выводить в основное окно элементы управления и содержимое BMP-файлов, а также редактировать и сохранять полученные изображения.

Отчёт отправил: 28044. G_F Выполнено за 3 мин. [Показать отчёт]
Научился: Надеюсь, получится просмотреть все шагу этого мини-курса 
2 FREE Структура "нулевого" проекта 00:09:58
14 чел. ★ 4.5 Done
  На этом уроке мы разберём структуру исходного файла "нулевого" проекта на Visual C++ Win32 Project
Отчёт отправил: 28044. G_F Выполнено за 11 час. 32 мин. [Показать отчёт]
Научился: Вроде разобрался 
3 Настройка среды 00:07:55
1 тест
10 чел. ★ 4.8 Done
  На этом уроке мы создадим простой проект типа Win32 Project и выделим функцию WndProc() в отдельный модуль.
Отчёт отправил: 28044. G_F Выполнено за 50 мин. [Показать отчёт]
Научился: функцию WinProc() можно выделить в отдельный блок, главное чтобы переменные не конфликтовали между собой и были известны функции внутри текущего файла 
Сложности: Понять в какой последовательности запускаются модули (функции) 
4 Добавление класса BmpCtrl 00:10:05
10 чел. ★ 4.8 Done
  На этом уроке мы создадим класс BmpCtrl, который будет отвечать за представление основного окна, и зададим его начальные свойства.
Отчёт отправил: 28044. G_F Выполнено за 31 мин. [Показать отчёт]
Научился: Подключение новых классов, добавление в него функций и переменных, а также связь этих функций с выполняемым кодом программы 
5 Программирование события WM_PAINT 00:11:47
10 чел. ★ 4.9 Done
  На этом уроке мы научимся вычислять размеры клиентской области окна и осуществлять вывод текста в основное окно программы
Отчёт отправил: 28044. G_F Выполнено за 38 мин. [Показать отчёт]
Научился: Через функцию OnPaint отображать текст (размеры клиентской области и подгонять её размер под требуемые значения) 
6 Создание кнопок 00:12:14
10 чел. ★ 4.6 Done
  На этом уроке мы научимся создавать кнопки с картинками в основном окне программы
Отчёт отправил: 28044. G_F Выполнено за 4 час. 8 мин. [Показать отчёт]
Научился: Создавать/удалять кнопки и описывать их параметры 
Сложности: Понять как добавлять в проект иконки кнопок, чтобы они ОТОБРАЖАЛИСЬ 
7 Программирование события BN_CLICKED 00:13:07
9 чел. ★ 5 Done
  На этом уроке мы научимся реагировать на нажатие созданных кнопок
Отчёт отправил: 28044. G_F Выполнено за 1 час. 23 мин. [Показать отчёт]
Научился: Связывать кнопки с определёнными действиями (функциями) 
8 Подготовка к выводу картинки на экран 00:10:56
9 чел. ★ 5 Done
  На этом уроке мы подготовимся к выводу картинки на экран - создадим прямоугольник для вывода и прорисуем его рамки
Отчёт отправил: 28044. G_F Выполнено за 2 час. 24 мин. [Показать отчёт]
Научился: Создание прямоугольной области для целевого изображения и прорисовка рамки вокруг него 
9 Вывод картинки на экран 00:14:50
8 чел. ★ 4.9 Done
  На этом уроке мы выведем содержимое BMP-файла на экран
Отчёт отправил: 28044. G_F Выполнено за 13 час. 48 мин. [Показать отчёт]
Научился: Загружать картинку через соответствующий метод и вывод в область с нужным масштабом 
Сложности: Понять где ошибка, которую исправил лектор. Ушло три часа на поиски - у меня значения h и w получались нулевыми из-за пути к картинке (сама картинка битой оказалась) 
10 Вывод информации в основное окно 00:08:05
8 чел. ★ 5 Done
  На этом уроке мы выведем информацию о размерах прямоугольников в основное окно, а также получим доступ к матрице цветных точек
Отчёт отправил: 28044. G_F Выполнено за 48 мин. [Показать отчёт]
Научился: Вывод информации о целевом изображении и получении информации о цветах для каждой точки 
11 Матрица цветных точек 00:17:27
8 чел. ★ 4.9 Done
  На этом уроке мы определим границы выходного изображения
Отчёт отправил: 28044. G_F Выполнено за 10 час. 9 мин. [Показать отчёт]
Научился: Выполнять обрезку по цветовому фильтру 
Сложности: Выяснить где закралась ошибка: после отработки функций SetStretchBltMode() и StretchBlt() перестали выводиться строки ( TextOut() ), хотя углы прямоугольника вычисляются правильно. Плюс не работает дальнейшая отрисовка изображения 
12 Вывод обрезанного изображения 00:12:08
8 чел. ★ 4.5 Done
  На этом уроке мы выделим границы выходного изображения в основном окне, а также ещё раз посмотрим, как можно выводить изображение в основное окно с масштабированием

Отчёт отправил: 28044. G_F Выполнено за 3 час. 48 мин. [Показать отчёт]
Научился: Выводить рамку обрезаемой части изображения и повторно выводить обрезанную часть на экран 
Сложности: Всё ещё не решил проблему с функциями SetStretchBltMode() и StretchBlt() 
13 Сохранение файла 00:24:05
8 чел. ★ 5 Done
  На этом уроке мы научимся сохранять изображение и его части в формате BMP.
Мы научимся работать с файлами и ещё раз потренируемся копировать изображения из одного контекста в другой, но уже без масштабирования
Отчёт отправил: 28044. G_F Выполнено за 8 час. 12 мин. [Показать отчёт]
Научился: Записывать обрезанную часть изображения в новый файл 
Сложности: Дождаться пока загрузятся дополнительные .dll с сервера Visual Studio 
  Итого:   13 видеоуроков 2 час. 35 мин.
1 тест
8 чел. ★ 4.81  
  Финалисты:   Максим Базуев,   Chip,   Yefim,   Иван Воронин,   Новопашин Владимир,   Алексей В.,   G_F,   Tom .

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Научился создавать новое изображение по границе обрезки исходного изображения. Научился сохранять изображение. Добавил возможность загрузки файла с компьютера пользователя. Результаты можно посмотреть по адресу http://tomfoxweb.rf.gd/crop/13/index.html



Научился: работе с диалоговыми окнами, сохранению картинки в формате BMP
Добавил возможность выбора любого BMP файла, где бы он не лежал. Добавил возможность сохранения BMP файла в любом месте и любым именем. Расширение bmp автоматически добавляется, если забыли его дописать вручную. Использовал ранее созданную переменную sPath для установки корневой директории перед сохранением файла, если не было выбрано кастомное расположение, то используется по-умолчанию относительное. Замечательный курс, очень понравился, простой и в том же время информативный, жду ещё курсы по C++, думаю стоит начать с самого нуля и постепенно добавлять курс в порядке усложнения, чтобы больше было желающих и меньше жалующихся. з.ы. на выполнения урока ушло 45 минут. на доработку выбора файла для загрузки и сохранения файла куда угодно ушло 39 минут. остальное время почти 3,5 часа ушло на подготовку, запись и монтаж видео-отчёта.