Registriert seit: 8. Jun 2018
56 Beiträge
|
AW: Bereichsüberlauf bei rin bitmap drehen
27. Feb 2019, 14:16
Das währe ein dynamisches Array und das geht in diesem Fall garnicht.
Stimmt
Aber das geht:
Delphi-Quellcode:
procedure Rotate90(const aSource:TGraphic; const aBmp: TBitmap);
var
SourceBmp : TBitmap;
SourcePixel, DestPixel: PRGBQuad;
Y, X, SourceWidth, SourceHeight: Integer;
begin
SourceBmp := TBitmap.Create;
try
SourceBmp.PixelFormat := pf32bit;
SourceBmp.Height := aSource.Height;
SourceBmp.Width := aSource.Width;
SourceBmp.Canvas.Draw(0, 0, aSource);
SourceHeight := SourceBmp.Height;
SourceWidth := SourceBmp.Width;
aBmp.PixelFormat := pf32bit;
aBmp.Height := SourceWidth;
aBmp.Width := SourceHeight;
for Y := 0 to SourceWidth - 1 do
begin
DestPixel := aBmp.ScanLine[Y];
SourcePixel := SourceBmp.ScanLine[SourceBmp.Height - 1];
Inc(SourcePixel, Y);
for X := 0 to SourceHeight - 1 do
begin
DestPixel^ := SourcePixel^;
Inc(SourcePixel, SourceWidth);
Inc(DestPixel);
end;
end;
finally
SourceBmp.Free;
end;
end;
... ...
prima...Das funktioniert...Danke
|
|
Zitat
|