Показать сообщение отдельно
  #6  
Старый 14.09.2010, 22:16
fen1ks fen1ks вне форума
Прохожий
 
Регистрация: 13.09.2010
Сообщения: 6
Репутация: 10
По умолчанию

Код:
CONST
  PixelCountMax = 32768;

TYPE
  pRGBArray = ^TRGBArray;
  TRGBArray = ARRAY[0..PixelCountMax-1] OF TRGBTriple;
  ...

var
  Form1: TForm1;
  OriginalBitmap:TBitmap;
  ProcessedBitmap:TBitmap;
  i,j:integer;
  RowOriginal:pRGBArray;
  RowProcessed:pRGBArray;

Код:
procedure CreateBMP;
begin
if OriginalBitmap.PixelFormat <> pf24bit then
  begin
    ShowMessage('Изображение должно быть 24-х битным');
    Exit;
  end;

for j:=OriginalBitmap.Height-1 downto 0 do
begin
  RowOriginal:=pRGBArray(OriginalBitmap.Scanline[j]);
  RowProcessed:=pRGBArray(ProcessedBitmap.Scanline[j]);

  for i:=OriginalBitmap.Width-1 downto 0 do
  begin
    RowProcessed[i].rgbtRed:=RowOriginal[i].rgbtRed;
    RowProcessed[i].rgbtGreen:=RowOriginal[i].rgbtGreen;
    RowProcessed[i].rgbtBlue:=RowOriginal[i].rgbtBlue;
  end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  OriginalBitmap.LoadFromFile('a.bmp');
  createbmp;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   OriginalBitmap:=TBitmap.Create;
end;

изображение a.bmp 800x600, программа выдает ошибку, подскажите
Ответить с цитированием