Thư viện Qt là một thư viện GUI tuyệt vời cho các lập trình viên C++ được phát triển bởi Nokia và hiện là một dự án mã nguồn mở. Thông thường, chúng ta có thể sử dụng QPainter để vẽ các chuỗi, đường thẳng hoặc hình ảnh trên một QWidget. Chúng ta có thể ghi đè phương thức paintEvent() của QWidget khi muốn sử dụng đối tượng QPianter để vẽ một cái gì đó trên một QWidget.
Nếu chúng ta muốn lưu các mục được vẽ trên QWidget dưới dạng hình ảnh để tham khảo sau này, chúng ta có thể làm gì? Chúng ta có thể lưu một QWidget dưới dạng hình ảnh. Đây là mã để đạt được điều này:
QPixmap pixmap(this->size());
this->render(&pixmap);
pixmap.save("test.png");
Khá đơn giản phải không? Đúng vậy, đây là tất cả các mã bạn cần. Ở đây this đề cập đến bất kỳ con trỏ QWidget nào, nó có một phương thức size() trả về kích thước của QWidget, pixmap sẽ sử dụng giá trị này để tạo hình ảnh có cùng kích thước. Sau đó, chúng ta cần sử dụng phương thức render() để kết xuất nội dung của widget vào đối tượng QPixmap. Cuối cùng, chúng ta cần lưu nội dung đã kết xuất vào một hình ảnh.
Bảng sau đây hiển thị định dạng tệp hình ảnh được hỗ trợ bởi QPixmap.
Định dạng | Mô tả | Hỗ trợ của Qt |
---|---|---|
BMP | Windows Bitmap | Đọc/ghi |
GIF | Định dạng trao đổi đồ họa (tùy chọn) | Đọc |
JPG | Nhóm chuyên gia nhiếp ảnh chung | Đọc/ghi |
JPEG | Nhóm chuyên gia nhiếp ảnh chung | Đọc/ghi |
PNG | Đồ họa mạng di động | Đọc/ghi |
PBM | Bitmap di động | Đọc |
PGM | Bản đồ xám di động | Đọc |
PPM | Pixmap di động | Đọc/ghi |
XBM | X11 Bitmap | Đọc/ghi |
XPM | X11 Pixmap | Đọc/ghi |
Great stuff!