本文整理汇总了C++中ImageBuf::set_write_format方法的典型用法代码示例。如果您正苦于以下问题:C++ ImageBuf::set_write_format方法的具体用法?C++ ImageBuf::set_write_format怎么用?C++ ImageBuf::set_write_format使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ImageBuf
的用法示例。
在下文中一共展示了ImageBuf::set_write_format方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: roi
//.........这里部分代码省略.........
// object.
setup_transformations (rend, Mshad, Mobj);
// Set up the image outputs requested on the command line
setup_output_images (shadingsys, shadergroup);
if (debug)
test_group_attributes (shadergroup.get());
if (num_threads < 1)
num_threads = boost::thread::hardware_concurrency();
double setuptime = timer.lap ();
// Allow a settable number of iterations to "render" the whole image,
// which is useful for time trials of things that would be too quick
// to accurately time for a single iteration
for (int iter = 0; iter < iters; ++iter) {
OIIO::ROI roi (0, xres, 0, yres);
if (use_shade_image)
OSL::shade_image (*shadingsys, *shadergroup, NULL,
*outputimgs[0], outputvarnames,
pixelcenters ? ShadePixelCenters : ShadePixelGrid,
roi, num_threads);
else {
bool save = (iter == (iters-1)); // save on last iteration
#if 0
shade_region (shadergroup.get(), roi, save);
#else
OIIO::ImageBufAlgo::parallel_image (
boost::bind (shade_region, shadergroup.get(), _1, save),
roi, num_threads);
#endif
}
// If any reparam was requested, do it now
if (reparams.size() && reparam_layer.size()) {
for (size_t p = 0; p < reparams.size(); ++p) {
const ParamValue &pv (reparams[p]);
shadingsys->ReParameter (*shadergroup, reparam_layer.c_str(),
pv.name().c_str(), pv.type(),
pv.data());
}
}
}
double runtime = timer.lap();
if (outputfiles.size() == 0)
std::cout << "\n";
// Write the output images to disk
for (size_t i = 0; i < outputimgs.size(); ++i) {
if (outputimgs[i]) {
if (! print_outputs) {
std::string filename = outputimgs[i]->name();
// JPEG, GIF, and PNG images should be automatically saved
// as sRGB because they are almost certainly supposed to
// be displayed on web pages.
using namespace OIIO;
if (Strutil::iends_with (filename, ".jpg") ||
Strutil::iends_with (filename, ".jpeg") ||
Strutil::iends_with (filename, ".gif") ||
Strutil::iends_with (filename, ".png")) {
ImageBuf ccbuf;
ImageBufAlgo::colorconvert (ccbuf, *outputimgs[i],
"linear", "sRGB", false,
"", "");
ccbuf.set_write_format (outputimgs[i]->spec().format);
ccbuf.write (filename);
} else {
outputimgs[i]->write (filename);
}
}
delete outputimgs[i];
outputimgs[i] = NULL;
}
}
// Print some debugging info
if (debug || runstats || profile) {
double writetime = timer.lap();
std::cout << "\n";
std::cout << "Setup: " << OIIO::Strutil::timeintervalformat (setuptime,2) << "\n";
std::cout << "Run : " << OIIO::Strutil::timeintervalformat (runtime,2) << "\n";
std::cout << "Write: " << OIIO::Strutil::timeintervalformat (writetime,2) << "\n";
std::cout << "\n";
std::cout << shadingsys->getstats (5) << "\n";
OIIO::TextureSystem *texturesys = shadingsys->texturesys();
if (texturesys)
std::cout << texturesys->getstats (5) << "\n";
std::cout << ustring::getstats() << "\n";
}
// We're done with the shading system now, destroy it
shadergroup.reset (); // Must release this before destroying shadingsys
delete shadingsys;
return EXIT_SUCCESS;
}