bool ImageSegmenter::_generateJpeg( const ImageWrapper& image, const Handler& handler ) const { #ifdef DEFLECT_USE_LIBJPEGTURBO const SegmentParametersList& params = _generateSegmentParameters( image ); // The resulting Jpeg segments bool result = true; std::vector<SegmentCompressionWrapper> tasks; for( SegmentParametersList::const_iterator it = params.begin(); it != params.end(); ++it ) { SegmentCompressionWrapper task( image, handler, result ); task.segment.parameters = *it; tasks.push_back( task ); } // create JPEGs for each segment, in parallel QtConcurrent::blockingMap( tasks, &computeJpeg ); return result; #else static bool first = true; if( first ) { first = false; std::cout << "LibJpegTurbo not available, not using compression" << std::endl; } return generateRaw( image, handler ); #endif }
bool ImageSegmenter::generate( const ImageWrapper& image, const Handler& handler ) const { if (image.compressionPolicy == COMPRESSION_ON) return generateJpeg( image, handler ); return generateRaw( image, handler ); }