Hướng dẫn html to image js - html sang js hình ảnh
Tôi đã đọc câu trả lời của Sjeiti mà tôi thấy rất thú vị, nơi bạn chỉ với một vài dòng JavaScript đơn giản có thể hiển thị HTML trong một hình ảnh. Tất nhiên chúng tôi phải nhận thức được những hạn chế của phương pháp này (vui lòng đọc về một số trong số chúng trong câu trả lời của anh ấy). Ở đây tôi đã thực hiện mã của anh ấy một vài bước nữa. Một hình ảnh SVG có độ phân giải vô hạn nguyên tắc, vì nó là đồ họa vector. Nhưng bạn có thể nhận thấy rằng hình ảnh mà mã của Sjeiti được tạo ra không có độ phân giải cao. Điều này có thể được sửa bằng cách chia tỷ lệ hình ảnh SVG trước khi chuyển nó sang phần tử canvas, mà tôi đã thực hiện trong một trong hai mã ví dụ (Runnable) mà tôi đưa ra dưới đây. Một điều khác tôi đã thực hiện trong mã đó là bước cuối cùng, cụ thể là lưu nó dưới dạng tệp PNG. Chỉ để hoàn thành toàn bộ. Vì vậy, tôi đưa ra hai đoạn mã có thể chạy được: Cái đầu tiên cho thấy độ phân giải vô hạn của SVG. Chạy nó và phóng to với trình duyệt của bạn để thấy rằng độ phân giải không giảm khi bạn phóng to. Trong đoạn trích mà bạn có thể chạy, tôi đã sử dụng backticks để chỉ định một chuỗi mẫu được gọi là ngắt dòng để bạn có thể thấy rõ hơn HTML được hiển thị. Nhưng nếu không, nếu HTML đó nằm trong một dòng, thì mã sẽ rất ngắn, như thế này.
Đây là một đoạn trích có thể chạy được.
Phóng to và kiểm tra độ phân giải vô hạn của SVG. Runnable tiếp theo, bên dưới, là một trong đó thực hiện hai bước bổ sung mà tôi đã đề cập ở trên, cụ thể là cải thiện độ phân giải bằng cách mở rộng SVG, sau đó tiết kiệm như một hình ảnh PNG.
Hãy thử với các tỷ lệ khác nhau. Ví dụ, nếu bạn đặt tỷ lệ thành 10, thì bạn sẽ nhận được độ phân giải rất tốt trong hình ảnh PNG được tạo. Và tôi đã thêm một tính năng bổ sung thêm: một hộp kiểm để bạn có thể làm cho hình ảnh PNG-trong suốt nếu bạn muốn.And I added a little extra feature: a checkbox so that you can make the PNG-image transparent if you like. Notice:Save-Button không hoạt động trong Chrome và Edge khi tập lệnh này được chạy ở đây tại Stack Overflow. Lý do là https://www.chromestatus.com/feature/5706745674465280. Do đó, tôi cũng đã đặt đoạn trích này vào https://jsfiddle.net/7gozdq5v/ nơi nó hoạt động cho các trình duyệt đó. |