![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Считывание BMP изображения и перевод в массив [D7, WinXP]
Brandik © (2006-09-24 00:59:00)Извинити за то что избито уже, наверное.
Стоит задача
1. Считать изображение BMP(размер NxM) из файла и преобразовать в массив NxM с значениями типа 0FA2DD.
Можете дать код или ссылочку на литературу
Подскажите, пожалуйста, какую книгу лучше приобрести по Дельфи 7 чтобы максимально была раскрыта тема работы с изображениями.
Ketmar (2006-09-24 14:44:00) [1]>[3] Brandik(c) 24-Sep-2006, 13:13
фигня с ошибками. кто тебе сказал, что битмап -- всегда именно 32bpp?
Brandik (2006-09-24 13:13:00) [2]Я тут поковырял форум и нашел вот такой путь. Это нормальное решение?
procedure TForm1.Button1Click(Sender: TObject);
type
TRGB = record
b, g, r: byte;
end;
ARGB = array[0..100,0..100] of TRGB;
var
// JpegIm: TJpegImage;
BmpImage: TBitMap;
x,y : Integer;
P : PByteArray;
B: ARGB;
begin
// if OpenDialog1.Execute = true then
BmpImage:= TBitmap.Create;
BmpImage.LoadFromFile(edit1.text+'.bmp');
try
// On Windows replace MyBitmap.png with a full pathname such as
// C:\Program Files\Common Files\Borland Shared\Images\Splash\256color\factory.bmp
for y := 0 to BmpImage.Height -1 do
begin
P := BmpImage.ScanLine[y];
for x := 0 to {BmpImage.Width -}1 do
// P[x] := y;
Begin
b[y,x].b :=p[x*3];
b[y,x].g :=p[x*3+1];
b[y,x].r :=p[x*3+2];
End;
end;
Canvas.Draw(100,100,BmpImage);
edit4.text:=inttostr(B[strtoint(edit2.Text),strtoint(edit3.Text)].r);
edit5.text:=inttostr(B[strtoint(edit2.Text),strtoint(edit3.Text)].g);
edit6.text:=inttostr(B[strtoint(edit2.Text),strtoint(edit3.Text)].b);
finally
BmpImage.Free;
end;
MBo (2006-09-24 11:45:00) [3]TBitmap.LoadFromFile
в массив - GetDiBits
Virgo_Style (2006-09-24 08:36:00) [4]Ну, начать можно с TBitmap (или вообще TImage) и Pixels. Затем, по мере возникновения вопроса "А почему так медленно?" модернизировать его. До неузнаваемости %-)
Точнее до ScanLine или чтения из файла.