- vừa được xem lúc

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

0 0 5

Người đăng: Gấu con

Theo Viblo Asia

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 200x300 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!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Một số quy tắc và name class phổ biến cho Front-end Dev

Trong CSS, các thủ tục setting đóng vai trò to lớn, nhưng bên cạnh đó, cách đặt tên theo các từ đơn sao cho phù hợp cũng quan trọng không kém . Đặt tên rất khó, nhưng cũng rất quan trọng .

0 0 79

- vừa được xem lúc

2021, chúng ta cần tối ưu hóa việc tải hình ảnh trên web như nào?

Rất chào các bạn,. Như các bạn đã biết, trong kỉ nguyên công nghệ, song song với sự sinh ra dày đặc của các trang web mới cũng là sự biến mất của những trang web "lạc hậu" hay hoạt động kém hiệu quả.

0 0 43

- vừa được xem lúc

Tài nguyên nghiên cứu sâu Html

1. Articles and standards. . HTML 5.

0 0 183

- vừa được xem lúc

Tìm hiểu về Event.preventDefault(), Event.stopPropagation() và Event.stopImmediatePropagation()

Chúng ta thương thấy 3 method này và có thể dẫn dến bối rối và nhầm lẫn giữa chúng:. . Event.preventDefault().

0 0 36

- vừa được xem lúc

Vanilla JS Project: Tính tuổi

1. Yêu cầu.

0 0 50

- vừa được xem lúc

Thủ thuật nhỏ để căn chỉnh image với object-fit

Chào các bạn,. Có lẽ trong hành trình code của các bạn thì không ít lần gặp vấn đề méo ảnh do fix cứng cả width, height của ảnh nhỉ? Hoặc kể cả khi bạn set value cho 1 thuộc tính weigth hoặc height còn thuộc tính còn lại để auto thì nhiều lúc ảnh cũng không được hiển thị toàn vẹn cho lắm.

0 0 34