(新手提问)怎么使某一picturebox内图像实现任意给定角度的旋转

(新手提问)如何使某一picturebox内图像实现任意给定角度的旋转
想使某个picturebox内已加载的图像实现任意给定角度的旋转,旋转后的图像仍然显示在原有picturebox内,也就是说相当于用旋转后的图像覆盖旋转前的图像,现在旋转的算法已有,关键就是如何实现覆盖了,望各位大大给小弟些指点~

------解决方案--------------------
首先,你的容器要随着图像的旋转改变而改变大小,然后就是如果你一定要先在picturebox中显示图像,则第一次调用旋转后调用picture1.picture=LoadPicture(),然后每次旋转后在bitblt到容器上。
------解决方案--------------------
再次路过~~

清空 PictureBox 内容:
Picture1.Picture = LoadPicture( " ")

针对楼主在楼上的发言,建议还是去多看看有关 Windows 图像这部分的内容。主要是明确 DDB 和 DIB 的概念。其实用 DDB 完全可以解决,“把图像读入内存”是 DIB 或 DIB Section 的概念。

还是简略说一下操作步骤吧:
先建立缓存 DC,再建立一个 BMP 对象,其尺寸根据原来 PictureBox 里图片的尺寸和旋转角度计算得出,把这个 BMP 选入 DC;
用 BitBlt 把 PictureBox 场景里的位图拷贝到缓存 DC;
清空 PictureBox;
用 StretchBlt 直接把缓存 DC 里的位图做镜像旋转到PictureBox 即可。

涉及到的 API 函数:
Private Declare Function CreateCompatibleBitmap Lib "gdi32 " Alias "CreateCompatibleBitmap " (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32 " Alias "CreateCompatibleDC " (ByVal hdc As Long) As Long
Private Declare Function SelectObject Lib "gdi32 " Alias "SelectObject " (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteObject Lib "gdi32 " Alias "DeleteObject " (ByVal hObject As Long) As Long
Private Declare Function BitBlt Lib "gdi32 " Alias "BitBlt " (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Function StretchBlt Lib "gdi32 " Alias "StretchBlt " (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Declare Function SetStretchBltMode Lib "gdi32 " Alias "SetStretchBltMode " (ByVal hdc As Long, ByVal nStretchMode As Long) As Long
Private Declare Function DeleteDC Lib "gdi32 " Alias "DeleteDC " (ByVal hdc As Long) As Long