Russian Qt Forum
Ноябрь 14, 2024, 21:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QPixmap vs QImage  (Прочитано 8174 раз)
Caduceus
Гость
« : Ноябрь 24, 2010, 12:40 »

Что-то прошелся по проекту - у меня то одно в одном месте, то другое в другом. По сути взаимозаменяемые вещи или я че-то не понимаю?

Когда использовать одно, а когда другое?
Записан
zenden
Гость
« Ответ #1 : Ноябрь 24, 2010, 12:46 »

пользуйтесь поиском
http://www.prog.org.ru/topic_9858_0.html
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #2 : Ноябрь 24, 2010, 13:23 »

Одна ремарка.
QImage хранится в адресном пространстве приложения, а QPixmap в XServer-a/GDI.
Если не планируете часто менять содержимое картинки, то используйте QPixmap, в противном случае QImage.
Записан

Qt 5.11/4.8.7 (X11/Win)
Hordi
Гость
« Ответ #3 : Ноябрь 24, 2010, 19:36 »

QImage можно грузить из потоков, QPixmap - нет
Записан
fdn
Гость
« Ответ #4 : Ноябрь 25, 2010, 09:50 »

QPixmap это аппаратно зависимая реализация. Например глубина цвета QPixmap = глубине цвета экрана. Работает очень быстро.


QImage  - это аппаратно-независимая реализация, но работает довольно медленно.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Ноябрь 25, 2010, 10:55 »

Цитировать
Например глубина цвета QPixmap = глубине цвета экрана.
На Х-ах для создания Pixmap можно выбрать любую глубину цвета , которую поддерживает Xserver.
Почему-то Qt это не позволяет.

И ещё:
- при довольно-таки большом количестве Pixmap-ов GDI может перестать их создавать, т.к. имеются ограничения на их количество.
- при задействовании composing-а не стоит пользоваться пиксмапами, т.к. Qt композинг делает только с QImage, т.е. будет делаться постоянная конвертация QPixmap<->QImage.

В общем всё зависит от задачи.
Записан

Qt 5.11/4.8.7 (X11/Win)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Ноябрь 25, 2010, 12:32 »

Цитировать
Например глубина цвета QPixmap = глубине цвета экрана.
На Х-ах для создания Pixmap можно выбрать любую глубину цвета , которую поддерживает Xserver.
Почему-то Qt это не позволяет.
У меня об Xserver представление смутное, но просто стало интересно - что ж он такого поддерживает? 8 бит на канал, 32 на точку? Может больше (напр 16 или 32 на канал)?  Тогда что он с ними делает?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #7 : Ноябрь 25, 2010, 16:03 »

Цитировать
У меня об Xserver представление смутное
Ну, ликбез о X11 думаю не стоит устраивать здесь.
Записан

Qt 5.11/4.8.7 (X11/Win)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #8 : Ноябрь 26, 2010, 05:22 »

Ну, ликбез о X11 думаю не стоит устраивать здесь.
А я и не прошу Вас пояснять специфику Вашей платформы - поясните идею и почему Вам это нравится
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #9 : Ноябрь 26, 2010, 09:14 »

Цитировать
А я и не прошу Вас пояснять специфику Вашей платформы - поясните идею и почему Вам это нравится
Чего-то Вы меня не поняли. Мне абсолютно всё-равно, что Qt не позволяет создавать пиксмапы разной глубины цвета.
Я лишь констатировал факт, что на Х-ах это возможно.
Я пишу под Х-ы с 92-го года и мне ни разу не нужно было создавать пиксмапы с глубиной отличной от 1 или дефолтной для приложения.
Но насколько я знаю, старые коммерческие Х сервера позволяли запускать приложения с разными Visuals и наверное кому-то нужны были пиксмапы с разной глубиной. Вполне возможно, что это уже устарело.
Записан

Qt 5.11/4.8.7 (X11/Win)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 23.