#include "StdAfx.h" #include "JpegBuffer.h" #include "jpeglib.h" #include "twain.h" #include "filetools.h" #include "PublicFunc.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 mats, int color_type, int mFilter) { this->m_buffer = mats; this->m_color_type = color_type; this->m_mFilter = mFilter; } 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) //{ // static int inddd = 0; // JpegLib jl; // // cv::Mat image = jl.decode(m_buffer, pixType); // // return image.clone(); //} std::vector JpegBuffer::getMats(int pixType) { std::vector rets; JpegLib jl; for (size_t i = 0; i < m_buffer.size(); i++) { #ifndef G200 cv::Mat mat = cv::imdecode(m_buffer[i], pixType == TJPF_BGR ? 1 : 0); cv::Mat front = mat(cv::Rect(0, 0, mat.cols / 2, mat.rows)); cv::Mat back = mat(cv::Rect(mat.cols / 2, 0, mat.cols / 2, mat.rows)); return { front,back }; #else rets.push_back(jl.decode(m_buffer[i], pixType).clone()); #endif } return rets; } int JpegBuffer::getMFilter() { return m_mFilter; } int JpegBuffer::getSide() { return m_side; }