图片旋转(100分)

  • 主题发起人 主题发起人 hds6400
  • 开始时间 开始时间
H

hds6400

Unregistered / Unconfirmed
GUEST, unregistred user!
如何将图像旋转(90、180)?
 
看你来的时间也不短了,怎么也不动手搜搜?

http://www.delphibbs.com/delphibbs/dispq.asp?lid=530385

90/180 不过就是个坐标变换而己。
 
Image1.Picture.Bitmap.Canvas.CopyRect(rect(0,0,Image1.Picture.Bitmap.Width,Image1.Picture.Bitmap.Height),
Image1.Picture.Bitmap.Canvas,
rect(Image1.Picture.Bitmap.Width,0,0,Image1.Picture.Bitmap.Height));

自己改一下
 
别人的,你看看。
.编写"旋转90度"按钮的OnClick事件。

procedureTForm1.Button2Click(Sender:TObject);
var
i,j:integer;
begin
//确定旋转后位图的大小
image2.Picture.Bitmap.Height:=image1.picture.width;
image2.Picture.Bitmap.Width:=image1.picture.height;
for i:=0 to image1.Heightdo
for j:=0 to image1.Widthdo
image2.canvas.Pixels[(-i+image1.Height),
j]:=image1.canvas.Pixels[j,i];
end;


编写"旋转180度"按钮的OnClick事件。

procedureTForm1.Button3Click(Sender:TObject);
var
i,j:integer;
begin
//确定旋转后位图的大小
image3.Picture.Bitmap.Height:=image1.picture.Height;
image3.Picture.Bitmap.Width:=image1.picture.Width;
for i:=0 to image1.Heightdo
for j:=0 to image1.Widthdo
image3.canvas.Pixels[(image1.Width
-j),(image1.Height-i)]:=image1.canvas.Pixels[j,i];
end;
 
谢谢大家的回答,但是我现在的图片是jpg形式的
 
转成 BMP 再处理喽,比如:

uses
jpg;

var
jpg: TJpegImage;
bmp: TBitmap;
begin
...
bmp := TBitmap.Create;
bmp.Assign(jpg);
< 旋转处理 >
jpg.Assign(bmp);
bmp.Free;
...
end;
 
多人接受答案了。
 
后退
顶部