7-11-2026 14:49:16
private ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid) return codec;
}
return null;
}
public void ResizeJpg(string inputPath, string outputPath)
{
using (System.Drawing.Image srcImage = System.Drawing.Image.FromFile(inputPath))
{
// Tính toán chiều cao theo tỷ lệ của chiều rộng 1000px
int newWidth = 1200;
int newHeight = (int)((double)srcImage.Height / srcImage.Width * newWidth);
using (Bitmap newImage = new Bitmap(newWidth, newHeight))
{
using (Graphics graphics = Graphics.FromImage(newImage))
{
// Thiết lập chất lượng cao cho việc resize
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.SmoothingMode = SmoothingMode.HighQuality;
// Vẽ lại ảnh với kích thước mới
graphics.DrawImage(srcImage, 0, 0, newWidth, newHeight);
}
// Cấu hình chất lượng nén mã hóa JPEG (Quality: 90)
ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
Encoder myEncoder = Encoder.Quality;
EncoderParameters myEncoderParameters = new EncoderParameters(1);
myEncoderParameters.Param[0] = new EncoderParameter(myEncoder, 90L);
newImage.Save(outputPath, jpgEncoder, myEncoderParameters);
}
}
}