From 1c50e01ed19c7a41719ad322ee646db4007acf83 Mon Sep 17 00:00:00 2001 From: James Pace Date: Mon, 5 Jan 2026 10:49:39 -0500 Subject: [PATCH] Publish compressed image. --- src/ImagePublisher.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/ImagePublisher.cpp b/src/ImagePublisher.cpp index 566bd89..e3e023d 100644 --- a/src/ImagePublisher.cpp +++ b/src/ImagePublisher.cpp @@ -1,6 +1,6 @@ #include -#include #include +#include #include #include @@ -18,35 +18,36 @@ namespace j7s { public: ImagePublisher(const rclcpp::NodeOptions& options); private: - image_transport::ImageTransport m_transport; - image_transport::Publisher m_publisher; + std::shared_ptr> m_publisher; + std::shared_ptr> m_compressedPublisher; rclcpp::TimerBase::SharedPtr m_timer; - sensor_msgs::msg::Image::SharedPtr draw_image(); + std::tuple draw_image(); }; }; namespace j7s { ImagePublisher::ImagePublisher(const rclcpp::NodeOptions& options): Node("image_publisher", options), - m_transport(std::shared_ptr(this)), - m_publisher(m_transport.advertise("image", 1)), + m_publisher(this->create_publisher("image", 1)), + m_compressedPublisher(this->create_publisher("image/compressed", 1)), m_timer{} { m_timer = this->create_timer(10ms, [this]() -> void { - const auto msg = draw_image(); - m_publisher.publish(msg); + const auto [image, compressedImage] = draw_image(); + m_publisher->publish(*image); + m_compressedPublisher->publish(*compressedImage); }); } - sensor_msgs::msg::Image::SharedPtr ImagePublisher::draw_image() + std::tuple ImagePublisher::draw_image() { cv::Mat mat = cv::Mat::zeros(200, 200, CV_8UC3); std_msgs::msg::Header header; header.stamp = this->now(); cv_bridge::CvImage image(header, "mono8", mat); - return image.toImageMsg(); + return std::tuple(image.toImageMsg(), image.toCompressedImageMsg()); } };