Chuyển đổi từng ảnh JPG/PNG sang WebP bằng HTML/CSS và JavaScript

Việc chuyển đổi ảnh từ các định dạng như JPG, PNG sang WebP thông qua JavaScript thuần và HTML/CSS là một tác vụ phức tạp hơn, bởi vì việc này đòi hỏi phải xử lý hình ảnh ở cấp độ client-side. Tuy nhiên, có thể thực hiện việc này bằng cách sử dụng Canvas API trong JavaScript để chuyển đổi ảnh từ các định dạng như JPG/PNG sang WebP.

Dưới đây là cách bạn có thể thực hiện việc này mà không cần sử dụng backend (PHP) và chỉ sử dụng HTML, CSS, và JavaScript:

Giải pháp dùng Canvas API trong JavaScript

Canvas API cho phép vẽ hình ảnh và sau đó chuyển đổi nó sang các định dạng khác, bao gồm WebP, ngay trên trình duyệt.

Bước 1: Tạo form upload ảnh và nút để chuyển đổi

Tạo form

Xem kết quả: Chuyển ảnh JPG/PNG sang WebP

Giải thích

  1. HTML Form:
    • Tạo form với phần tử <input type="file"> để người dùng có thể chọn ảnh cần chuyển đổi (chấp nhận định dạng JPG và PNG).
    • Nút “Chuyển đổi sang WebP” sẽ gọi hàm JavaScript để xử lý khi được nhấn.
  2. JavaScript:
    • FileReader: Được sử dụng để đọc nội dung của file ảnh được người dùng upload. Sau khi đọc thành công, nội dung của ảnh sẽ được chuyển thành base64 thông qua reader.readAsDataURL().
    • Canvas API: Sau khi ảnh được load thành công, chúng ta vẽ ảnh lên một canvas bằng hàm drawImage(). Canvas hỗ trợ lưu lại ảnh dưới định dạng WebP thông qua phương thức toDataURL('image/webp', quality), trong đó quality là giá trị từ 0 đến 1 để xác định chất lượng của file WebP (ví dụ: 0.8 là chất lượng 80%).
    • Tải về ảnh WebP: Sau khi chuyển đổi, ảnh WebP sẽ được hiển thị và tạo một liên kết để người dùng tải về dưới dạng WebP.
  3. CSS: Chỉ có các kiểu đơn giản để căn chỉnh và hiển thị ảnh một cách trực quan.

Bước 2: Thử nghiệm

  • Người dùng chọn một file JPG hoặc PNG, nhấn nút “Chuyển đổi sang WebP”.
  • Ảnh được chuyển đổi và hiển thị dưới định dạng WebP ngay trên trang web.
  • Có liên kết để tải về ảnh WebP đã chuyển đổi.

Lưu ý

  • Canvas API chỉ hỗ trợ một số định dạng nhất định, bao gồm JPG, PNG, và WebP. Nó có thể không hoạt động nếu bạn cần chuyển đổi từ các định dạng ảnh phức tạp hơn như GIF hoặc BMP.
  • Trình duyệt phải hỗ trợ định dạng WebP, tuy nhiên, đa số các trình duyệt hiện đại như Chrome, Firefox và Edge đều đã hỗ trợ.

Tóm lại

Giải pháp này giúp bạn thực hiện việc chuyển đổi hình ảnh sang WebP mà không cần backend. Tuy nhiên, nếu bạn cần chuyển đổi nhiều ảnh hoặc cần xử lý ảnh phức tạp hơn, việc sử dụng giải pháp server-side sẽ linh hoạt hơn.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *