![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вывести массив точек на TImage? [D6, WinXP]
BofA © (2002-11-07 12:51:00)Есть структуры
TCArray = array of TColor;
var Pic : TCArray;
В Pic хранится изображение, как нарисовать его на TImage?
McSimm (2002-11-07 16:14:00) [1]нужно использовать ScanLine и записывать изображение построчно - это будет намного быстрее.
Но. Формат массива с точками должен соответствовать цветовому режиму картинки.
BofA (2002-11-07 15:58:00) [2]Неужели никто не знает?
BofA (2002-11-07 13:37:00) [3]Sorry за неточное изложение проблеммы. В массиве хранится изображение, известны его высота и ширина, а точка с координатами (X,Y) хранится в Pic[X+Width*Y].
Проблемма такая: Image.Canvas.Pixels очень медленно работает, а надо, чтобы изображение быстро выводилось. Можно ли как-нибудь вывести картинку в TImage быстрее чем через Canvas.Pixels?
Kudatsky (2002-11-07 13:30:00) [4]Если изображение находится в 1-мерном массиве (???), и если его нужно вывести в строку, то это можно сделать так:
procedure TEdiForm.Button1Click(Sender: TObject);
var
Pic : TCArray;
I:Integer;
begin
for I:=Low(Pic) to High(Pic) do
Image1.Canvas.Pixels[1,I]:=Pic[I];
end;
Картинка рисуется в 1-й строке Canvas