Rumah >pembangunan bahagian belakang >C++ >Bagaimana cara mengubah saiz imej di C# untuk berkualiti tinggi?
C#High -Quality Image Zoom Method
Tidak mudah untuk menyesuaikan saiz imej semasa berjalan di C#. Walaupun mempunyai sifat ,
dan, penetapan atribut ini tidak menyesuaikan saiz imej. System.Drawing.Image
Size
Untuk menyesuaikan saiz imej, anda perlu menggunakan saiz baru untuk membuat objek Width
baru dan menarik imej asal ke objek. Anda boleh menggunakan kod berikut untuk dilaksanakan: Height
diperlukan. Cara mengendalikan contoh di bawah: Bitmap
<code class="language-csharp">Bitmap objBitmap = new Bitmap(objImage, new Size(227, 171));</code>Fungsi ini menyediakan zoom berkualiti tinggi dengan cara berikut:
Graphics
<code class="language-csharp">/// <summary> /// 将图像调整为指定宽度和高度。 /// </summary> /// <param name="image">要调整大小的图像。</param> /// <param name="width">要调整到的宽度。</param> /// <param name="height">要调整到的高度。</param> /// <returns>调整大小后的图像。</returns> 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>untuk mengelakkan bayang -bayang berat di sekitar sempadan imej.
Tetapkan imej sasaran
WrapMode
Gunakan tetapan yang tinggi -kualiti TileFlipXY
, Resolution
tetapan. Compositing
Pertimbangan lain termasuk nisbah membujur imej (dikhaskan untuk pembaca sebagai latihan), dan perangkap di mana imej zoom dalam imej apabila menyimpan imej. Interpolation
Atas ialah kandungan terperinci Bagaimana cara mengubah saiz imej di C# untuk berkualiti tinggi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!