Главная страница
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.04 c
15-1166435666
AntiUser
2006-12-18 12:54
2007.01.07
Владелец онлайнового магазина подает в суд на блоггера за...


2-1166381023
allrussia
2006-12-17 21:43
2007.01.07
Как и можно ли создать таблицу в таблице?


10-1127743909
yanker
2005-09-26 18:11
2007.01.07
Управление существующим сервером


2-1163146202
inkvizitor
2006-11-10 11:10
2007.01.07
Массив из Мемо


6-1154810901
TGX
2006-08-06 00:48
2007.01.07
Поиск компьютеров в локальной сети