Registriert seit: 25. Jun 2020
Ort: Lippe
114 Beiträge
Delphi 11 Alexandria
|
AW: 24-Bit Bitmap um 90 grad drehen - Resourcen-Optimierung
19. Okt 2020, 02:00
Zitat:
Gerne. Was meinst Du mit nur 2 mal aufrufen?
So in etwa:
Delphi-Quellcode:
procedure Drehe90Rechts24NurPointers(bm: TBitmap);
var
P, Pend, Pdest: PRGBTriple;
x, y, b, h: Integer;
RowOut: PByte;
help: TBitmap;
var
Offs, OffsDest: NativeInt;
begin
help := TBitmap.create;
help.pixelformat := pf24bit;
b := bm.height;
h := bm.width;
help.SetSize(b, h);
RowOut := help.scanline[0];
Pend := bm.scanline[bm.height - 1];
Offs := ((h * 24 + 31) and not 31) div 8;
OffsDest := ((b * 24 + 31) and not 31) div 8;
for y := 0 to h - 1 do
begin
P := Pend;
inc(P, y);
Pdest := PRGBTriple(RowOut);
for x := 0 to b - 1 do
begin
Pdest^ := P^;
inc(Pdest);
inc(NativeInt(P), Offs);
end;
dec(RowOut, OffsDest);
end;
bm.Assign(help);
help.free;
end;
Renate
|
|
Zitat
|