Cấp bậc tác giả:

DOTNET

Thay đổi kích thước một hình ảnh trong C#

Được viết bởi webmaster ngày 03/07/2020 lúc 08:38 PM
Trong bài viết này tôi sẽ hướng dẫn các bạn cách để thay đổi kích thước một hình ảnh theo kích thước mong muốn.
  • 0
  • 6769

Thay đổi kích thước một hình ảnh trong C#

Trong bài viết này tôi sẽ hướng dẫn các bạn cách để thay đổi kích thước một hình ảnh theo kích thước mong muốn.

Để thay đổi kích thước hình ảnh trong ASP.Net/C#, chúng tôi sẽ sử dụng quy trình sau:

1. Nhận một hình ảnh mà bạn muốn thay đổi kích thước:

string path = Server.MapPath("~/Images");
System.Drawing.Image img = System.Drawing.Image.FromFile(string.Concat(path,"/3904.jpg"));
2. 
Bitmap b = new Bitmap(img);
Đối tượng Bitmap được khai báo để lấy hình ảnh trong dữ liệu kích thước pixel.

3. Để thay đổi kích thước hình ảnh thành định dạng mong muốn, tôi sử dụng phương pháp dưới đây:

private static System.Drawing.Image resizeImage(System.Drawing.Image imgToResize, Size size)

{

    // Lấy chiều rộng hiện tại của hình ảnh

    int sourceWidth = imgToResize.Width;

    // Lấy chiều cao hiện tại của hình ảnh

    int sourceHeight = imgToResize.Height;

 

    float nPercent = 0;

    float nPercentW = 0;

    float nPercentH = 0;

    // Tính chiều rộng với kích thước mong muốn mới

    nPercentW = ((float)size.Width / (float)sourceWidth);

    // Tính chiều cao với kích thước mong muốn mới

    nPercentH = ((float)size.Height / (float)sourceHeight);       

 

    if (nPercentH < nPercentW)

        nPercent = nPercentH;

    else

     nPercent = nPercentW;

     // Chiều rộng mới

     int destWidth = (int)(sourceWidth * nPercent);

     // Chiều cao mới

     int destHeight = (int)(sourceHeight * nPercent);

 

     Bitmap b = new Bitmap(destWidth, destHeight);

     Graphics g = Graphics.FromImage((System.Drawing.Image)b);

     g.InterpolationMode = InterpolationMode.HighQualityBicubic;

     // Vẽ hình ảnh với chiều rộng và chiều cao mới

     g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);

     g.Dispose();

     return (System.Drawing.Image)b;

}
Trong phương pháp trên, chúng ta có được hình ảnh bitmap và hình ảnh mới với chiều rộng và chiều cao mới. (Hình ảnh sẽ được vẽ theo tỷ lệ khung hình đã chỉ định.)

4. Truyền hình ảnh bitmap trong phương pháp trên với chiều rộng và chiều cao mong muốn:

System.Drawing.Image i = resizeImage(b, new Size(100, 100));

Phương pháp được đưa ra ở trên sẽ trả về hình ảnh với chiều rộng và chiều cao mới.

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML