把你的E-mail给我,我发给你一个例子

解决方案 »

  1.   

    to good_sun(你再打!再打我宇宙幻影可就飞出去了!!) :
      我也想知道怎么实现90度旋转,给我也发一个例子,谢谢。
      

  2.   

    OK
    我明天中午去邮箱收。你QQ多少啊。我的是10692916
      

  3.   

    Public Function turnthepic(pic1 As PictureBox, pic2 As PictureBox, i As Integer)
        Dim arc As Double '弧度
        Dim coutain_pic As Double
        Dim x1, y1, x2, y2, x3, y3, x4, y4 As Double
        pic2.Picture = pic1.Image
        arc = i * pi / 180 '弧度
        pic2.ScaleMode = vbPixels '"单位
        pic1.ScaleMode = vbPixels '"单位
        pic1.Picture = LoadPicture("")
        coutain_pic = pic1.Height
        pic1.Height = pic1.Width
        pic1.Width = coutain_pic
        For x1 = 0 To pic1.ScaleWidth
           x2 = x1 - pic1.ScaleWidth \ 2
           For y1 = 0 To pic1.ScaleHeight
              y2 = y1 - pic1.ScaleHeight \ 2
              x3 = x2 * Cos(-arc) + y2 * Sin(-arc)
              y3 = y2 * Cos(-arc) - x2 * Sin(-arc)
              x4 = x3 + pic2.ScaleWidth \ 2
              y4 = y3 + pic2.ScaleHeight \ 2
              If x4 > 0 And x4 < pic2.ScaleWidth - 1 And y4 > 0 And y4 < pic2.ScaleHeight - 1 Then
                  SetPixel pic1.hdc, x1, y1, GetPixel(pic2.hdc, x4, y4)
              End If
           Next y1
        Next x1
        pic1.ScaleMode = 1 '"单位
        pic2.ScaleMode = 1 '"单位    
    End Function
    pic1放要旋转的图片,pic2用来过度,i是要旋转的角度
      

  4.   

    用PaintPicture只能做 水平、垂直、180度 翻转!
    看看我写的图像处理程序:
    http://www.csdn.net/expert/topic/879/879364.xml?temp=.5424616
      

  5.   

    看看我写的快速(不是最快)任意角度旋转DIB算法:
    http://www.csdn.net/expert/topic/900/900205.xml?temp=.222973
    顺便提醒,只要实现90度旋转还可以用API函数PlgBlt:
    【函数】
    PlgBlt【操作系统】
    Win9X:No
    WinNT:Yes【声明】
    PlgBlt Lib "gdi32" Alias "PlgBlt" (ByVal hdcDest As Long, lpPoint As POINTAPI, ByVal hdcSrc As Long, ByVal nXSrc As Long, ByVal nYSrc As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hbmMask As Long, ByVal xMask As Long, ByVal yMask As Long) As Long【说明】  复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理 【返回值】  Long,非零表示成功,零表示失败。会设置GetLastError 【其它】  如果对源图象应用了旋转或剪切处理,这个函数的执行就会失败。可用GetDeviceCaps判断这个函数是否得到了一个特定设备场景的支持【参数表】
      hdcDest --------  Long,图象使用的目标设备场景  lpPoint --------  POINTAPI,POINTAPI结构数组中使用的第一个条目。第一个点对应于一个平行四边形左上角位置;第二个点代表右下角位置;第三个点代表左下角位置;第四个点是在前三个点的基础上导出的  hdcSrc ---------  Long,图象的源设备场景  nXSrc,nYSrc ----  Long,源图象左上角的x,y坐标,采用逻辑坐标系统表示  nWidth,nHeight -  Long,源图象大小,用逻辑坐标表示  hbmMask --------  Long,一个可选的句柄,指向一个单色掩模。如设定了这个参数,那么只有与掩模值1对应的二进制位才会传输到目的地  xMask,yMask ----  Long,掩模位图欲使用区域左上角的x,y坐标
      适用平台
      Windows NT
                                                           《Swin_API》
    --------------------------------------------------------------------
    Made by Thirdapple's Studio(http://3rdapple.51.net/)