Форум: "Media";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизImage. (Rotate) Найти похожие ветки
← →
Artur (2003-11-15 18:33) [0]Здравствуйте мастаки, подскажите пожалуйста как осуществить переворот просматриваемой картинки (Rotate) в Image. Может кто процедуру знает ?
Спасибо.
← →
MBo © (2003-11-15 18:38) [1]На какой угол?
Если именно переворот - TCanvas.StretchDraw или StretchBlt c отрицательной высотой
← →
miek © (2003-11-15 21:03) [2]В KOL есть процедуры для поворота на 90 градусов
← →
Artur (2003-11-16 08:48) [3]На повророт 90; 180;
← →
MBo © (2003-11-16 10:53) [4]90: NewPixel[i,j]:=oldpixel[j,i]
180: NewPixel[i,j]:=oldpixel[width-i,height-j]
← →
Fenik © (2003-11-16 11:05) [5]
procedure RotateBitmap(Bitmap: TBitmap; Angle: Integer; BackColor: TColor);
type TRGB = record
B, G, R: Byte;
end;
pRGB = ^TRGB;
pByteArray = ^TByteArray;
TByteArray = array[0..32767] of Byte;
var x, y, W, H, v1, v2: Integer;
Dest, Src: pRGB;
VertArray: array of pByteArray;
Bmp: TBitmap;
begin
Bitmap.PixelFormat := pf24Bit;
Bmp := TBitmap.Create;
try
Bmp.Assign(Bitmap);
W := Bitmap.Width - 1;
H := Bitmap.Height - 1;
case Angle of
90, 270: begin
Bitmap.Width := H + 1;
Bitmap.Height := W + 1;
SetLength(VertArray, H + 1);
v1 := 0;
v2 := 0;
if Angle = 90.0 then v1 := H
else v2 := W;
for y := 0 to H do VertArray[y] := Bmp.ScanLine[Abs(v1 - y)];
for x := 0 to W do begin
Dest := Bitmap.ScanLine[x];
for y := 0 to H do begin
v1 := Abs(v2 - x)*3;
with Dest^ do begin
B := VertArray[y, v1];
G := VertArray[y, v1+1];
R := VertArray[y, v1+2];
end;
Inc(Dest);
end;
end
end;
180: begin
for y := 0 to H do begin
Dest := Bitmap.ScanLine[y];
Src := Bmp.ScanLine[H - y];
Inc(Src, W);
for x := 0 to W do begin
Dest^ := Src^;
Dec(Src);
Inc(Dest);
end;
end;
end;
end;
finally
Bmp.Free;
end;
end;
← →
Fenik © (2003-11-16 12:04) [6]procedure RotateBitmap(Bitmap: TBitmap; Angle: Integer; BackColor: TColor);
Точнее так
procedure RotateBitmap(Bitmap: TBitmap; Angle: Integer);
То было от старой процедуры.
← →
Artur (2003-11-18 12:36) [7]А можно рабатать только с bmp форматом?
← →
Fenik © (2003-11-22 11:48) [8]Да.
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c