कैसे कन्वर्ट करने के लिए एक gray8_view_t करने के लिए एक rgb8_view_t का उपयोग करके को बढ़ावा देने::गिल और बनाने के लिए एक rgb8_image_t चीज से है?

0

सवाल

के बाद से बढ़ावा देने::गिल का समर्थन नहीं करता है gray8_view_t लेखन के लिए बीएमपी के प्रारूप में, मैं परिवर्तित करना चाहते हैं gray8_view_t करने के लिए rgb8_view_t. यहाँ है क्या मैं अब तक की कोशिश की.

auto rgb_view = boost::gil::planar_rgb_view(width, height, pixels, pixels, pixels, width);

पिक्सल में शामिल है कच्चे पिक्सल से gray8_view_t वस्तु है, तो मैं आर=g=b=पिक्सल है । लेकिन boost::gil::write_view(ofstream, rgb_view, boost::gil::bmp_tag()) मुझे एक खाली छवि । किसी भी विचार है?

अद्यतन: का उपयोग करके sehe के उदाहरण कोड http://coliru.stacked-crooked.com/a/daa0735f774b727f, मैं प्राप्त करने में सक्षम था रंग करने के लिए बातचीत के साथ संकलित color_converted_view<gil::rgb8_view_t>. लेकिन यह संकलन नहीं करता है जब मैं का उपयोग करें boost::gil::write_view बनाने के लिए एक छवि फ़ाइल से वापसी मान के color_converted_view<gil::rgb8_view_t>. मेरा अनुमान है कि मैं होगा बनाने के लिए एक वास्तविक rgb8_image_t से वस्तु के मूल्य वापसी. मैं कैसे कर सकते हैं बदलने के मूल्य वापसी color_converted_view<gil::rgb8_view_t> करने के लिए एक वास्तविक rgb8_image_t वस्तु? धन्यवाद!

#include <boost/gil.hpp>
#include <fstream>
namespace gil = boost::gil;

int main()
{
        std::ifstream in("gray8_image_t_sample.jpg", std::ios::binary);
        gil::gray8_image_t img;
        gil::read_image(in, img, gil::jpeg_tag());
        gil::gray8_view_t gv = gil::view(img);
        std::ofstream ofs1("test_image.png", std::ios::out | std::ios_base::binary);
        gil::write_view(ofs1, gv, gil::png_tag()); // This works

        auto rgbv = gil::color_converted_view<gil::rgb8_view_t>(gv);
        std::ofstream ofs2("test_image.bmp", std::ios::out | std::ios_base::binary);
        gil::write_view(ofs2, rgbv, gil::bmp_tag()); // this does not compile
} 

त्रुटि संदेशों में से एक मैं कर रहा हूँ

\boost\gil\color_base_algorithm.hpp(170,76): error G1A4676F8: no member named 'layout_t' in 'boost::gil::image<boost::gil::pixel<unsigned char, boost::gil::layout<boost::mp11::mp_list<boost::gil::red_t, boost::gil::green_t, boost::gil::blue_t>, boost::mp11::mp_list<std::integral_constant<int, 0>, std::integral_constant<int, 1>, std::integral_constant<int, 2>>>>, false, std::allocator<unsigned char>>' [clang-diagnostic-error]

यहाँ है gray8_image_t फ़ाइल का उपयोग कर रहा हूँ

boost boost-gil c++
2021-11-19 23:46:27
1

सबसे अच्छा जवाब

1

ठीक शेष समस्या महज एक misspecified टेम्पलेट तर्क, color_converted_view उम्मीद एक गंतव्य पिक्सेल प्रकार:

#include <boost/gil.hpp>
#include <boost/gil/extension/io/bmp.hpp>
#include <boost/gil/extension/io/jpeg.hpp>
#include <boost/gil/extension/io/png.hpp>
#include <fstream>
namespace gil = boost::gil;

int main()
{
    std::ifstream in("gray8_image_t_sample.jpg", std::ios::binary);
    gil::gray8_image_t img;
    gil::read_image(in, img, gil::jpeg_tag());
    gil::gray8_view_t gv = gil::view(img);
    gil::write_view("input.png", gv, gil::png_tag());

    auto rgbv = gil::color_converted_view<gil::rgb8_pixel_t>(gv);
    gil::write_view("output.png", rgbv, gil::png_tag());
    gil::write_view("output.bmp", rgbv, gil::bmp_tag());
}

के साथ resuling फ़ाइलें:

2021-11-22 17:00:37

आपको बहुत बहुत धन्यवाद!
BunRieuCua

चियर्स. आपका स्वागत है करने के लिए stackoverflow. मत भूलना वोट करने के लिए और स्वीकार करते हैं (meta.stackexchange.com/questions/5234/...)
sehe

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में