hochwertiges Bild-Größenänderung in C#
Die Größe des Änderns von Bildern in C# beinhaltet häufig die Verwendung der System.Drawing.Image
-Klasses Size
, Width
und Height
public static Bitmap ResizeImage(Image image, int width, int height) { var destRect = new Rectangle(0, 0, width, height); var destImage = new Bitmap(width, height); destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution); using (var graphics = Graphics.FromImage(destImage)) { graphics.CompositingMode = CompositingMode.SourceCopy; graphics.CompositingQuality = CompositingQuality.HighQuality; graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; graphics.SmoothingMode = SmoothingMode.HighQuality; graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; using (var wrapMode = new ImageAttributes()) { wrapMode.SetWrapMode(WrapMode.TileFlipXY); graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode); } } return destImage; }
Diese Methode nutzt mehrere Schlüsselmerkmale, um eine qualitativ hochwertige Größenänderung sicherzustellen:
wrapMode.SetWrapMode(WrapMode.TileFlipXY)
: destImage.SetResolution(...)
: CompositingQuality
InterpolationMode
, SmoothingMode
, PixelOffsetMode
und HighQuality
sind alle auf HighQualityBicubic
oder Wichtige Überlegungen:
destImage.Save(...)
Diese Funktion verwaltet das Seitenverhältnis nicht von Natur aus. Sie müssen diesen Aspekt selbst bewältigen, um Verzerrungen zu verhindern. Denken Sie außerdem daran, dass das Speichern des geendelten Bildes (z. B. mit
Das obige ist der detaillierte Inhalt vonWie kann ich Bilder in C# ändern und gleichzeitig eine optimale Qualität beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!