Compress Mat into Jpeg And save the result into memory

cirfe picture cirfe · Nov 5, 2015 · Viewed 9.6k times · Source

I know that the function cv::imwrite can compress a cv::Mat into Jpeg and save it to a file. But now I want to save it into memory, like a array of uchar. So, I can send the array to another one ,and it can write the data into a jpeg file. Is there any one can help me out?

Answer

Humam Helfawi picture Humam Helfawi · Nov 5, 2015

Since You did not specify a programming language. I am going to give you the answer in C++.

    std::vector<uchar> buff;//buffer for coding
    std::vector<int> param(2);
    param[0] = cv::IMWRITE_JPEG_QUALITY;
    param[1] = 80;//default(95) 0-100
    cv::imencode(".jpg", mat, buff, param);