inline void * VCR::imageThreadMethod() { Image image; while (mActive) { if (mAudio) { writeImages(image); } else { al_sleep(mSleep); } } // write any remaining images: writeImages(image); return 0; }
// [[Rcpp::export]] Rcpp::RawVector magick_image_write( XPtrImage input, Rcpp::CharacterVector format, Rcpp::IntegerVector quality, Rcpp::IntegerVector depth, Rcpp::CharacterVector density, Rcpp::CharacterVector comment){ if(!input->size()) return Rcpp::RawVector(0); XPtrImage image = copy(input); #if MagickLibVersion >= 0x691 //suppress write warnings see #74 and #116 image->front().quiet(true); #endif if(format.size()) for_each ( image->begin(), image->end(), Magick::magickImage(std::string(format[0]))); if(quality.size()) for_each ( image->begin(), image->end(), Magick::qualityImage(quality[0])); if(depth.size()) for_each ( image->begin(), image->end(), Magick::depthImage(depth[0])); if(density.size()){ for_each ( image->begin(), image->end(), Magick::resolutionUnitsImage(Magick::PixelsPerInchResolution)); for_each ( image->begin(), image->end(), Magick::densityImage(Point(density[0]))); } if(comment.size()) for_each ( image->begin(), image->end(), Magick::commentImage(std::string(comment.at(0)))); Magick::Blob output; writeImages( image->begin(), image->end(), &output ); Rcpp::RawVector res(output.length()); std::memcpy(res.begin(), output.data(), output.length()); return res; }
INITIALIZE_EASYLOGGINGPP int main(int argc, char** argv) { // IO operation const char* keys = { "{ f | vidFile | ex2.avi | filename of video }" "{ x | xFlowFile | flow_x | filename of flow x component }" "{ y | yFlowFile | flow_y | filename of flow x component }" "{ i | imgFile | flow_i | filename of flow image}" "{ b | bound | 15 | specify the maximum of optical flow}" "{ o | out | zip | output style}" }; CommandLineParser cmd(argc, argv, keys); string vidFile = cmd.get<string>("vidFile"); string xFlowFile = cmd.get<string>("xFlowFile"); string yFlowFile = cmd.get<string>("yFlowFile"); string imgFile = cmd.get<string>("imgFile"); string output_style = cmd.get<string>("out"); int bound = cmd.get<int>("bound"); // LOG(INFO)<<"Starting extraction"; vector<vector<uchar> > out_vec_x, out_vec_y, out_vec_img; calcDenseFlow(vidFile, bound, 0, 1, out_vec_x, out_vec_y, out_vec_img); if (output_style == "dir") { writeImages(out_vec_x, xFlowFile); writeImages(out_vec_y, yFlowFile); writeImages(out_vec_img, imgFile); }else{ // LOG(INFO)<<"Writing results to Zip archives"; writeZipFile(out_vec_x, "x_%05d.jpg", xFlowFile+".zip"); writeZipFile(out_vec_y, "y_%05d.jpg", yFlowFile+".zip"); writeZipFile(out_vec_img, "img_%05d.jpg", imgFile+".zip"); } return 0; }