Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax > 2D-программирование

Ответ
 
Опции темы
Старый 02.10.2007, 18:52   #1
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Плохо ReadPixel , PixMaps, Снимок экрана

Несколько тупых вопросов по блитзмаксу...

В общем, как обычнО, что-то делаю... делаю, и вот наткнулся на несколько проблем...

Как узнать цвет пикселя на экране? Вроде ReadPixel,а вроде и нет...
Для чего нужна Pixmaps?
Как сделать снимой экрана? И, допустим, как преобразовать получившийся снимок в картинку?

Вот.. как я понял, это все взаимосвязано.. но что и как - хз. Сам не смог разобратся...

Вроде надо организовать pixmap, и с помощью него и будет работать read pixel и можно будет делать снимок... а вообще как это все в коде реализовать... хы...

И вот еще вопрос. Если делать полноэкранный снимок экрана, преобразовывать его в картинку и сразу же выводить под определенным setblend'ом в реальном времени, это все жутко тормозить будет?


непостижима моей логики эта система.. (

сорри, конечно, но сам не смог...
(Offline)
 
Ответить с цитированием
Старый 02.10.2007, 19:48   #2
breadman
Нуждающийся
 
Регистрация: 23.02.2007
Сообщений: 65
Написано 0 полезных сообщений
(для 0 пользователей)
Re: ReadPixel , PixMaps, Снимок экрана

Кстати мне тоже очень интересны эти проблемы)
Так что пожалуста дайт кто-нибудь ответ, и вы поможете
человечеству! =)
Заранее благодарен!
(Offline)
 
Ответить с цитированием
Старый 02.10.2007, 20:33   #3
jimon
 
Сообщений: n/a
Re: ReadPixel , PixMaps, Снимок экрана

TPixmap ето просто масив пикселей
TImage ето картинка, то есть масив pixmapов
я думаю абстракция понятна ?
TImage просто позволяет грузить анимационые картинки
где каждый кадр ето отдельный pixmap

в принципе грабим всю картинку в pixmap
там делаем readpixel получает INT
далее побитовым смещением выуживаем нужный нам байт
в INTе 4 байта, тоесть 32 бит сумарно
обычно формат INTа в пиксмапе ARGB, но может быть и другой
что указано в справке
как доставать цвета - покапайтесь на форуме
тут уже был код

к примеру вот как делается скриншот в бмаксе
Local img:TPixmap = GrabPixmap(0,0,GraphicsWidth(),GraphicsHeight())
SavePixmapPNG(img,filename)

в общем хз о тормозности функции
я нигде не использую ее

возьмите высокоточный таймер моего производства
и просто померяйте скока времени жрет етот grappixmap
теоретически довольно мало должен есть
 
Ответить с цитированием
Старый 03.10.2007, 13:49   #4
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: ReadPixel , PixMaps, Снимок экрана

хотелось бы добавить, что еще есть Function GrabImage( image:TImage,x,y,frame=0 )
Description: Grab an image from the back buffer.
__________________
(Offline)
 
Ответить с цитированием
Старый 05.10.2007, 22:03   #5
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Счастье Re: ReadPixel , PixMaps, Снимок экрана

теоретически довольно мало должен есть
Вот так сделал для копирования всего экрана и вывода сразу же под определенным SetBlend. Получилось очень красиво, аля эффект свечения. Но стало настолько тормозить... в общем функция GrabImage полноэкранная жрет 400 мс. Это ужс.. то есть 2 фпс в секунду при ней... Я думаю, как-то можно ведь обойти это...

..::Добавил::..


Попробовал функцией Жимона.. вот... 32 мс тратит GrapPixmap. Если с сохраненим - около 300 мс. гы, а если выводить просто пихмапу - 30 мс. около 35 фпс. И аля тот же эффект.

Вывод
- жимон прав). И функцию grabimage лучше не использовать, ибо тормазнутая.
(Offline)
 
Ответить с цитированием
Старый 05.10.2007, 23:43   #6
jimon
 
Сообщений: n/a
Re: ReadPixel , PixMaps, Снимок экрана

Данил
свечение к картинкам лутче сразу в фотошопе добавить
ибо пост еффекты нужно сводить к минимуму
 
Ответить с цитированием
Старый 28.11.2007, 01:36   #7
oxid
Нуждающийся
 
Регистрация: 20.08.2006
Сообщений: 54
Написано 3 полезных сообщений
(для 4 пользователей)
Re: ReadPixel , PixMaps, Снимок экрана

Если нужен постэффект типа блюра или размытия картинки, он делается на основе работы с CLS:
0 - CLS
1 - рисуем сцену (с прозрачностью в .5)
2 - рисуем сцену со смещением и прозрачность .5
3 - флип, переход на 0
Пунктов 1,2 может быть разное количество, в зависимосте от него подбираешь альфу.
Так будет рисоваться быстрее - не будет тормозной операции GrabImage

хинт 2: вместо CLS можно использовать отрисовку моноцветной картинки с нужным цветом - ускорение.

хинт 3: для экономии памяти куртинку для затычки CLS можно сделать из одного пикселя и скалить ее под размер окна, а не делать целый пиксмап под его размер.

Убыстрить снимок с экрана можно только очень сложным способом (теоретически) - написать в асме оптимизированный код. Для грабинга используется стандартный функционал ДХ, т.е. - это не косяк БМ, а тормоза ДХ. Можно немного оптимизировать работу ДХ, вызвав вместо BitBlt FastBlt в самой процедуре GrabPixmap. (параметры поменять не забудь).

--
гы надо-же раздел по БМ открыли а я токо заметил
ничо что я так поздо - думаю поможет все-же
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Затемнение экрана SubZer0 Программирование 4 03.08.2014 21:35
Lib_rc: поворот экрана Piligrim Библиотеки 22 06.04.2010 22:58
Очистка экрана Winner Основной форум 7 14.02.2010 00:08
Вектора и сейф экрана... VotapilD Основной форум 12 22.12.2009 23:21
Эффект затухания экрана c0mrad 2D-программирование 14 27.01.2007 01:50


Часовой пояс GMT +4, время: 12:57.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com