Hallo,
Ich möchte was C# Code in VB konvertieren und habe es mit Telerik Code Converter versucht.
Leider kann Telerik dies hier byte* row = (byte*)bmd.Scan0; nicht richtig übersetzen.
Kann jemand von euch mir hier helfen? Danke.
Den Code zu übersetzen
class ThumbElement
{
static public int m_ThumbSize=200;
public Bitmap m_bmpOriginal = null;
public Bitmap m_bmpMain= null;
public Bitmap m_bmpShadow = null;
public double m_dAngleOriginal = 0;
public double m_dAngleActual = 0;
public double m_dDistanceFromScreen = 0;
public Rectangle m_Rect = new Rectangle();
public Rectangle m_RectShadow = new Rectangle();
public ThumbElement(String strFileName)
{
m_bmpOriginal = new Bitmap(strFileName);
int nWidth=m_ThumbSize;
int nHeight=m_bmpOriginal.Height*m_ThumbSize/m_bmpOriginal.Width;
if (nHeight>m_ThumbSize)
{
nHeight=m_ThumbSize;
nWidth=m_bmpOriginal.Width*m_ThumbSize/m_bmpOriginal.Height;
}
m_bmpMain=new Bitmap(nWidth,nHeight);
Graphics g=Graphics.FromImage(m_bmpMain);
g.DrawImage(m_bmpOriginal, 0, 0, nWidth, nHeight);
m_bmpShadow = new Bitmap(m_bmpMain);
unsafe
{
m_bmpShadow.RotateFlip(RotateFlipType.RotateNoneFlipY);
System.Drawing.Imaging.BitmapData bmd = m_bmpShadow.LockBits( _
new Rectangle(0, 0, m_bmpShadow.Width, m_bmpShadow.Height),
System.Drawing.Imaging.ImageLockMode.ReadWrite,
m_bmpShadow.PixelFormat);
int PixelSize = 4;
byte* row = (byte*)bmd.Scan0;
for (int y = 0; y < bmd.Height; y++)
{
byte trasp = (byte)(100 * ((m_bmpMain.Height - y)) / _
m_bmpMain.Height);
int xx = 3;
for (int x = 0; x < bmd.Width; x++)
{
row[xx] = trasp;
xx += PixelSize;
}
row += bmd.Stride;
}
m_bmpShadow.UnlockBits(bmd);
}
}
} Telerik hat den Code so übersetzt
Public Sub New(strFileName As [String])
m_bmpOriginal = New Bitmap(strFileName)
Dim nWidth As Integer = m_ThumbSize
Dim nHeight As Integer = m_bmpOriginal.Height * m_ThumbSize / _
m_bmpOriginal.Width
If nHeight > m_ThumbSize Then
nHeight = m_ThumbSize
nWidth = m_bmpOriginal.Width * m_ThumbSize / _
m_bmpOriginal.Height
End If
m_bmpMain = New Bitmap(nWidth, nHeight)
Dim g As Graphics = Graphics.FromImage(m_bmpMain)
g.DrawImage(m_bmpOriginal, 0, 0, nWidth, nHeight)
m_bmpShadow = New Bitmap(m_bmpMain)
m_bmpShadow.RotateFlip(RotateFlipType.RotateNoneFlipY)
Dim bmd As System.Drawing.Imaging.BitmapData = m_bmpShadow.LockBits( _
New Rectangle(0, 0, m_bmpShadow.Width, m_bmpShadow.Height), _
System.Drawing.Imaging.ImageLockMode.ReadWrite, _
m_bmpShadow.PixelFormat)
Dim PixelSize As Integer = 4
Dim row As Pointer(Of Byte) = CType(bmd.Scan0, Pointer(Of Byte))
For y As Integer = 0 To bmd.Height - 1
Dim trasp As Byte = CByte(100 * ((m_bmpMain.Height - y)) / _
m_bmpMain.Height)
Dim xx As Integer = 3
For x As Integer = 0 To bmd.Width - 1
row(xx) = trasp
xx += PixelSize
Next
row += bmd.Stride
Next
m_bmpShadow.UnlockBits(bmd)
End Sub 0 |