Maison >développement back-end >C++ >Comment redimensionner efficacement les images en C #?
Question:
System.Drawing.Image La classe fournit des propriétés de taille, de largeur et de hauteur GET (). Mais comment ajuster la taille de l'objet image lors de l'exécution en C #?Solution:
Utilisez la charge lourde avec la taille () pour créer une nouvelle image.
Cependant, les fonctions suivantes peuvent être utilisées pour obtenir une taille de réglage de meilleure qualité:
<code class="language-csharp">// objImage 是原始 Image Bitmap objBitmap = new Bitmap(objImage, new Size(227, 171));</code>
Autres détails:
<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); // 使用 Graphics 类绘制调整大小的图像 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>
Empêchez les pixels transparents à l'extérieur de la limite de la limite, ce qui affecte l'image qui est ajustée.
La maintenance DPI n'a rien à voir avec la taille de la physique, et la qualité peut être améliorée lors de la réduction de la taille de l'image ou de l'impression.wrapMode.SetWrapMode(WrapMode.TileFlipXY)
destImage.SetResolution
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!