a) Du kannst die Bitmaps eigentlich auch einfach per Dateioperation kopieren.
FileCopy(PChar(ImgPfad+'Img'+inttostr(l)+'.bmp'), PChar(ImgPfad+'SliceImg'+inttostr(k)+'.bmp'));
b) Du kannst das Bild auch mit Assign() auf eine andere TBitmap Instanz übertragen lassen.
Delphi-Quellcode:
TempPic.LoadFromFile(ImgPfad+'Img'+inttostr(l)+'.bmp');
SlicePic.Assign(TempPic);
SlicePic.SaveToFile(ImgPfad+'SliceImg'+inttostr(k)+'.bmp');
c) Du hast bei einem PixelFormat von kleiner gleich pf8Bit eine Farbpalette (wie zuvor schon geschrieben). Die ScanLine Daten enthalten keine direkt
RGB Farbinformationen mehr!! Die ScanLine Daten ergeben dabei nur einen Index - d.h. welcher Farbe aus der Farbtabelle für den Pixel genommen werden soll. Du musst also neben den Daten auch die Farbtabelle mit kopieren.
Delphi-Quellcode:
for k:=1 to anzslices do
begin
for l:=1 to anzpulse do
begin
TempPic.LoadFromFile(ImgPfad+'Img'+inttostr(l)+'.bmp');
zeile:=TempPic.ScanLine[k-1];
zeile2:=SlicePic.ScanLine[l-1];
for i:=0 to TempPic.width-1 do
zeile2^[i] := zeile^[i];
end;
SlicePic.Palette := CopyPalette(TempPic.Palette);
SlicePic.SaveToFile(ImgPfad+'SliceImg'+inttostr(k)+'.bmp');
end;