Tạo watermark cho hình ảnh bằng C++
Hướng dẫn cách tạo watermark cho hình ảnh trong C++ bằng cách sử dụng thư viện OpenCV. Bài viết này giúp bạn hiểu cách thêm văn bản hoặc hình ảnh vào một bức ảnh để tạo ra watermark.
Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo watermark cho hình ảnh bằng C++ thông qua thư viện OpenCV. Bạn sẽ học cách sử dụng các hàm của OpenCV để thêm văn bản hoặc hình ảnh lên một bức ảnh gốc.
Mã C++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
int main() {
// Đọc hình ảnh
Mat image = imread("input.jpg");
if (image.empty()) {
std::cout << "Không thể mở hoặc tìm thấy hình ảnh!" << std::endl;
return -1;
}
// Đặt văn bản watermark
std::string watermark = "Watermark";
int fontFace = FONT_HERSHEY_SIMPLEX;
double fontScale = 2;
int thickness = 3;
Scalar color(255, 255, 255); // Màu trắng
// Tính toán vị trí để đặt watermark
int baseline = 0;
Size textSize = getTextSize(watermark, fontFace, fontScale, thickness, &baseline);
Point textOrg(image.cols - textSize.width - 10, image.rows - baseline - 10);
// Thêm watermark vào hình ảnh
putText(image, watermark, textOrg, fontFace, fontScale, color, thickness);
// Lưu hình ảnh đã thêm watermark
imwrite("output.jpg", image);
// Hiển thị hình ảnh
imshow("Hình ảnh với watermark", image);
waitKey(0);
return 0;
}
Giải thích chi tiết từng dòng code
#include <opencv2/opencv.hpp>
: Thư viện OpenCV cho xử lý hình ảnh.Mat image = imread("input.jpg");
: Đọc hình ảnh từ tệp tin.if (image.empty()) {...}
: Kiểm tra xem hình ảnh có được mở thành công không.std::string watermark = "Watermark";
: Đặt văn bản watermark.getTextSize(...)
: Tính toán kích thước của văn bản watermark để căn chỉnh.Point textOrg(...)
: Tính toán vị trí để đặt watermark ở góc dưới bên phải.putText(...)
: Thêm văn bản watermark vào hình ảnh.imwrite("output.jpg", image);
: Lưu hình ảnh đã thêm watermark vào tệp tin mới.imshow(...)
: Hiển thị hình ảnh với watermark.waitKey(0);
: Đợi người dùng nhấn phím để đóng cửa sổ hiển thị.
Yêu cầu hệ thống:
- Phiên bản C++: C++11 trở lên
- Thư viện OpenCV: Cần cài đặt thư viện OpenCV
- Trình biên dịch: GCC, Clang, MSVC hoặc bất kỳ trình biên dịch nào hỗ trợ C++11 trở lên
Cách cài đặt các thư viện:
- Tải và cài đặt OpenCV từ trang chính của OpenCV.
- Thiết lập biến môi trường và cấu hình trình biên dịch để có thể sử dụng OpenCV trong dự án của bạn.
Lời khuyên:
- Hãy đảm bảo rằng vị trí và kích thước của watermark phù hợp với hình ảnh gốc. Bạn có thể điều chỉnh các tham số để tạo ra hiệu ứng tốt hơn.