Unscharfe Bilder bei ändern der Größe mit Image.GetThumbnailImage()



  • Hallo leute!

    ich hab versucht bei einem JPG bild die größe zu verändern, bei manchen JPGs ist das verkleinerte Bild scharf, aber bei den meißten ist es pixelig und unscharf!

    Die Größe verändere ich mit dieser Klasse, die ich im Internet gefunden habe:

    public class Thumbnail
    	{
    		public static bool AbortThumbnailGeneration()
    		{
    			return false;
    		}
    		public static Image GetThumbnail(string strFilename, double nScalePercentage)
    		{
    			Image img2Scale = Image.FromFile(strFilename);
    			Image imgThumb = GetThumbnail(img2Scale, nScalePercentage);
    			img2Scale.Dispose();  // cleanup
    			return imgThumb;
    		}
    		public static Image GetThumbnail(Image imgFullSize, double nScalePercentage)
    		{
    			if (nScalePercentage < 0.1 || nScalePercentage > 1000)
    				throw new ArgumentException("Scale percentage must be between 1 and 1000");
    
    			int nImageWidth = imgFullSize.Width;
    			int nImageHeight = imgFullSize.Height;
    			nImageWidth = (int)((double)nImageWidth * ((double)nScalePercentage/100.0));
    			nImageHeight = (int)((double)nImageHeight * ((double)nScalePercentage/100.0));
    			return GetThumbnail(imgFullSize, nImageWidth, nImageHeight);
    		}
    		public static Image GetThumbnail(Image imgFullSize, int nWidth, int nHeight)
    		{
    			Image.GetThumbnailImageAbort cb = new Image.GetThumbnailImageAbort(AbortThumbnailGeneration);
    			return imgFullSize.GetThumbnailImage(nWidth, nHeight, cb, IntPtr.Zero);
    		}
    	}
    

    Das Bild weise ich einer Picture Box zu: (image ist ein Image aus einer .jpg oder .bmp datei)

    PictureBox1.Image = Thumbnail.GetThumbnail(image,((double)picture.Width*100/image.Width));
    

    wenn ich das Programm ausführe, ist bei manchen Dateien das Bild föllig Unscharf!

    hat jemand eine idee??



  • Vielleicht hilft dir das:

    Resize Images Using GDI+
    Windows Forms FAQ - GDI+ Bitmaps & Images

    Hab auch schon in diversen Newsgroups gelesen, dass
    das funktioniert, selbst aber nicht ausprobiert.


Anmelden zum Antworten