图片旋转90度

wzckr 2009-05-09 10:33:58
我写的代码是:
dim d_Image As Image
d_Image = Bitmap.FromFile("C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\aaa.JPG")
Dim NewImage As Bitmap = New Bitmap(d_Image.Height, d_Image.Width)
Dim G As Graphics
G = Graphics.FromImage(NewImage)
G.TranslateTransform(d_Image.Height, 0)
G.RotateTransform(90)
G.DrawImage(d_Image, 0, 0, d_Image.Height, d_Image.Width)

这样得到的图在NewImage,可是现在有个问题,就是在原来的图片d_Image在旋转的时候,因为宽度比高度要大,所以在转成90度后,宽度就被截成了和高度一样的,请问有什么办法解决,或有别的方法实现这个旋转

...全文
115 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bw555 2009-05-09
  • 打赏
  • 举报
回复
转完再缩放下就好了

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
Dim d_Image As Image
d_Image = Bitmap.FromFile("C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Sunset.jpg")
Dim NewImage As New Bitmap(d_Image.Width, d_Image.Height)
Dim G As Graphics
G = Graphics.FromImage(NewImage)
G.TranslateTransform(d_Image.Width, 0)
G.RotateTransform(90)
G.DrawImage(d_Image, 0, 0, d_Image.Height, d_Image.Width)
Dim NewImage1 As New Bitmap(d_Image.Height, d_Image.Width)
G = Graphics.FromImage(NewImage1)
G.DrawImage(NewImage, 0, 0, d_Image.Height, d_Image.Width)
e.Graphics.DrawImage(NewImage1, 0, 0)
End Sub
bw555 2009-05-09
  • 打赏
  • 举报
回复
    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
Dim d_Image As Image
d_Image = Bitmap.FromFile("C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Sunset.jpg")
Dim NewImage As New Bitmap(d_Image.Width, d_Image.Height)
Dim G As Graphics
G = Graphics.FromImage(NewImage)
G.DrawRectangle(Pens.Black, 0, 0, NewImage.Width, NewImage.Height)
G.TranslateTransform(d_Image.Width, 0)
G.RotateTransform(90)
G.DrawImage(d_Image, 0, 0, d_Image.Height, d_Image.Width)
e.Graphics.DrawImage(NewImage, 0, 0, 300, 400)
End Sub

[Quote=引用楼主 wzckr 的帖子:]
我写的代码是:
dim d_Image As Image
d_Image = Bitmap.FromFile("C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\aaa.JPG")
Dim NewImage As Bitmap = New Bitmap(d_Image.Height, d_Image.Width)
Dim G As Graphics
G = Graphics.FromImage(NewImage)
G.TranslateTransform(d_Image.Height, 0)
G.RotateTransform(90)
G.DrawImage(d_Image, 0, 0, d_Image.Height, d_Image.Width)


[/Quote]
zgke 2009-05-09
  • 打赏
  • 举报
回复
G.DrawImage(d_Image, 0, 0, d_Image.Height, d_Image.Width) ;这不对把.


你画旋转了90 绘制的时候还是绘制正的

G.DrawImage(d_Image, 0, 0, d_Image.Width, d_Image.Height) ;

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧