【发布时间】:2018-12-29 19:50:24
【问题描述】:
当您使用图形对象时,位图(源图像)是否不应该在某些时候发生变化?运行下面的代码,我得到 5 张与源代码完全相同的图像。 1.bmp、2.bmp、3.bmp、4.bmp 和 5.bmp 与“scaleCharacter”相同,除了 4 和 5 具有更高的压缩率(更小的文件大小)
Private Function DrawCharacterMenu() As Boolean
Try
'Background
Dim rect As Rectangle = New Rectangle(100, 100, 128, 128)
Graphics.FromImage(Render).FillRectangle(Brushes.Black, rect)
'Scale up sprite
Dim scaleCharacter As Bitmap = ActiveCharacter.img.Clone
Using grDest = Graphics.FromImage(scaleCharacter)
scaleCharacter.Save("1.bmp")
grDest.ScaleTransform(4.0F, 4.0F)
scaleCharacter.Save("2.bmp")
grDest.InterpolationMode = Drawing2D.InterpolationMode.NearestNeighbor
scaleCharacter.Save("3.bmp")
grDest.DrawImage(scaleCharacter, 0, 0)
scaleCharacter.Save("4.bmp")
End Using
scaleCharacter.Save("5.bmp")
'Draw scaled up sprite to rendering
Graphics.FromImage(Render).DrawImage(scaleCharacter, 100, 100)
Catch ex As Exception
addDebugMessage("Error: Mainmenu.DrawCharacterMenu: " & ex.Message)
Return False
End Try
Return True
End Function
我希望 1 与 'scaleCharacter' 相同
2 及以上要大 4 倍(32x32 到 128x128)
3 及以上以减少插值(看起来没有拉伸)
绘制到渲染上的完成的“scaleCharacter”也与原始图像相同...
【问题讨论】: