boost::gil中的jpeg_write_view错误

jpeg_write_view error in boost::gil

本文关键字:write 错误 view jpeg gil 中的 boost      更新时间:2023-10-16

我现在正在学习如何在boost中使用通用图像库,下面的代码说明了如何将一些原始数据写入jpeg文件:

int main(void)
{
    unsigned char *src_pixels;
    int src_row_bytes = 200;
    src_pixels = new unsigned char [200*500];
    for(int i=0; i<500; i++)
    {
        for(int j=0; j<200; j++)
            src_pixels[i*200+j]= j;
    }
    char *dst_pixels;
    dst_pixels = new char [200*500];
    for(int i=0; i<500; i++)
    {
        for(int j=0; j<200; j++)
            dst_pixels[i*200+j]= j;
    }
    gray8c_view_t my_view = interleaved_view(200,500,(const gray8_pixel_t*)src_pixels,src_row_bytes);
    gray8s_view_t your_view = interleaved_view(200,500,( gray8s_pixel_t*)dst_pixels,src_row_bytes); 
    jpeg_write_view("C:/file_1_copy.jpg", my_view);
    jpeg_write_view("C:/file_2_copy.jpg", your_view);
     delete []src_pixels;
     delete []dst_pixels;
    return 0;
}

然而,似乎无法编译jpeg_write_view("C:/file_2_copy.jpg", your_view);,并给出以下错误消息:

Error   2   error C2338: jpeg_write_support<View>::is_supported

我不知道怎样才能使它编译。任何建议都将不胜感激。

`

我使用的是Boost v1.75函数boost::gil::jpeg_read_image(...)在此标头#include <boost/gil/extension/io/jpeg/old.hpp>中仍然可用。

新的等效API(我认为来自Boost.GIL v1.68)是

#include <boost/gil/extension/io/jpeg.hpp>
boost::gil::write_view();

使用CCD_ 4来管理JPEG。

示例:

boost::gil::write_view("out.jpg", img_view, boost::gil::jpeg_tag());