gpt4 book ai didi

c++ - 如何使用由 png 数据构造的 blob 初始化 Magick::Image 对象(png 由 cv::imencode 创建)

转载 作者:行者123 更新时间:2023-11-28 01:48:32 32 4
gpt4 key购买 nike

我尝试创建一个 Magick::Image obj,其中包含由 png 数据构建的 blob(png 由 cv::imencode 创建)。当我使用由 jpg 数据构造的 blob 创建 Magick::Image obj 时它工作正常(jpg 由 cv::imencode 创建),但我不能使用 png 数据。

我想将一些 img 转换为 gif。源数据是由 cv::imencode 编码的 img 原始数据。我可以用jpg数据来计算,但是它太慢了,所以我尝试用png数据来做,现在我遇到了上面提到的问题。

相关问题:ImageMagick convert jpg images to gif slow

最佳答案

不要将 cv::Mat 编码为任何图像格式的 blob,只传递给 Magick::Image 进行解码。只需将像素数据直接传递给 Magick::Image.read

cv::Mat inbound_image = cv::imread("wizard.jpg");
Magick::Image outbound_image;
outbound_image.read(inbound_image.cols, // width
inbound_image.rows, // height
"BGR", // Channel order (should always be "BGR", or "BGRA")
Magick::CharPixel, // CV_8U
inbound_image.data); // void *
outbound_image.write("wizard.gif");

请注意,您将负责检查 cv::Mat.depth() 的存储大小是否正确,以及 cv::Mat.channels()颜色 channel 数。

关于c++ - 如何使用由 png 数据构造的 blob 初始化 Magick::Image 对象(png 由 cv::imencode 创建),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43887455/

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