#pragma once
#include <string>
#include <vector>
#include <cstdint>
#include "std_msgs/Header.h"

namespace sensor_msgs
{
struct Image
{
    std_msgs::Header header;       // Thông tin thời gian và frame
    uint32_t height = 0;           // Số hàng (pixels theo chiều dọc)
    uint32_t width = 0;            // Số cột (pixels theo chiều ngang)
    std::string encoding;          // Kiểu mã hóa (vd: "rgb8", "mono8")
    uint8_t is_bigendian = 0;      // 0 = little endian
    uint32_t step = 0;             // Số byte mỗi dòng ảnh
    std::vector<uint8_t> data;     // Mảng dữ liệu ảnh (kích thước step * height)

    Image() = default;

    inline size_t size() const { return data.size(); }

    inline bool empty() const { return data.empty(); }
};

} // namespace sensor_msgs
