Maison >développement back-end >C++ >Comment réaliser un redimensionnement d'images de haute qualité en C #?
Optimisation de la redimensionnement de l'image en C #
Redimensionner efficacement les images dans les applications C # exige une manipulation minutieuse des propriétés de l'image. Tout en accédant aux dimensions via Size
, Width
et Height
est possible, ce n'est pas l'approche la plus efficace pour le redimensionnement de la qualité.
Techniques de redimensionnement supérieures
Pour la mise à l'échelle de l'image haute fidélité, la fonction C # suivante fournit une solution robuste:
<code class="language-csharp">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; }</code>
Facteurs critiques pour la redimensionnement de la qualité
WrapMode.TileFlipXY
: élimine les artefacts de bord ("fantômes") en reflétant l'image. SetResolution
: maintient le DPI d'origine, garantissant une netteté cohérente d'image, quels que soient les changements de taille. InterpolationMode.HighQualityBicubic
: utilise un algorithme de haute qualité pour les transitions de mise à l'échelle plus lisses. Conclusion
Cette approche raffinée garantit le redimensionnement d'images de haute qualité en C #. La préservation du rapport d'aspect peut être ajoutée en tant que fonctionnalité distincte si nécessaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!