Показать сообщение отдельно
  #1  
Старый 15.06.2016, 04:46
Linerath Linerath вне форума
Прохожий
 
Регистрация: 09.06.2016
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию На Bitmap посторонние цвета

Ход программы следующий: берется текстовый файл с цветами пикселей, формируется новый Bitmap и через ScanLine он изменяет
свои цвета в соответствии с цветами из файла.
Проблема: сохранив Bitmap, появляются какие-то левые цвета. Вот пример:
Было:
http://s010.radikal.ru/i314/1606/7b/0c4a3a15bd84.png
Стало:
http://s018.radikal.ru/i517/1606/21/e4c95ef91a5e.png
А вот код:
Код:
var
    Bitmap: TBitmap;
    f: TextFile;
    i,j: cardinal;
    PScanLineArray: PByteArray;
    color: byte;
begin
  Bitmap:=TBitmap.Create;
  Bitmap.Height:=369;
  Bitmap.Width:=328;
  Bitmap.PixelFormat:=pf8bit;

  AssignFile(f,'Data.txt'); //в f цвета пикселей
  Reset(f);

  for i:=0 to 368 do
  begin
    PScanLineArray:=Bitmap.ScanLine[i];
    for j:=0 to 328 do
    begin
      read(f,color);
      PScanLineArray[j]:=color;
    end;
  end;

  Image1.Canvas.Draw(0,0,Bitmap);
  Bitmap.Free;
  CloseFile(f);
end;

Файл 10 раз перепроверил. Он был сформирован тоже ScanLine'ом.
Битность цветов в файле, соответственно, 8.
Ответить с цитированием