我正在尝试使用pylon sdk对从Basler相机抓取的图像进行64位编码。
所以在我得到图像后,代码看起来像这样:
formatConverter.Convert(pylonImage, ptrGrabResult);
char *sp = static_cast<char*>(pylonImage.GetBuffer());
vecRes.emplace_back(base64_encode(sp, pylonImage.GetImageSize()));
base64编码的图像最终应该显示在前端。但结果字符串看起来应该是这样,所以有些事情是错误的。可能我没有按照我的意愿读取缓冲区,或者缓冲区需要进行一些处理。
您知道如何将Pylon图像缓冲区转换为base64编码图像吗?
更新: 所以我认为问题是原始字节流不是jpeg编码所以它不能显示在屏幕上。我尝试使用jonolick.com/code.html将原始字节转换为图像并显示它,但是当我选择有3个通道时产生的图像是错误的。图像在屏幕上重复3次。你知道如何将原始流编码为jpeg格式而不将其保存到磁盘(结果可以是带有图像内容的字符串)吗?
闭: 最终解决了这个问题。我不得不使用PixelType_BGR8packed预先格式化pylon sdk中的basler图像,然后我设法将它转换为jpg同时使用OpenCv和https://www.jonolick.com/code.html