![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поворот изображения
Игорь Г. © (2003-08-08 00:21:00)Подскажите пожалуйста, как перевернуть изображение в компоненте TImage на 90 градусов? Или как перевернуть TBitmap или jpeg?
Fenik (2003-11-23 13:31:00) [1]>Fenik © (08.08.03 11:23)
Что это за глюк форума?
Fenik (2003-08-08 11:23:00) [2]procedure Rotate90(Bitmap: TBitmap);
var x, y, W, H: Integer;
Dest: pRGBTriple;
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;
Bitmap.Width := H + 1;
Bitmap.Height := W + 1;
SetLength(VertArray, H + 1);
for y := 0 to H do VertArray[y] := Bmp.ScanLine[H-y];
for x := 0 to W do begin
Dest := Bitmap.ScanLine[x];
for y := 0 to H do begin
with Dest^ do begin
rgbtBlue := VertArray[y, x*3];
rgbtGreen := VertArray[y, x*3+1];
rgbtRed := VertArray[y, x*3+2];
end;
Inc(Dest);
end;
end
finally
Bmp.Free;
end;
end;
Zev (2003-08-08 07:43:00) [3]http://www.bcbdev.ru/cbuilder/articles/bmprotation/bmprotation.htm
MBo (2003-08-08 06:45:00) [4]С помощью ScanLine или
http://www.delphimaster.ru/articles/pixels/index.html