Russian Qt Forum
Ноябрь 22, 2024, 21:41
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Мультимедиа
>
Не могу вывести Pixmap
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Не могу вывести Pixmap (Прочитано 14801 раз)
ppk
Гость
Re: Не могу вывести Pixmap
«
Ответ #15 :
Август 23, 2009, 19:56 »
Вот, как выглядит ba после
QByteArray ba = QByteArray::fromRawData(cs,720*576):
"\1c\1c\1c\1c\1b\19\18\1c"\c\198\1d\1b\c\12\18\15\12\11\11\13\16\1a\1d\1d\1d\1d\1c\1a\18\16\15\18\1b\1f!! \1e\1d\1e !"!\1e\1c\1a\1a\1b\1d\1e!#&'%"\1e\1c\1c\1d\1f \1e\1c\1a\19\1a\1c\1e\1f\1e\1c\1b\19\19\19\19\1a\1b\1c\1d\1e\1f\1f\1f\1f\1f \1f\1f\1f\1f "#\b"\cd\ee5\e3\bd\b4r\eb"
Исходный буфер гораздо больше и соответствует размеру 720*576. Вот его начало:
0x9145460 "\034\034\034\034\033\031\030\034\"\f\0318\035\033\f\022\030\025\022\021\021\023\026\032\035\035\035\035\034\032\030\026\025\030\033\037!! \036\035\036 !\"!\036\034\032\032\033\035\036!#&'%\"\036\034\034\035\037 \036\034\032\031\032\034\036\037\036\034\033\031\031\031\031\032\033\034\035\036\037\037\037\037\037 \037\037\037\037 \"#$#! \036\034\033\032\032\033\034\036 !!\"#$%%#\" \036\037 !! \037\035\036\036\036\035\034\032\031\030\032\034\036\037 \037! \025\f\025!##$$\" \035\033\035\037\"$#!\037\036\035\035\035\034\032\027\025\024\026\031\034\036\037\037\037\037\037\037\036\036\035\035\034\033\031\026\024\023\023\023\022\022\027\034\033\027\r\005\b\020\031 \034\030\034\"&(('%\"\037\034\030\026\030\033\034\032\024\016\r\016\020\022\023\025\027\030\031\032\034\035\037\037\035\032\026\024\032!! !+2-%\034\026\034\"\027\016\024\034\035\034\033\032\032\032\032\033\034\037'2CROHA=BJQVTNIDCCCDHKOQPMJF@;7447;BKYx\224\227\222\216\213\216\222\223\224\225\226\227\230\232\235\241\246\255\265\276\305\307\306\304\301\276\272\265\251~]\201\252\244\226\223\220\206\200\221\246\270\303\271\253\255\262\263\264\266\267\270\270\270\267\265\263\257\252\245\244\251\260\267\275\276\275\274\273\273\273\273\274\274\275\276\275\272\266\264\263\263\267\304\321\321\317\315\313\314\315\316\316\316\316\315\315\314\314\314\313\313\312\306\304\322\335\322\305\307\313\315\316\315\313\312\310\307\306\303\307\336\366\375\376\377\372\356\303\302\352\307\315\310\311\311\311\312\313\320\323\312\305\324\345\350\345\330\312\307\303\302\313\311\310\310\307\307\306\303\277\274\266\250\232\216\213\241\272\303\307\310\306\306\305\303\301\301\301\301\276\261\243\225\215\225\244\263\300\305\307\311\310\305\300\273\267\270\274\302\303\251\217\214\225\255\304\304\277\301\302\277\274\275\276\272\267\274\275\254\226\201w\220\257\301\312\301\266\266\270\266\265\265\266\267\267\270\271\272\274\275\277\300\300\277\274\272\267\264\262\260\257\261\265\270\272\273\273\272\271\271\270\267\266\264\263\261\260\257\256\255\254\253\253\252\252\252\253\254\255\255\256\257\257\256\254\251\247\245\243\242\241\242\244\247\250\247\246\244\242\241\240\237\237\240\242\244\245\244\242\240
...
Попытка увеличить размер в 2 или 4 раза выводит сообщение, что ba находится вне области видимости.
«
Последнее редактирование: Август 23, 2009, 19:59 от ppk
»
Записан
ритт
Гость
Re: Не могу вывести Pixmap
«
Ответ #16 :
Август 23, 2009, 21:22 »
и кто такое cs?
Записан
ppk
Гость
Re: Не могу вывести Pixmap
«
Ответ #17 :
Август 23, 2009, 21:31 »
unsigned char *buffer
...
const char *cs = (char *) buffer;
Я немного ранее приводил кусок кода
Записан
ppk
Гость
Re: Не могу вывести Pixmap
«
Ответ #18 :
Август 23, 2009, 22:01 »
Посмотрел код по сохранению этого буфера в файл в чужой библиотеке.
Перед сохранением в начала буфера добавляется строка:
"P5\n720 576\n255\n"
Сделал у себя также:
QByteArray p("P5\n720 576\n255\n");
QByteArray ba = QByteArray::fromRawData(cs,720*576).prepend(p);
И все получилось.
Может быть кто-нибудь подскажет почему без этой строки QPixmap не хочет отображать картинку?
Записан
ритт
Гость
Re: Не могу вывести Pixmap
«
Ответ #19 :
Август 24, 2009, 00:12 »
строка QByteArray ba = QByteArray::fromRawData(cs,720*576).prepend(p); стала бессмысленной.
"P5\n720 576\n255\n" - какая-то сигнатура?
Записан
ppk
Гость
Re: Не могу вывести Pixmap
«
Ответ #20 :
Август 24, 2009, 09:24 »
Что означает эта строка не знаю, поэтому и спрашиваю, но она пишется в начало файла перед буфером, если буфер сохраняется в файл.
Там явно прослеживаются размеры изображения 576 X 720.
Записан
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...