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

Вниз

Считывание BMP изображения и перевод в массив   Найти похожие ветки 

 
Brandik ©   (2006-09-24 00:59) [0]

Извинити за то что избито уже, наверное.

Стоит задача
1. Считать изображение BMP(размер NxM) из файла и преобразовать в массив NxM с значениями типа 0FA2DD.

Можете дать код или ссылочку на литературу

Подскажите, пожалуйста, какую книгу лучше приобрести  по Дельфи 7 чтобы максимально была раскрыта тема работы с изображениями.


 
Virgo_Style ©   (2006-09-24 08:36) [1]

Ну, начать можно с TBitmap (или вообще TImage) и Pixels. Затем, по мере возникновения вопроса "А почему так медленно?" модернизировать его. До неузнаваемости %-)
Точнее до ScanLine или чтения из файла.


 
MBo ©   (2006-09-24 11:45) [2]

TBitmap.LoadFromFile
в массив - GetDiBits


 
Brandik ©   (2006-09-24 13:13) [3]

Я тут поковырял форум и нашел вот такой путь. Это нормальное решение?

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;


 
Ketmar ©   (2006-09-24 14:44) [4]

>[3] Brandik(c) 24-Sep-2006, 13:13
фигня с ошибками. кто тебе сказал, что битмап -- всегда именно 32bpp?



Страницы: 1 вся ветка

Текущий архив: 2007.06.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.066 c
3-1173319054
Antoxa2005
2007-03-08 04:57
2007.06.03
Вопросик на зание SQL. (Дамы с праздником 8 марта)


5-1154952220
Nik2006
2006-08-07 16:03
2007.06.03
определение существования определенного метода в классе?


6-1158036070
DelphiN!
2006-09-12 08:41
2007.06.03
Отключить кеширование при открытии страницы в TWebBrowser-e


2-1178973589
ФФФФ
2007-05-12 16:39
2007.06.03
Поиск текста


9-1152615355
aKirill.INFO
2006-07-11 14:55
2007.06.03
Nebula 2