[VB] PictureBox SizeMode - Hilfe

10/13/2013 13:21 nicinic0#1
Hallo epvp,

ich habe ein Programm in dem mir ein Minecraft Skin (64x32) in einer PictureBox angezeigt wird. Da man das Bild nur schwer erkennen konnte habe ich den SizeMode der PB auf StretchImage gesetzt. Das Resultat:
[Only registered and activated users can see links. Click Here To Register...]

Das Bild ist unscharf, das gleiche beim SizeMode Zoom. Was muss ich tun, damit das Bild so aussieht?
[Only registered and activated users can see links. Click Here To Register...]

Bei den Bildern handelt es sich um das gleiche Bild, natürlich auch in der gleichen Auflösung (64x32).

Danke schonmal im Voraus! :)
10/16/2013 13:02 Graphicscore#2
Also bei mir wird es nicht unscharf wenn ich Sizemode = Sizemode.StretchImage habe
10/16/2013 22:40 berkay2578#3
VB
Code:
Private Function resizeImage(ByVal img As Image, ByVal size As Size) As Image
	Dim sourceWidth As Integer = img.Width
	Dim sourceHeight As Integer = img.Height

	Dim nPercent As Single = 0
	Dim nPercentW As Single = 0
	Dim nPercentH As Single = 0

	nPercentW = CSng(size.Width / sourceWidth)
	nPercentH = CSng(size.Height / sourceHeight)

	If nPercentH < nPercentW Then
		nPercent = nPercentH
	Else
		nPercent = nPercentW
	End If

	Dim destWidth As Integer = CInt(sourceWidth * nPercent)
	Dim destHeight As Integer = CInt(sourceHeight * nPercent)

	Dim b As Bitmap = New Bitmap(destWidth, destHeight)
	Dim g As Graphics = Graphics.FromImage(b)
	g.InterpolationMode = Drawing2D.InterpolationMode.NearestNeighbor

	g.DrawImage(img, 0, 0, destWidth, destHeight)
	g.Dispose()

	Return b
End Function

'Dim resizedImage as Image = resizeImage(smallImage, new Size(width, height))
C#
Code:
private static Image resizeImage(Image img, Size size)
{
	int sourceWidth = img.Width;
	int sourceHeight = img.Height;

	float nPercent = 0;
	float nPercentW = 0;
	float nPercentH = 0;

	nPercentW = ((float)size.Width / (float)sourceWidth);
	nPercentH = ((float)size.Height / (float)sourceHeight);

	if (nPercentH < nPercentW)
		nPercent = nPercentH;
	else
		nPercent = nPercentW;

	int destWidth = (int)(sourceWidth * nPercent);
	int destHeight = (int)(sourceHeight * nPercent);

	Bitmap b = new Bitmap(destWidth, destHeight);
	Graphics g = Graphics.FromImage((Image)b);
	g.InterpolationMode = InterpolationMode.NearestNeighbor;

	g.DrawImage(img, 0, 0, destWidth, destHeight);
	g.Dispose();

	return (Image)b;
}

// Image resizedImage = resizeImage(smallImage, new Size(width, height));