Mengubah Saiz Imej Secara Berkadaran dengan Kekangan MaxHeight dan MaxWidth
Mengekalkan nisbah bidang sambil mengubah saiz imej dalam kekangan yang ditentukan adalah keperluan biasa dalam pelbagai aplikasi. Menggunakan System.Drawing.Image, anda boleh mengubah saiz imej secara berkadar sambil memastikan ia kekal dalam had lebar dan ketinggian maksimum.
Masalah:
Jika lebar atau ketinggian imej melebihi maksimum yang ditentukan, ia perlu diubah saiz secara berkadar. Walau bagaimanapun, selepas mengubah saiz, adalah penting untuk memastikan bahawa lebar atau tinggi tidak melebihi had maksimum. Imej hendaklah diubah saiznya sehingga ia muat dalam dimensi maksimum sambil mengekalkan nisbah aspek asal.
Penyelesaian:
Kod C# yang disediakan menunjukkan cara untuk mencapai ini:
public static void Test() { using (var image = Image.FromFile(@"c:\logo.png")) using (var newImage = ScaleImage(image, 300, 400)) { newImage.Save(@"c:\test.png", ImageFormat.Png); } } public static Image ScaleImage(Image image, int maxWidth, int maxHeight) { var ratioX = (double)maxWidth / image.Width; var ratioY = (double)maxHeight / image.Height; var ratio = Math.Min(ratioX, ratioY); var newWidth = (int)(image.Width * ratio); var newHeight = (int)(image.Height * ratio); var newImage = new Bitmap(newWidth, newHeight); using (var graphics = Graphics.FromImage(newImage)) graphics.DrawImage(image, 0, 0, newWidth, newHeight); return newImage; }
Penjelasan:
Dengan menggunakan teknik ini, anda boleh mengubah saiz imej sambil mengekalkan nisbah bidangnya, memastikan ia muat dalam dimensi maksimum yang ditentukan.
Atas ialah kandungan terperinci Bagaimana untuk Mengubah Saiz Imej secara Proporsional dengan Kekangan MaxHeight dan MaxWidth dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!