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

Ребят, как можно вывести изображение формата jpeg, png, bmp? Какие библиотеки для этого нужны или есть где-нибудь подробная инструкция? Это сложно?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Вывод на экран изображения фигур (Ромб вписан в треугольник)
как написать программу вывода на экран изображения фигур(Ромб вписан в треугольник)?Объясните.
Вывод изображения на экран
Подскажите как справиться с задачей! Нужно вывести изображение треугольника с заданными.
Вывод изображения на экран
Здравствуйте! Пишу программу в консольном приложении Win32 на С++. Подскажите пожалуйста, как.
Вывод изображения на экран
Нужно вывести изображение .png без рамки (голая картинка без окна, и соответственно рамок и.
3864 / 2446 / 416
Регистрация: 09.09.2017
Сообщений: 10,620
Средствами языка это сделать невозможно: в Си нет стандартных функций рисования. Открыть графический файл как бинарный и разбирать формат можно, конечно, но неэффективно.
Значит, нужно выбрать графическую библиотеку, которой будете пользоваться. А это зависит от конечной цели, которую перед собой ставите:
1. Игры и т.п., где от библиотеки требуется только создать окно да отлавливать ввод, остальное будет через OpenGL/DirectX/Vulkan. Тут самые известные SDL, SFML, GLUT, GLEW.
2. «Офисные», где требуется развесистый набор стандартных компонентов вроде кнопочек, формочек, полей и т.п., а скорость вывода вторична. Тут стоит взять QT или gtk. Есть еще несколько, но они менее распространены.
3. «ядерное программирование», то есть просто желание познакомиться с конкретной системой и ее низкоуровневыми функциями. Ну, тут только искать самые низкоуровневые функции, доступные для вашей целевой системы.
.
Лично я для аналогичной задачи брал SDL2, там и вывод графики есть, и импорт картинок. И много чего другого, но пока это не важно. Говорят, то же самое есть в SFML, но сам не трогал.
Регистрация: 08.08.2017
Сообщений: 17
Сообщение от COKPOWEHEU 
Средствами языка это сделать невозможно: в Си нет стандартных функций рисования. Открыть графический файл как бинарный и разбирать формат можно, конечно, но неэффективно.
Значит, нужно выбрать графическую библиотеку, которой будете пользоваться. А это зависит от конечной цели, которую перед собой ставите:
1. Игры и т.п., где от библиотеки требуется только создать окно да отлавливать ввод, остальное будет через OpenGL/DirectX/Vulkan. Тут самые известные SDL, SFML, GLUT, GLEW.
2. «Офисные», где требуется развесистый набор стандартных компонентов вроде кнопочек, формочек, полей и т.п., а скорость вывода вторична. Тут стоит взять QT или gtk. Есть еще несколько, но они менее распространены.
3. «ядерное программирование», то есть просто желание познакомиться с конкретной системой и ее низкоуровневыми функциями. Ну, тут только искать самые низкоуровневые функции, доступные для вашей целевой системы.
.
Лично я для аналогичной задачи брал SDL2, там и вывод графики есть, и импорт картинок. И много чего другого, но пока это не важно. Говорят, то же самое есть в SFML, но сам не трогал.
Спасибо за столь подробную информацию!
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Вывод изображения на экран
Написать программу, которая выводит на экран данное изображение

Вывод изображения на экран
Среда разработки — Visual Studio 2015 Цель — вывести bmp картинку на экран Заранее спасибо
Вывод изображения на экран
Всем Доброго времени суток. Дано изображение в формате bmp. Вывести его на экран путём случайного.
Вывод на экран графического изображения
вывод на экран графического изображения на экран. Каждый элемент фигуры должен быть закрашен в свой.
Или воспользуйтесь поиском по форуму:
Вывод изображения на экран

Как вывести изображение на экран юзеру, при этом изображение должно быть поверх окон.
Отслеживать
задан 20 июл 2020 в 11:17
Yarick_Suharik Yarick_Suharik
11 4 4 бронзовых знака
Всегда поверх окон или только когда окно с приложением активно?
20 июл 2020 в 11:22
Всегда поверх окон.
20 июл 2020 в 11:23
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Можно использовать функцию SetWindowPos с параметром HWND_TOPMOST .
Отслеживать
ответ дан 21 июл 2020 в 1:47
Alexander Petrov Alexander Petrov
29.1k 5 5 золотых знаков 28 28 серебряных знаков 55 55 бронзовых знаков
- c++
- windows
- winapi
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.26.3951
Как с помощью QT вывести на монитор 10-битное изображение?
Недавно появился снэпшот Qt 5.13 , в котором у QImage стал доступен формат QImage::Format_Grayscale16 . Около года назад мне уже приходилось работать с QImage , но тогда речь шла только о 8-битах на пиксель. Так как на работе есть 10-битный монитор, я решил попробовать создать и вывести на него градиент 1024×400, в котором каждый пиксель должен быть на тон светлее предыдущего (2^10=1024). Сформировав QByteArray следующим образом:
QByteArray *ArrayGenerator::gen10bitArr() < QByteArray *arr = new QByteArray(); uint8_t partA; uint8_t partB; for (int row = 0; row < 400; row++) < for (uint16_t color = 0; color < 1024; color++) < partA = static_cast((color &0xFF00) >> 8); partB = static_cast(color &0x00FF); arr->append (partA); arr->append (partB); > > return arr; >
Я попытался сформировать QImage так же, как делал это прежде:
QImage &MainWindow::gen10bitImg(QByteArray*data, int width, int height) < QImage * img = new QImage((uchar*)data->data (), width, height, 2048, QImage::Format_Grayscale16); img->save ("image.png"); return *img; >

Однако, результат был неожиданным, вместо градиента на 1024px, сформировалось целых четыре по 256px: Такое ощущение, что QImage сформировался только по четным байтам из QByteArray . Как можно побороть подобное? Кто-нибудь уже работал с QImage::Format_Grayscale16 ?
Как подключить ноутбук к телевизору — с кабелем и без него
Вывести на телевизор изображение с экрана ноутбука можно многими способами. Решающий фактор — технические возможности обоих устройств. Например, в устаревших моделях могут отсутствовать необходимые разъёмы или интерфейсы беспроводного подключения. В этой статье мы собрали различные варианты решения проблемы.

Изображение с ноутбука дублируется на телевизоре. Источник: asurion.com
Кабель HDMI
Для самого простого способа подключения потребуется HDMI-кабель. Разъём HDMI есть в каждом современном ноутбуке или телевизоре. Этот интерфейс способен передавать цифровое изображение в разрешении до 4К, а также поддерживает стереозвучание.
При подключении устройств с помощью HDMI телевизор выступает в качестве основного или дублирующего экрана. Главное — выбрать подходящий кабель: от него зависит максимальное передаваемое разрешение. Для разрешения Full HD хватит кабеля версии 1.4, а для 4К понадобится 2.0 или 2.1. Инструкция для такого подключения устройств очень проста:
- Подключите кабель к HDMI-разъёмам обоих устройств. Если в ноутбуке такой порт обычно один, то в телевизоре их всегда несколько. Они должны быть пронумерованы. Лучше сразу запомнить, какой используется разъём — это упростит дальнейшую настройку.

Разъёмы HDMI в телевизоре всегда подписаны и пронумерованы. Источник: btech.com
2. При помощи пульта ДУ измените источник сигнала, выбрав нужный HDMI-разъём: они также пронумерованы в меню настроек. Выбрать один из них можно кнопкой на пульте телевизора. Ищите кнопку Input или Source — название варьируется в зависимости от модели.
3. На ноутбуке откройте настройки дисплеев. В операционной системе Windows это можно сделать через контекстное меню «Разрешение экрана» или комбинацию клавиш Win + P. В появившемся списке выберите пункт «Повторяющийся». После этого телевизор будет дублировать изображение дисплея ноутбука.

Выбор одного из четырёх режимов подключения дополнительного экрана. Иллюстрация: Никита Соколов
4. Также можно выбрать пункт «Только второй экран». В таком случае телевизор станет основным и единственным монитором, а экран ноутбука потемнеет.
Разрешение экрана должно настроиться автоматически. Если этого не произошло, перейдите в настройки экрана через контекстное меню. Здесь же можно изменить масштабирование, яркость и другие параметры.
Кабель VGA
Это ещё один способ проводного подключения телевизора к ноутбуку. Он подходит для устаревшей техники, где нет более современных HDMI-разъёмов. В то же время два устройства с разными разъёмами можно подключить с помощью специальных адаптеров HDMI — VGA. Главные недостатки VGA — отсутствие поддержки разрешения 4К и возможности передавать звук.

Во многих ноутбуках есть разъёмы как HDMI, так и VGA. Источник: sautitech.com
Чтобы подключить телевизор к ноутбуку при помощи такого кабеля, сначала вставьте его в соответствующие разъёмы устройств. После этого нужно сделать 3 простых шага:
- Изменить на пульте источник сигнала. Для этого воспользуйтесь на пульте кнопкой Source или Input, выбрав в появившемся списке VGA.
- На ноутбуке перейти к настройкам экрана: Параметры — Система — Дисплей.
- Выбрать ваш телевизор и соединиться с ним.
Как и HDMI, интерфейс VGA позволяет менять режимы работы экранов ноутбука и телевизора. Можно дублировать их или сделать один из них главным и единственным. Звук при этом передаваться не будет, поэтому его продолжит воспроизводить ноутбук.
Беспроводное соединение Wi-Fi
Если HDMI-кабель обеспечивает самое простое и удобное проводное соединение, то для беспроводного лучшим вариантом считается Wi-Fi. Его поддерживают все ноутбуки и современные телевизоры.

Wi-Fi Direct или Miracast находятся в разделе с настройками сети. Источник: itumnik.ru
Подключение производится по разным технологиям: например, Wi-Fi Direct или Miracast. Узнать, поддерживается ли одна из них телевизором, можно в его технических характеристиках. Производители также всегда указывают это на коробке. Чтобы соединить устройства, следуйте инструкции:
- На телевизоре и ноутбуке включите Wi-Fi.
- Откройте настройки сети в меню телевизора и найдите пункт подключения устройств. В некоторых моделях он называется иначе: например, SmartShare или «Источник».
- В появившемся списке найдите функцию Wi-Fi Direct.

В меню SmartShare отображаются все доступные для подключения устройства. Источник: smart-iptv.ru
4. В ноутбуке откройте меню настроек экрана. Для этого проследуйте по пути: Пуск — Параметры — Система — Дисплей.
5. Выберите пункт подключения к беспроводному дисплею и кликните в выпавшем списке на нужное устройство.
Когда всё будет сделано, на экране телевизора появится запрос на подтверждение сопряжения. С этого момента изображение с дисплея ноутбука будет транслироваться на ТВ. Звук тоже будет передаваться без каких-либо дополнительных настроек.
Подключение по Chromecast
Ещё одна технология беспроводного сопряжения ноутбука с телевизором. Способ удобный, но для него потребуется отдельная приставка Chromecast: есть модели с поддержкой Full HD и 4K. После подключения она превратит даже старый телевизор без Smart TV в современную модель с широким набором функций. Через Chromecast можно транслировать с ноутбука окно браузера Google Chrome, а также фото, музыку или фильмы.

Приставка Chromecast превращает любой телевизор в современное устройство с поддержкой приложений из Google Play. Источник: canbuyornot.com
Главное, чтобы и ноутбук, и Chromecast были подключены к одной сети. Дальнейшие действия элементарны:
- Откройте на компьютере браузер Google Chrome.
- Вызовите меню, нажав на иконку с троеточием в верхнем правом углу.
- Выберите пункт «Трансляции».
- В появившемся окошке найдите нужную модель телевизора.
- Выберите, что именно необходимо транслировать на экран телевизора.
Папка с общим доступом
Данный способ подключения ноутбука к телевизору не позволяет транслировать изображение с одного устройства на экран другого — принцип действия несколько отличается. Система ноутбука предоставляет телевизору доступ к папке, где расположены заранее собранные файлы: фотографии, видео или музыка. Инструкция для этого метода следующая:
1. Подключите ноутбук и телевизор к единой сети, например, одному Wi-Fi роутеру. Телевизор можно подключить и с помощью сетевого кабеля.
2. На ноутбуке создайте папку с файлами, к которым необходимо открыть доступ. Именно их можно будет просматривать на телевизоре.
3. Кликните по данной папке правой кнопкой мыши и выберите пункт «Свойства».
4. Перейдите во вкладку «Доступ» и нажмите на кнопку «Расширенная настройка». Активируйте функцию, поставив галочку «Открыть общий доступ к этой папке».

Общий доступ к любой папке на ноутбуке открывается несколькими кликами. Иллюстрация: Никита Соколов
В этой папке можно хранить фильмы или сериалы, музыку или фотографии. Чтобы получить доступ к контенту с телевизора, откройте на нём браузер и введите в нём адрес домашней сети.
Подключение ноутбука к телевизору — лучший способ
Выделить среди всех перечисленных лучший вариант невозможно — ориентируйтесь на возможности вашей техники и собственные предпочтения. Если в ноутбуке и телевизоре есть HDMI-разъёмы, то этот интерфейс подойдёт вам лучше всего. Метод не требует дополнительных настроек — нужно просто соединить устройства кабелем. Подключение телевизора к ноутбуку через кабель VGA будет неплохой способом для менее современных устройств, но его главный недостаток — невозможность передавать звук. Также этот метод не поддерживает разрешение 4К.
Подключение с помощью Wi-Fi Direct или Miracast — лучший вариант беспроводного сопряжения, если ваш телевизор поддерживает такую функцию. В противном случае можно купить приставку Chromecast и транслировать экран через браузер Google Chrome.
Использование папки с общим доступом ограничено только расположенными в этой папке файлами. Например, в таком случае не получится одновременно играть и транслировать геймплей на экран телевизора, а также менять изображения в режиме реального времени. Но это хороший вариант для просмотра фильмов или фотографий, который не требует дополнительного оборудования.