Làm thế nào để lấy được tỷ lệ hình ảnh của một hình ảnh gốc?

Trong bài viết này mình sẽ chia sẻ cách lấy được tỷ lệ hình ảnh của một ảnh gốc nhé. Giả sử mình có một ảnh gốc có kích thước ban đầu là Width: 400px; Height: 300px; Tuy nhiên, nếu mình muốn style lại hình ảnh với kích thước với Width: 200px; chiều cao giữ

Trong bài viết này mình sẽ chia sẻ cách lấy được tỷ lệ hình ảnh của một ảnh gốc nhé.
Giả sử mình có một ảnh gốc có kích thước ban đầu là Width: 400px; Height: 300px;

Tuy nhiên, nếu mình muốn style lại hình ảnh với kích thước với Width: 200px; chiều cao giữ nguyên Height: 300px; chúng ta sẽ được một bức ảnh như bên dưới.

img{width: 200px;height: 300px;}

Chúng ta thấy rằng hình ảnh đang được thu nhỏ để vừa với vùng chứa 200×300 pixel (tỷ lệ khung hình ban đầu bị phá hủy).
Tuy nhiên, chúng ta có thể xác định được tỷ lệ khung hình của ảnh gốc và có thể style lại kích thước với một kích thước mới mà không làm vỡ hình ảnh với tỷ lệ ban đâu.
Ví dụ:

- Chiều rộng ảnh gốc ban đầu là: Width (w0) = 400px
- Chiều cao ảnh gốc ban đầu là: Height (h0) = 300px
- Chiều rộng người dùng muốn thay đổi: Width (w1) = 200px

Từ 3 tham số trên, chúng ta sẽ có tỷ lệ khung hình của ảnh gốc ban đầu là:
Tỷ lệ ảnh gốc: 400/300 = 1.3333

Vì người dùng muốn thay đổi lại chiều rộng 200px so với ảnh gốc, nên chúng ta phải xác định lại chính xác chiều cao so với chiều rộng 200px, để cho nó phù hợp với tỉ lệ ảnh gốc ban đầu.
Mục đích để hình ảnh hiển thị với kích thước mới không bị vỡ hình ảnh.

Chiều cao mới Height (h1) = 200/1.3333 = 150px;

Cuối cùng chúng ta có tỉ lệ ảnh chuẩn mới như dưới:
Width (w1) = 200 px
Height (h1) = 150px;

Bây giờ chúng ta style lại với Width: 200px, Height: 150px:

img{width: 200px;height: 150px;}

Chúng ta sẽ thấy, hình ảnh sau khi thay đổi sẽ không bị vỡ và giữ đúng tỷ lệ với kích thước ảnh gốc ban đầu:

- Tiếp tục, giả sử mình muốn thay đổi chiều cao của bức ảnh là Height (h1) = 500px
- Chúng ta có thể tính được chiều rộng Width (w1) bằng công thức bên dưới nhé:

- Chiều rộng ảnh gốc ban đầu là: Width (w0) = 400px
- Chiều cao ảnh gốc ban đầu là: Height (h0) = 300px
- Chiều cao người dùng muốn thay đổi: Height (h1) = 500px

 Tỷ lệ ảnh gốc: 300/400 = 0.75
 Chiều rộng Width (w1)= 500/0.75 = 667px;
 
Cuối cùng chúng ta có tỉ lệ ảnh chuẩn mới như dưới:
Height (h1) = 500px;
Width (w1) = 667px px

Bây giờ chúng ta style lại với Height: 500px, Width: 667px:

img{height: 500px;width: 667px;}

Link tham khảo: https://math.stackexchange.com/questions/180804/how-to-get-the-aspect-ratio-of-an-image

Hy vọng bài viết hữu ích cho các bạn!

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ