Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/184: Рейтинг темы: голосов - 184, средняя оценка - 4.79
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696

Вывод изображения WinAPI

11.01.2011, 17:21. Показов 34736. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Нужно сделать что-то типа графического редоктора, который накладывает фильтры на изображения. С алгоритмами я знаком, на C# уже написал приложение(для "посмотреть как оно будет"), но нужно всё сделать на WinAPI. Подскажите, как с помощью WinAPI:
1) получить изображение из файла
2) иметь возможность получить/изменить цвет определенного пикселя
3) отобразить полученное изображение в окне
4) сохранить его в файл
Буду очень признателен за код, если никого не затруднит.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.01.2011, 17:21
Ответы с готовыми решениями:

Вывод изображения в WinAPI
Вот не получается загрузить картинку Делаю по примеру найденому здесь на форуме Но у меня не находит файл #include <windows.h> ...

Вывод изображения из файла в окно (Winapi)
делаю так но выводит белый фон case WM_PAINT: hdc = BeginPaint(hWnd, &ps); hdc = BeginPaint(hWnd,...

Visual Studio 2008, WinAPI - Вывод изображения
Как вывести изображение на форму? В гугле искал, но там что-то ничего того,что я могу понять не нашёл =( Понял только , что...

23
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,857
18.06.2011, 23:13
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от lavrentiy Посмотреть сообщение
Не будет ли правильнее создать битмап и хендл глобальными переменными,
Не будет
получишь утечку ресурсов и повесишь свое приложение

Добавлено через 5 минут
насчет цвета пикселя
создаешь дискрептор в памяти
грузишь туда картинку
и GetPixel(Не самая быстрая функция)
картинка у тебя в памяти на экране ничего нет
изголяйся как хошь
потом можешь в файл можешь на экран
но если надо серъезно работать с изображениями смотри в сторону DirectDraw(openGL)

Добавлено через 6 минут
Ты не правильно понял
Цитата Сообщение от lavrentiy Посмотреть сообщение
А вот тут утверждается, что выбранный объект надо удалять после использования.
удалятся не значит разрушатся а перестать быть выбраным
наример так
C++
1
2
3
4
5
HPEN * OldPen=SelectObject(hdc,&pen);
...........................................................
// здесь освобождаем выбраный нами объект 
// иначе утечка ресурсов
SelectObject(hdc,OldPen);
0
230 / 0 / 1
Регистрация: 15.06.2011
Сообщений: 4
18.06.2011, 23:29
Не знаю точно, как работает функция LoadImage, но наличие у ней параметра "picture.bmp" наводит на мысль, что она работает с винтом. По-моему, заново читать один и тот же файл с винта в обработчике события это верх безумия.
А можно пояснить механизм утечки?
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,857
18.06.2011, 23:45
Цитата Сообщение от lavrentiy Посмотреть сообщение
По-моему, заново читать один и тот же файл с винта в обработчике события это верх безумия.
не всегда
винда работала и на 16 метрах памяти
а теперь представь что твое приложение забрало под картинку метров 10
извечный вопрос скорость/память
Цитата Сообщение от lavrentiy Посмотреть сообщение
А можно пояснить механизм утечки?
ну я же уже выступал
для каждого приложения винда выдает конечное количество графических ресурсов
и если постоянно выбирать новые
Цитата Сообщение от ValeryS Посмотреть сообщение
HPEN * OldPen=SelectObject(hdc,&pen);
и не освобождать их
вот так
Цитата Сообщение от ValeryS Посмотреть сообщение
SelectObject(hdc,OldPen);
т.е выбирать тот объект который был выбран до твоего выбора (во завернул)
то приложение исчерпат графические ресурсы и повиснет
1
230 / 0 / 1
Регистрация: 15.06.2011
Сообщений: 4
18.06.2011, 23:51
Ясненько.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.06.2011, 23:51
Помогаю со студенческими работами здесь

WinAPI нет изображения
В общем, средствами WinAPI пытаюсь реализовать рекурсивный алгоритм прорисовки концентрических окружностей в заданном количестве. Проблема...

Поворот bmp изображения на 90 градусов winapi
8) Написать программу, которая читает с диска *.bmp файл и выводит его в окно приложения. При помощи потока организовать поворот...

Вывод изображения поверх другого изображения
Привет, как правильнее сделать такую манипуляцию нужно на картинке вывести справа вверху КРАСНЫЙ КРУГ как на изображении которое...

Сохранение изображения jpg/png в базу данных средствами С++ и WinAPI с последующим извлечением оного из БД
Можно ли с использованием C++ на winApi сохранить изображение (png,jpeg) в какую нибудь переменную , потом сохранить все это в MysQL , а...

Вывод изображения с БД и размер изображения
<div id="block-3" <?php $query = mysql_query("SELECT * FROM table_photos" ,$link); $array = mysql_fetch_array($query); do { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru