|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.04.2012, 20:23 | #1 |
Пользователь
Регистрация: 16.04.2012
Сообщений: 17
|
одномерный массив -> изображение на форме
имеется одномерный массив байт, каждые 4 байта - пиксель RGBA. все строки картинки идут подряд. как можно быстренько вывести это дело на канву?
можно конечно генерировать bmp в папке с программой, но по-моему это не самое изящное решение. |
18.04.2012, 22:20 | #2 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Если помог, проси поставить минус. Будь оригинален!
|
18.04.2012, 23:56 | #3 |
Пользователь
Регистрация: 16.04.2012
Сообщений: 17
|
можно поподробней, как перевод из 24 бит в 32 должен мне помочь, если у меня и так 32?
|
19.04.2012, 00:24 | #4 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Код:
Если помог, проси поставить минус. Будь оригинален!
Последний раз редактировалось Rin; 19.04.2012 в 00:27. |
19.04.2012, 03:58 | #5 |
Пользователь
Регистрация: 16.04.2012
Сообщений: 17
|
при использовании BitBlt, при повторном вызове этой процедуры для другой текстуры, ничего не меняется. если заменить на Draw, то работает нормально, картинка размером 512x512 рисуется с задержкой. терпимо конечно...
|
19.04.2012, 04:57 | #6 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Не встречал такой проблемы с ditblt. Посмотрите ЗДЕСЬ работу со сканлайном, ваша текстура будет грузиться намного быстрее. Если зальете сырцы, то можно будет разобраться в чем трабл. При устовии, что не используете никаких компонентов из Delphi7 и выше.
Если помог, проси поставить минус. Будь оригинален!
Последний раз редактировалось Rin; 19.04.2012 в 05:00. |
19.04.2012, 23:26 | #7 |
Пользователь
Регистрация: 16.04.2012
Сообщений: 17
|
да, я использовал компонент Image, при выводе на форму, всё хорошо. думаю на форму и буду выводить, проще центрировать.
попутно пару вопросов, как стереть картинку (попробовал invalidate перед bitblt, но картинка исчезает практически сразу) и можно ли работать с прозрачностью (вот это or (m[i*j].a shl 24) выдаёт очень странный результат, большинство картинок становятся чёрными, иногда виден белый контур нарисованного. где-то в примерах нашёл, что это не значение прозрачности, а режим отрисовки...) |
20.04.2012, 00:26 | #8 | |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
На форму лучше не выводить. А отчистить можно так
Код:
Цитата:
Возможно, что нужно использовать формат не RGBA, а AGBR. тогда и формула будет перевернутой: Код:
Если помог, проси поставить минус. Будь оригинален!
Последний раз редактировалось Rin; 20.04.2012 в 00:29. |
|
20.04.2012, 02:21 | #9 |
Пользователь
Регистрация: 16.04.2012
Сообщений: 17
|
дело не в bmp, а в TColor видимо. получается, что первый байт, это не альфа канал... любое значение отличное от нуля делает с картинкой страшные вещи))
//На форму лучше не выводить.// почему так? у меня есть область внизу формы и я хочу чтобы картинка рисовалась посередине этой области, но у меня не получается привязать Image к форме так, чтобы при изменении размеров, менялась и область зарисовки. она остаётся такой же как и при первом вызове. |
20.04.2012, 04:54 | #10 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
На событии OnResize у формы изменяй размеры Image. Попробуй сохранить свой массив в файл, открыть его в фотошопе и глянуть, есть ли там альфаканал. Глянь кстати эту тему.
Если помог, проси поставить минус. Будь оригинален!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Одномерный массив и Двумерный массив | eugene1437 | Общие вопросы C/C++ | 15 | 25.05.2011 19:17 |
Изображение с рваными краями на форме | apromix | Общие вопросы Delphi | 3 | 02.03.2011 15:47 |
Одномерный массив , двухмерный массив | Woxx | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 10.09.2010 09:28 |
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. | Marishkaa | Помощь студентам | 2 | 12.01.2010 16:54 |
Двумерный массив, одномерный массив. | Branbal | Помощь студентам | 14 | 18.11.2009 12:40 |