如何在c++中将image.jpg转换为image.ppm

How to convert image.jpg to image.ppm in c++

本文关键字:image jpg 转换 ppm 中将 c++      更新时间:2023-10-16

我现在希望通过c++代码实现将image.jpg转换为image.ppm。我可以在C++中实现什么库?顺便说一句:我的工作平台是树莓派3B+。我期待着你的帮助和回复。

我建议使用CImg库。它是现代的,重量轻,使用非常简单,因为它是"仅标题">-只有一个include文件。

#define cimg_display 0  // if you dont have x11.and you can delete-Dcimg_display=0. https://github.com/GreycLab/CImg/issues/187
#include "CImg.h"
using namespace cimg_library;
int main() {
// Load JPEG image
CImg<unsigned char> im("image.jpg");
// Save as PPM
im.save("result.ppm");
// show ppm: ffplay -i a.ppm / ffmpeg -i a.ppm a.bmp
}

编译如下:

g++ -std=c++11 -O3 -march=native -Dcimg_jpeg=1 -Dcimg_display=0  main.cpp -o main

为快速JPEG图像I/O建立的libjpeg-turbo库也可以读取和写入简单的PPM图像格式。您可以使用libjpeg-turbo提供的tjSaveImage()方法。

在代码中,使用tjDecompress2()tjSaveImage()方法。请参阅libjpeg-turbo项目中的示例代码。

您可能还想阅读这篇文章,了解如何在树莓平台上优化构建OpenCV和libjpeg-turbo(只做libjpeg-turbo部分(。