Home > Backend Development > C++ > How to Proportionally Resize Images While Maintaining Aspect Ratio with Maximum Width and Height Constraints?

How to Proportionally Resize Images While Maintaining Aspect Ratio with Maximum Width and Height Constraints?

DDD
Release: 2025-01-06 14:10:43
Original
671 people have browsed it

How to Proportionally Resize Images While Maintaining Aspect Ratio with Maximum Width and Height Constraints?

How to Resize an Image Proportionally with Maximum Height and Width Constraints

In many scenarios, it becomes necessary to resize images while maintaining their initial aspect ratio. This is especially important when dealing with constraints on the maximum height and width of the resized image. System.Drawing.Image in C# provides a convenient solution for performing this task.

Problem Statement:

Given an image with specific width and height, we need to resize it proportionally to meet maximum height and width constraints while retaining the aspect ratio. The resizing process should iteratively adjust the dimensions until both width and height are within the limits while maintaining the maximum possible size.

Solution:

The code below demonstrates how to resize an image proportionally within specified constraints:

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;
}
Copy after login

In this code, the ScaleImage method takes an image, a maximum width, and a maximum height as input. It calculates the minimum scaling factor that ensures neither the width nor the height exceeds the maximum specified while maintaining the original aspect ratio. The new image is then created with the scaled dimensions and rendered using Graphics.DrawImage.

To use this method, simply pass the original image, the maximum width, and the maximum height as arguments. The method returns the resized image, which can then be saved or used as needed.

The above is the detailed content of How to Proportionally Resize Images While Maintaining Aspect Ratio with Maximum Width and Height Constraints?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template