Tôi đang cố gắng thay đổi kích thước hình ảnh trong khi vẫn giữ nguyên tỷ lệ khung hình từ hình ảnh gốc để hình ảnh mới trông không bị bóp méo.
ví dụ:
Chuyển đổi hình ảnh 150 * 100 thành hình ảnh 150 * 150.
Chiều cao thêm 50 pixel cần được đệm bằng màu nền trắng.
Đây là mã hiện tại tôi đang sử dụng.
Nó hoạt động tốt để thay đổi kích thước nhưng thay đổi tỷ lệ khung hình của hình ảnh gốc sẽ làm hỏng hình ảnh mới.
private void resizeImage(string path, string originalFilename,
int width, int height)
{
Image image = Image.FromFile(path + originalFilename);
System.Drawing.Image thumbnail = new Bitmap(width, height);
System.Drawing.Graphics graphic =
System.Drawing.Graphics.FromImage(thumbnail);
graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphic.SmoothingMode = SmoothingMode.HighQuality;
graphic.PixelOffsetMode = PixelOffsetMode.HighQuality;
graphic.CompositingQuality = CompositingQuality.HighQuality;
graphic.DrawImage(image, 0, 0, width, height);
System.Drawing.Imaging.ImageCodecInfo[] info =
ImageCodecInfo.GetImageEncoders();
EncoderParameters encoderParameters;
encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality,
100L);
thumbnail.Save(path + width + "." + originalFilename, info[1],
encoderParameters);
}
CHỈNH SỬA: Tôi muốn hình ảnh được đệm thay vì bị cắt