newtx/imgproc/algs/image_encoder.h

32 lines
753 B
C++

// encoder bmp to given format
//
// Date: 2024-02-26
#pragma once
#include <imgprc/img_processor.h>
#include <memory>
#include <vector>
class img_encoder : public image_processor
{
std::string fmt_ = ".jpg";
int jpeg_quality_ = 100;
std::vector<int> param_;
public:
img_encoder(bool weaker = false);
protected:
~img_encoder();
public:
virtual int set_value(const char* name/*nullptr for all options*/, void* val/*nullptr for restore*/) override;
public:
virtual image_processor* copy_weaker(void) override;
virtual int process(std::vector<PROCIMGINFO>& in, std::vector<PROCIMGINFO>& out) override;
public:
std::shared_ptr<std::vector<uchar>> encode(LPPACKIMAGE head, cv::Mat& mat);
};