368 Stimmen

Wie man die Größe eines Bildes ändert C#

として Size , Width y Height son Get() Eigenschaften von System.Drawing.Image ;
Wie kann ich die Größe eines Image-Objekts zur Laufzeit in C# ändern?

Im Moment erstelle ich gerade eine neue Image verwenden:

// objImage is the original Image
Bitmap objBitmap = new Bitmap(objImage, new Size(227, 171));

7voto

bhupendra singh Punkte 127
public string CreateThumbnail(int maxWidth, int maxHeight, string path)
{

    var image = System.Drawing.Image.FromFile(path);
    var ratioX = (double)maxWidth / image.Width;
    var ratioY = (double)maxHeight / image.Height;
    var ratio = Math.Min(ratioX, ratioY);
    var newWidth = (int)(image.Width * ratio);
    var newHeight = (int)(image.Height * ratio);
    var newImage = new Bitmap(newWidth, newHeight);
    Graphics thumbGraph = Graphics.FromImage(newImage);

    thumbGraph.CompositingQuality = CompositingQuality.HighQuality;
    thumbGraph.SmoothingMode = SmoothingMode.HighQuality;
    //thumbGraph.InterpolationMode = InterpolationMode.HighQualityBicubic;

    thumbGraph.DrawImage(image, 0, 0, newWidth, newHeight);
    image.Dispose();

    string fileRelativePath = "newsizeimages/" + maxWidth + Path.GetFileName(path);
    newImage.Save(Server.MapPath(fileRelativePath), newImage.RawFormat);
    return fileRelativePath;
}

Klicken Sie hier http://bhupendrasinghsaini.blogspot.in/2014/07/resize-image-in-c.html

3voto

Mateen Ulhaq Punkte 21111

Wenn Sie mit einer BitmapSource :

var resizedBitmap = new TransformedBitmap(
    bitmapSource,
    new ScaleTransform(scaleX, scaleY));

Wenn Sie die Qualität genauer kontrollieren wollen, sollten Sie dies zuerst tun:

RenderOptions.SetBitmapScalingMode(
    bitmapSource,
    BitmapScalingMode.HighQuality);

(Standard ist BitmapScalingMode.Linear was gleichbedeutend ist mit BitmapScalingMode.LowQuality .)

3voto

topolm Punkte 245

Ich verwende ImageProcessorCore, vor allem weil es mit .Net Core funktioniert.

Und es gibt noch mehr Optionen wie die Konvertierung von Typen, das Zuschneiden von Bildern und mehr

http://imageprocessor.org/imageprocessor/

1voto

JoshYates1980 Punkte 3337

Hinweis: Dies wird nicht mit ASP.Net Core funktionieren, da WebImage von System.Web abhängt, aber in früheren Versionen von ASP.Net habe ich dieses Snippet oft verwendet und es war nützlich.

String ThumbfullPath = Path.GetFileNameWithoutExtension(file.FileName) + "80x80.jpg";
var ThumbfullPath2 = Path.Combine(ThumbfullPath, fileThumb);
using (MemoryStream stream = new MemoryStream(System.IO.File.ReadAllBytes(fullPath)))
{
      var thumbnail = new WebImage(stream).Resize(80, 80);
      thumbnail.Save(ThumbfullPath2, "jpg");
}

1voto

Craig Curtis Punkte 843

Sie können die Accord.NET-Rahmenwerk für diese. Es bietet einige verschiedene Methoden zur Größenänderung:

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X