Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk mencapai saiz semula imej berkualiti tinggi di C#?
Mengoptimumkan saiz semula imej dalam C#
Mengubah saiz semula imej dalam aplikasi C# menuntut manipulasi yang teliti terhadap sifat imej. Semasa mengakses dimensi melalui, Size
, dan Width
mungkin, ia bukan pendekatan yang paling berkesan untuk saiz semula kualiti. Height
Teknik saiz semula unggul
Untuk penskalaan imej tinggi kesetiaan, fungsi C# berikut menyediakan penyelesaian yang mantap:
<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>
Faktor kritikal untuk saiz semula kualiti
WrapMode.TileFlipXY
menghapuskan artifak kelebihan ("Ghosting") dengan mencerminkan imej.
SetResolution
mengekalkan DPI asal, memastikan ketajaman imej yang konsisten tanpa mengira perubahan saiz.
InterpolationMode.HighQualityBicubic
menggunakan algoritma berkualiti tinggi untuk peralihan skala yang lebih lancar.
Kesimpulan
Pendekatan halus ini menjamin saiz semula imej berkualiti tinggi dalam C#. Pemeliharaan nisbah aspek boleh ditambah sebagai ciri berasingan jika diperlukan.Atas ialah kandungan terperinci Bagaimana untuk mencapai saiz semula imej berkualiti tinggi di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!