Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Вывод набора данных в TImage   Найти похожие ветки 

 
Илайдж   (2003-07-15 16:04) [0]

Приветствую, мастера.
Есть некий осмысленный набор данных, который хранится в массиве размером 64к (320x200)

Есть такая штука

type
TPItem = record
r,g,b: byte;
end;

TPal = array [0..255] of TPItem;

function RGB2Color(P: TPal; item: byte): TColor;
begin
result := rgb(P[item].r shl 2,P[item].g shl 2,P[item].b shl 2);
end;


Вывод картинки осуществляется так:

for i:=0 to 319 do
for j:=0 to 199 do
( pal,mas[j*320+i])
Приветствую, мастера.
Есть некий осмысленный набор данных, который хранится в массиве размером 64к (320x200)

Есть такая штука

type
TPItem = record
r,g,b: byte;
end;

TPal = array [0..255] of TPItem;

function RGB2Color(P: TPal; item: byte): TColor;
begin
result := rgb(P[item].r shl 2,P[item].g shl 2,P[item].b shl 2);
end;


Вывод картинки осуществляется так:

for i:=0 to 319 do
for j:=0 to 199 do
Image1.Canvas.Pixels[i,j] := rgb2color(pal,mas[j*320+i]);


Понятное дело, что это идет очень медленно.
Пытался вывести через функцию SetDIBitsToDevice, но проблема в том, что в аргументе есть var Bits: tagBITMAPINFO и никак не получается привязать мою палитру pal к этой штуке.
Выводит либо белый экран, либо ахинею...
Подскажите, как вывести картинку, имея ее непосредственные данные и отдельно палитру, которая используется при выводе на экран. С bmp-шниками никаких проблем нету, но хотелось бы использовать данные, которые уже существуют, а не конвертить каждый файл в свой bmp.
Заранее спасибо.

Надеюсь, объяснил осмысленно..


 
MBo ©   (2003-07-15 16:40) [1]

http://www.delphimaster.ru/articles/pixels/index.html


 
Fenik ©   (2003-07-15 21:07) [2]

По-моему, лучше сначала на бмп, а потом на экран.
Ведь как легко и просто работать со ScanLine..



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
14-41954
p@s
2003-10-17 06:12
2003.11.13
Расшифровка


1-41541
Blunder
2003-10-28 08:09
2003.11.13
О строках


7-42169
Camedia
2003-08-30 22:18
2003.11.13
Нужно чтобы хук работал по всей системе....


3-41109
KA_
2003-10-23 09:06
2003.11.13
Проверка существования таблицы Interbase


14-42060
Denis_Ac
2003-10-21 09:29
2003.11.13
Помогите решить проблему