gpt4 book ai didi

c++ - OpenJPEG 的 opj_encode 是段错误

转载 作者:行者123 更新时间:2023-11-30 05:34:07 25 4
gpt4 key购买 nike

我是 OpenJPEG 的新手,我正在尝试使用它的库来创建一个 c++ 应用程序,该应用程序接收图像文件并将它们编码为 J2k 格式。我创建默认参数 opj_set_default_encoder_parameters(&params) 并设置输出文件值。使用这些参数,我创建了图像 image = bmptoimage(filename, &params) 并将参数的 x 和 y 设置为图像大小。 opj_setup_encoder(encoder, &params, image)返回成功,但是如下代码:

opj_start_compress(encoder, image, stream);
opj_encode(encoder, stream); //seg fault here
opj_end_compress(encoder, stream);

我在 opj_encode 函数中收到信号 11 段错误。

我想我没有设置一个重要的参数,但我找不到任何东西来表明它可能是哪个参数。可能是哪个参数?

也可能是我创建的流对象不正确,stream = opj_stream_create_default_file_stream(params.outfile, OPJ_FALSE);

谢谢

更新

我发现 opj_encode 是段错误,因为 opj_start_compress 失败了。它失败并出现错误“与图 block 的大小相比,分辨率的数量太高”。我已经输入了 params.numresolution = 1;(0 导致 malloc 错误),但我仍然得到同样的错误。知道为什么 opj_start_compress 会失败吗?

最佳答案

我只是将其称为已回答。 opj_encode 失败,因为 opj_start_compress 未成功。在编码修复 seg 错误之前进行检查以验证 opj_start_compress 是否成功。

关于c++ - OpenJPEG 的 opj_encode 是段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34407375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com