//--------------------------------------------
//■手続き名 Kaiten
//■概要 画像を回転させる
//■引数
// Image 画像を回転させたいTImage
// Dosu 回転角度(90,180,270℃のみ)
//--------------------------------------------
procedure TForm1.Kaiten(Image : TImage ; Dosu :Integer );
Var
X,Y : Integer;
RGBColor : Integer;
Bmp : TBitmap;
begin
BMP :=TBitmap.Create;
Case Dosu of
90,270:begin
Bmp.Width := Image.Height ;
Bmp.Height:= Image.Width;
end;
180 : begin
Bmp.Width := Image.Width ;
Bmp.Height:= Image.Height;
end;
end;
for Y := 0 To Image.Height-1 do
begin
for X := 0 To Image.Width-1 do
begin
//指定された座標のピクセルのRGB (赤、 緑、
青) カラー値を取得します。
RGBColor := GetPixel(Image.Canvas.handle, X, Y) ;
//タネを植え付ける
Case Dosu of
90 : SetPixel(Bmp.Canvas.Handle, Image.Height - 1-Y, X, RGBColor)
;
180: SetPixel(Bmp.Canvas.Handle, Image.Width - 1 - X, Image.Height
- 1 - Y, RGBColor);
270: SetPixel(Bmp.Canvas.Handle, Y, Image.Width - 1 - X, RGBColor);
end;
end;
end;
Image.Picture.Bitmap.Assign(BMP);
BMP.Free;
end; |