Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
ВнизКак отрыть файл BMP в виде цифровой таблице? Найти похожие ветки
← →
Vladimir1984 © (2006-12-17 19:53) [0]Как отрыть файл BMP в виде цифровой таблице?
← →
Virgo_Style © (2006-12-17 20:07) [1]поподробнее, пожалуйста, что конкретно нужно и что именно неясно.
← →
Правильный Вася (2006-12-17 20:38) [2]в руническом виде прикольнее
← →
Vladimir1984 © (2006-12-17 20:54) [3]файл bmp 100 на 100, для карты высот(OpenGL) по HSL шкале...
Нужно чтобы при открытии появлялась таблица,данные в которой в соответствуют фалу бмп, тоесть например А1(первый столбец, первая строка) пиксель красного цвета = числовому значению 5,и в ячейке таблицы А1 прописываеся 5...
← →
ProgRAMmer Dimonych © (2006-12-17 21:03) [4]Используй GetRValue(), GetGValue(), GetBValue() для отдельных составляющих цвета или массив YourBitmap.Canvas.Points[x,y] для номера цвета в виде 32-битного числа.
← →
Vladimir1984 © (2006-12-17 21:06) [5]
> Используй GetRValue(), GetGValue(), GetBValue() для отдельных
> составляющих цвета или массив YourBitmap.Canvas.Points[x,
> y] для номера цвета в виде 32-битного числа.
Можно не много подробнее )
← →
ProgRAMmer Dimonych © (2006-12-17 21:35) [6]Вообще говоря, цвет произвольной точки, заданный в формате RGB - 32-битное число. Но оно само по себе мало о чём говорит обычному человеку (да и программисту тоже). Если надо только это 32-битное число, то в классе TBitmap есть TBitmap.Canvas, у которого, в свою очередь, есть свойство-массив Points[]. В квадратных скобках указываются координаты X и Y нужной точки битмапа. Это свойство как раз и вернёт 32-битный код цвета.
А Get?Value - для получения R - красной, G - зелёной, B - синей составляющих цвета. Эти числа уже более информативны для человека, но каждое из них - по 1-му байту.
← →
ProgRAMmer Dimonych © (2006-12-17 21:36) [7]GetRValue, GetGValue и GetBValue а входе получают как раз 32-битное число (то самое, которое в TBitmap.Canvas.Points[]).
← →
Vladimir1984 © (2006-12-17 21:47) [8]
uses
SysUtils, ComObj, ActiveX, Graphics;
var o: Variant;
sh, wb: Variant;
b:TBitmap;
x,y:integer;
begin
b:=TBitmap.Create;
b.LoadFromFile(ParamStr(1));
CoInitialize(nil);
o:=CreateOleObject("Excel.Application");
o.Visible:=true;
wb:=o.Workbooks.Add;
sh:=wb.ActiveSheet;
sh.Cells.ColumnWidth :=0.25;
sh.Cells.RowHeight := 2.5;
for x:=0 to b.Width do
for y:=0 to b.Height do
sh.Cells[y+1,x+1].Interior.Color:=b.Canvas.Pixels[x,y];
CoUninitialize();
b.Free;
end.
Вот нашел что то подходящее но в Excel, но она просто раскрашивает ячейки, а вот как присвоить каждому цвету, чифровое значение? 0-255 по HSL шкале, чтобы в самой таблице уже получались данные а не раскараска ячеек =)
← →
ProgRAMmer Dimonych © (2006-12-17 22:20) [9]У Cells[] по идее олжно быть что-то типа Value - туда и надо эти Points[] сунуть. А HSL - эо что такое, если не секрет?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.01.07;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c