Форум программистов, компьютерный форум, киберфорум
SFML
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815

Изменение вида загруженной картинки в ImGui

19.08.2021, 19:37. Показов 3494. Ответов 4

Студворк — интернет-сервис помощи студентам
Здравствуйте! Искал как поворачивать, менять цвет и прозрачность загруженной картинки в ImGui, но не нашел, в самом SFML я нашел туториалы на оф.сайте. На гитхабе информация лишь о загрузке картинки, в демо программе тоже нет. Можете сказать где можно прочитать про эти функции?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.08.2021, 19:37
Ответы с готовыми решениями:

Изменение формы загруженной картинки, OpenGL
Здравствуйте. Я давно на этом форуме и почти все ответы по программированию нашел здесь(исключая конечно основы). Но я столкнулся с одной...

Загрузка и отображение картинки в окне Imgui
Здравствуйте! Я хочу загружать изображение в ImGui. Посмотрел вот тут как надо загружать. Так как я читал, что sfml должен поддерживать...

Уменить размер загруженной картинки
$images_arr = array(); foreach($_FILES as $key=>$val){ $image_name = $_FILES; $tmp_name = $_FILES; $size = $_FILES; ...

4
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
19.08.2021, 21:20
Лучший ответ Сообщение было отмечено ram876 как решение

Решение

Цитата Сообщение от ram876 Посмотреть сообщение
как поворачивать
В ImGui никак, там вообще нет трансформаций, ну и собственно зачем поворачивать в gui картинки?
Если нужно нарисовать повёрнутую картинку, то можно сначала её повернуть средствами sfml, отрендерить в текстуру и затем эту текстуру передать ImGui.
Цитата Сообщение от ram876 Посмотреть сообщение
менять цвет и прозрачность
Смотрите параметр tintColor в функциях ImGui::Image. Альфа-компонента цвета отвечает за прозрачность, а RGB-компоненты являются своего рода "фильтром" (нормализованный цвет каждого пикселя текстуры будет покомпонентно умножаться на нормализованный цвет tintColor).
1
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
19.08.2021, 21:45  [ТС]
Цитата Сообщение от zayats80888 Посмотреть сообщение
средствами sfml, отрендерить в текстуру и затем эту текстуру передать ImGui
Я после создания спрайта повернул его:
C++
1
sprite.setRotation(90.f);
Но в окне ImGui:
C++
1
ImGui::Image(sprite);
Картинка не повернута, тогда как, если я вывожу спрайт отдельно от ImGui, то поворот виден. В классе текстуры функцию поворота не увидел. Точно так же и с прозрачностью.
Но почему-то масштабирование спрайта отразилось в окне.

Добавлено через 3 минуты
Прозрачность изменилась, УРА!
0
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
19.08.2021, 22:10
Лучший ответ Сообщение было отмечено ram876 как решение

Решение

Цитата Сообщение от ram876 Посмотреть сообщение
Картинка не повернута, тогда как, если я вывожу спрайт отдельно от ImGui, то поворот виден.
Я же написал, сначала создайте повернутое изображение, потом передавайте это изображение ImGui.
Например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// подразумевается, что эта функция не будет вызываться каждый кадр и служит только для подготовки изображения
// (так же она возможно будет не юзабельна, т.к. в ImGui будет перевёрнута из-за RenderTexture, но эту проблему можно решить,
// смотри реализацию ImGui::Image(sf::RenderTexture))
sf::Texture createBoundingTexture(sf::Sprite sprite)
{
    auto bounds = sprite.getGlobalBounds();
    sprite.move(-bounds.left, -bounds.top);
    sf::RenderTexture target;
    target.create(static_cast<unsigned int>(bounds.width + 0.5f),
                  static_cast<unsigned int>(bounds.height + 0.5f));
    target.clear(sf::Color::Transparent);
    target.draw(sprite);
    target.display();
    return target.getTexture();
}
Цитата Сообщение от ram876 Посмотреть сообщение
Но почему-то масштабирование спрайта отразилось в окне.
Это потому, что внутри ImGui::Image используется функция sf::Sprite::getSize
1
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
19.08.2021, 22:18  [ТС]
Долго доходило, что надо функцию для текстуры использовать. Картинка повернулась. Большое спасибо, zayats80888! Теперь буду долга изучать Вашу функцию!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.08.2021, 22:18
Помогаю со студенческими работами здесь

Php информация о загруженной картинки
Всем привет как вывести сообщение после загрузки изображения вместо if($check === true){ // загружаем изображение на сервер ...

Запись загруженной картинки в файловую систему
Я работаю с Xamarin.Android, весь код на С#. Мне нужно скачать с адреса в нете картинку кота методом DownloadFileAsync из класса WebClient....

Отображение загруженной картинки на новой странице
Добрый день, необходимо по заданию с помощью CGI на языке Python загрузить файл на сервер. Делаю это так. Файл загружается, но по заданию...

Удаление файла картинки, загруженной в PictureBox
Всем знатокам доброго времени суток! Вставляю картинку в PictureBox кодом PictureBox1.Image =...

Как уменьшить цветность загруженной картинки
Например я подгружаю картинку на которой возможно 64 тыс цветов, как можно програмно преобразовать ее до картинки с цветностью в 256 и...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru