From ac67387c7d0ffa8e03fd87993a9d0f13b85fd9ca Mon Sep 17 00:00:00 2001 From: SoftFever Date: Mon, 30 Oct 2023 23:00:43 +0800 Subject: [PATCH] Fixed #2527: missing THUMBNAIL_BLOCK_START --- src/libslic3r/GCode/Thumbnails.hpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/libslic3r/GCode/Thumbnails.hpp b/src/libslic3r/GCode/Thumbnails.hpp index b2ea4ea5fd..380337e5bb 100644 --- a/src/libslic3r/GCode/Thumbnails.hpp +++ b/src/libslic3r/GCode/Thumbnails.hpp @@ -30,15 +30,21 @@ std::string rjust(std::string input, unsigned int width, char fill_char); std::unique_ptr compress_thumbnail(const ThumbnailData &data, GCodeThumbnailsFormat format); template -inline void export_thumbnails_to_file(ThumbnailsGeneratorCallback &thumbnail_cb, int plate_id, const std::vector &sizes, GCodeThumbnailsFormat format, WriteToOutput output, ThrowIfCanceledCallback throw_if_canceled) +inline void export_thumbnails_to_file(ThumbnailsGeneratorCallback &thumbnail_cb, + int plate_id, + const std::vector &sizes, + GCodeThumbnailsFormat format, + WriteToOutput output, + ThrowIfCanceledCallback throw_if_canceled) { // Write thumbnails using base64 encoding if (thumbnail_cb != nullptr) { static constexpr const size_t max_row_length = 78; - ThumbnailsList thumbnails = thumbnail_cb(ThumbnailsParams{ sizes, true, true, true, true, plate_id }); - short i = 0; - for (const ThumbnailData& data : thumbnails) { + ThumbnailsList thumbnails = thumbnail_cb(ThumbnailsParams{sizes, true, true, true, true, plate_id}); + short i = 0; + for (const ThumbnailData &data : thumbnails) { if (data.is_valid()) { + output("; THUMBNAIL_BLOCK_START\n"); auto compressed = compress_thumbnail(data, format); if (compressed->data && compressed->size) { if (format == GCodeThumbnailsFormat::BTT_TFT) { @@ -52,11 +58,7 @@ inline void export_thumbnails_to_file(ThumbnailsGeneratorCallback &thumbnail_cb, encoded.resize(boost::beast::detail::base64::encoded_size(compressed->size)); encoded.resize(boost::beast::detail::base64::encode((void *) encoded.data(), (const void *) compressed->data, compressed->size)); - - output((boost::format("\n;\n; %s begin %dx%d %d\n") % compressed->tag() % data.width % data.height % encoded.size()) - .str() - .c_str()); - + output((boost::format("; thumbnail begin %dx%d %d\n") % data.width % data.height % encoded.size()).str().c_str()); while (encoded.size() > max_row_length) { output((boost::format("; %s\n") % encoded.substr(0, max_row_length)).str().c_str()); encoded = encoded.substr(max_row_length); @@ -65,10 +67,12 @@ inline void export_thumbnails_to_file(ThumbnailsGeneratorCallback &thumbnail_cb, if (encoded.size() > 0) output((boost::format("; %s\n") % encoded).str().c_str()); - output((boost::format("; %s end\n;\n") % compressed->tag()).str().c_str()); + output("; thumbnail end\n"); } throw_if_canceled(); } + output("; THUMBNAIL_BLOCK_END\n\n"); + i++; } }