用VB如何实现图片旋转

2026-05-19 11:30:27
推荐回答(2个)
回答1:

Private Declare Function BitBlt Lib "gdi32" (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 Const srcopy = &HCC0020 Private Sub Form_Load() Picture2.Picture = LoadPicture(App.Path & "\a01.bmp") '导入图片 h = Picture1.Height w = Picture1.Width End Sub Private Sub Command1_Click() '旋转180度 Picture2.Picture = LoadPicture("") For j = 0 To h Step 1 For i = 0 To w Step 1 BitBlt Picture2.hDC, i, j, 1, 1, Picture1.hDC, w - i, h - j, srcopy Next i Next j End Sub Private Sub Command2_Click() '顺时针旋转90度 Picture2.Picture = LoadPicture("") For i = h To 0 Step -1 For j = 0 To w Step 1 BitBlt Picture2.hDC, i, j, 1, 1, Picture1.hDC, w - j, h - i, srcopy Next j Next i End Sub Private Sub Command3_Click() '逆时针旋转90度 Picture2.Picture = LoadPicture("") For j = w To 0 Step -1 For i = 0 To h Step 1 BitBlt Picture2.hDC, i, j, 1, 1, Picture1.hDC, j, i, srcopy Next i Next j End Sub Private Sub Command4_Click() '水平翻转 Picture2.Picture = LoadPicture("") For i = w To 0 Step -1 For j = 0 To h Step 1 BitBlt Picture2.hDC, i, j, 1, 1, Picture1.hDC, i, j, srcopy Next j Next i End Sub Private Sub Command5_Click() '垂直翻转 Picture2.Picture = LoadPicture("") For j = 0 To h Step 1 For i = 0 To w Step 1 BitBlt Picture2.hDC, i, j, 1, 1, Picture1.hDC, w - i, h - j, srcopy Next i Next j End Sub 不知道这样行不行 这是简单的固定角度的旋转的

满意请采纳

回答2:

你的意思是只要给出思路就行了,对吗?image不能对图像进行操作,所以得加载到其他的地方,比如说一个Pic控件旋转图片,这个跟高中学的矩阵有关,是用一个公式来计算原来的点经过旋转后的位置但是我已经忘记得差不多了,你查一下高中的那本矩阵的书吧