已知一个TJPEGImage对象,需要返回该对象旋转90度的后的TJPEGImage对象。
旋转那个方向无所谓。
在线等,解决问题就给分。
谢谢!

解决方案 »

  1.   

    参考http://www.delphibbs.com/keylife/iblog_show.asp?xid=21747
    不过速度有点慢,要改进一下
      

  2.   

    谢谢老之,我要的是在内存中旋转TJPEGImage对象 ,不是在界面上显示旋转效果。
      

  3.   

    ---- 把一个点绕原点旋转α角度后,新的坐标位置与原坐标位置的关系是:     X=xcosα-ysinα
        Y= xsinα+ycosα
    例如要把位图顺时针旋转90度,坐标变换公式为:X=-y Y=x示例代码如下:记得uses jpegprocedure TForm1.BitBtn1Click(Sender: TObject);
    var
      MyJpeg: TJpegImage;
      bmp,bmp2: Tbitmap;
      i,j : integer;
    begin
    //create
      bmp:=tbitmap.Create;
      MyJpeg:= TJpegImage.Create;
      bmp2 := TBitmap.Create;  myjpeg.LoadFromFile('d:\temp\test.jpg');
      bmp.Assign(myjpeg);//确定旋转后位图的大小
      bmp2.Height:=bmp.width;
      bmp2.Width:=bmp.height;
      //转换
      for i:=0 to bmp.Height do
        for j:=0 to bmp.Width do
          bmp2.canvas.Pixels[(-i+ bmp.Height),j]:=bmp.canvas.Pixels[j,i];
      myjpeg.Assign(bmp2);  //将bmp再专为jpg
      MyJpeg.SaveToFile('d:\temp\wudi.jpg'); // Save the JPEG to Disk
      //free
      bmp.Free;
      bmp2.Free;
      myjpeg.Free;
    end;
      

  4.   

    使用imageen或imagxpress控件自带有旋转角度的功能