twain2/JpegBuffer.cpp

83 lines
1.3 KiB
C++

#include "StdAfx.h"
#include "JpegBuffer.h"
#include "jpeglib.h"
#include "twain.h"
//#include "filetools.h"
using namespace std;
JpegBuffer::JpegBuffer(cv::Mat buffer, int color_type,int side,int mFilter)
{
this->m_buffer = buffer;
this->m_color_type=color_type;
this->m_side=side;
this->m_mFilter=mFilter;
}
JpegBuffer::JpegBuffer(std::vector<cv::Mat> mats, int color_type, int mFilter)
{
matdatas = mats;
this->m_color_type = color_type;
this->m_mFilter = mFilter;
}
JpegBuffer::JpegBuffer()
{
this->m_buffer = cv::Mat();
this->m_color_type = 2;
this->m_side = 0;
this->m_mFilter = 0;
}
JpegBuffer::~JpegBuffer(void)
{
}
unsigned char* JpegBuffer::getBuffer()
{
return m_buffer.data;
}
cv::Mat JpegBuffer::buffer()
{
return m_buffer;
}
int JpegBuffer::getSize()
{
return m_buffer.cols;
}
cv::Mat JpegBuffer::getMat( int pixType)
{
JpegLib jl;
cv::Mat image = jl.decode(m_buffer, pixType);
return image.clone();
}
std::vector<cv::Mat> JpegBuffer::getMats()
{
std::vector<cv::Mat> retmats;
for (int i = 0; i < matdatas.size(); i++)
{
JpegLib jl;
cv::Mat image = jl.decode(matdatas[i], m_color_type);
retmats.push_back(image.clone());
image.release();
}
return retmats;
}
int JpegBuffer::getMFilter()
{
return m_mFilter;
}
int JpegBuffer::getSide()
{
return m_side;
}