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

Вниз

Как отрыть файл 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.032 c
4-1155966925
zXm
2006-08-19 09:55
2007.01.07
Перехват API методом исправления таблиц импорта.


15-1166239012
Cosinus
2006-12-16 06:16
2007.01.07
Напомните, пожалуйста, название программы для отлова сообщений...


2-1166358355
Apachi
2006-12-17 15:25
2007.01.07
как можно уменьшить размер компилируемой DLL


15-1166128677
Real
2006-12-14 23:37
2007.01.07
Аналоговые часы на десктопе


15-1166517127
WondeRu_at_work
2006-12-19 11:32
2007.01.07
Карта этого сайта - почти ничего не осталось