⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imfcrgbafile.cpp

📁 image converter source code
💻 CPP
📖 第 1 页 / 共 2 页
字号:
intImfHeaderSetV3iAttribute (ImfHeader *hdr,			  const char name[],			  int x, int y, int z){    try    {	V3i v (x, y, z);	if (header(hdr)->find(name) == header(hdr)->end())	    header(hdr)->insert (name, Imf::V3iAttribute (v));	else	    header(hdr)->typedAttribute<Imf::V3iAttribute>(name).value() = v;	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}intImfHeaderV3iAttribute (const ImfHeader *hdr,		       const char name[],		       int *x, int *y, int *z){    try    {	const V3i &v =	    header(hdr)->typedAttribute<Imf::V3iAttribute>(name).value();	*x = v.x;	*y = v.y;	*z = v.z;	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}intImfHeaderSetV3fAttribute (ImfHeader *hdr,			  const char name[],			  float x, float y, float z){    try    {	V3f v (x, y, z);	if (header(hdr)->find(name) == header(hdr)->end())	    header(hdr)->insert (name, Imf::V3fAttribute (v));	else	    header(hdr)->typedAttribute<Imf::V3fAttribute>(name).value() = v;	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}intImfHeaderV3fAttribute (const ImfHeader *hdr,		       const char name[],		       float *x, float *y, float *z){    try    {	const V3f &v =	    header(hdr)->typedAttribute<Imf::V3fAttribute>(name).value();	*x = v.x;	*y = v.y;	*z = v.z;	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}intImfHeaderSetM33fAttribute (ImfHeader *hdr,			   const char name[],			   const float m[3][3]){    try    {	M33f m3 (m);	if (header(hdr)->find(name) == header(hdr)->end())	    header(hdr)->insert (name, Imf::M33fAttribute (m3));	else	    header(hdr)->typedAttribute<Imf::M33fAttribute>(name).value() = m3;	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}intImfHeaderM33fAttribute (const ImfHeader *hdr,			const char name[],			float m[3][3]){    try    {	const M33f &m3 =	    header(hdr)->typedAttribute<Imf::M33fAttribute>(name).value();	m[0][0] = m3[0][0];	m[0][1] = m3[0][1];	m[0][2] = m3[0][2];	m[1][0] = m3[1][0];	m[1][1] = m3[1][1];	m[1][2] = m3[1][2];	m[2][0] = m3[2][0];	m[2][1] = m3[2][1];	m[2][2] = m3[2][2];	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}intImfHeaderSetM44fAttribute (ImfHeader *hdr,			   const char name[],			   const float m[4][4]){    try    {	M44f m4 (m);	if (header(hdr)->find(name) == header(hdr)->end())	    header(hdr)->insert (name, Imf::M44fAttribute (m4));	else	    header(hdr)->typedAttribute<Imf::M44fAttribute>(name).value() = m4;	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}intImfHeaderM44fAttribute (const ImfHeader *hdr,			const char name[],			float m[4][4]){    try    {	const M44f &m4 =	    header(hdr)->typedAttribute<Imf::M44fAttribute>(name).value();	m[0][0] = m4[0][0];	m[0][1] = m4[0][1];	m[0][2] = m4[0][2];	m[0][3] = m4[0][3];	m[1][0] = m4[1][0];	m[1][1] = m4[1][1];	m[1][2] = m4[1][2];	m[1][3] = m4[1][3];	m[2][0] = m4[2][0];	m[2][1] = m4[2][1];	m[2][2] = m4[2][2];	m[2][3] = m4[2][3];	m[3][0] = m4[3][0];	m[3][1] = m4[3][1];	m[3][2] = m4[3][2];	m[3][3] = m4[3][3];	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}ImfOutputFile *	ImfOpenOutputFile (const char name[], const ImfHeader *hdr, int channels){    try    {	return (ImfOutputFile *) new Imf::RgbaOutputFile	    (name, *header(hdr), Imf::RgbaChannels (channels));    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}int		ImfCloseOutputFile (ImfOutputFile *out){    try    {	delete outfile (out);	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}int		ImfOutputSetFrameBuffer (ImfOutputFile *out,			 const ImfRgba *base,			 size_t xStride,			 size_t yStride){    try    {	outfile(out)->setFrameBuffer ((Imf::Rgba *)base, xStride, yStride);	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}int		ImfOutputWritePixels (ImfOutputFile *out, int numScanLines){    try    {	outfile(out)->writePixels (numScanLines);	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}intImfOutputCurrentScanLine (const ImfOutputFile *out){    return outfile(out)->currentScanLine();}const ImfHeader *ImfOutputHeader (const ImfOutputFile *out){    return (const ImfHeader *) &outfile(out)->header();}intImfOutputChannels (const ImfOutputFile *out){    return outfile(out)->channels();}ImfTiledOutputFile *	ImfOpenTiledOutputFile (const char name[],			const ImfHeader *hdr,			int channels,			int xSize, int ySize,			int mode, int rmode){    try    {	return (ImfTiledOutputFile *) new Imf::TiledRgbaOutputFile		    (name, *header(hdr),		     Imf::RgbaChannels (channels),		     xSize, ySize,		     Imf::LevelMode (mode),		     Imf::LevelRoundingMode (rmode));    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}int		ImfCloseTiledOutputFile (ImfTiledOutputFile *out){    try    {	delete outfile (out);	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}int		ImfTiledOutputSetFrameBuffer (ImfTiledOutputFile *out,			      const ImfRgba *base,			      size_t xStride,			      size_t yStride){    try    {	outfile(out)->setFrameBuffer ((Imf::Rgba *)base, xStride, yStride);	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}int		ImfTiledOutputWriteTile (ImfTiledOutputFile *out,			 int dx, int dy,			 int lx, int ly){    try    {	outfile(out)->writeTile (dx, dy, lx, ly);	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}int		ImfTiledOutputWriteTiles (ImfTiledOutputFile *out,			  int dxMin, int dxMax,                          int dyMin, int dyMax,			  int lx, int ly){    try    {	outfile(out)->writeTiles (dxMin, dxMax, dyMin, dyMax, lx, ly);	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}const ImfHeader *ImfTiledOutputHeader (const ImfTiledOutputFile *out){    return (const ImfHeader *) &outfile(out)->header();}intImfTiledOutputChannels (const ImfTiledOutputFile *out){    return outfile(out)->channels();}intImfTiledOutputTileXSize (const ImfTiledOutputFile *out){    return outfile(out)->tileXSize();}intImfTiledOutputTileYSize (const ImfTiledOutputFile *out){    return outfile(out)->tileYSize();}intImfTiledOutputLevelMode (const ImfTiledOutputFile *out){    return outfile(out)->levelMode();}intImfTiledOutputLevelRoundingMode (const ImfTiledOutputFile *out){    return outfile(out)->levelRoundingMode();}ImfInputFile *	ImfOpenInputFile (const char name[]){    try    {	return (ImfInputFile *) new Imf::RgbaInputFile (name);    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}intImfCloseInputFile (ImfInputFile *in){    try    {	delete infile (in);	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}int		ImfInputSetFrameBuffer (ImfInputFile *in,			ImfRgba *base,			size_t xStride,			size_t yStride){    try    {	infile(in)->setFrameBuffer ((Imf::Rgba *) base, xStride, yStride);	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}intImfInputReadPixels (ImfInputFile *in, int scanLine1, int scanLine2){    try    {	infile(in)->readPixels (scanLine1, scanLine2);	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}const ImfHeader *ImfInputHeader (const ImfInputFile *in){    return (const ImfHeader *) &infile(in)->header();}intImfInputChannels (const ImfInputFile *in){    return infile(in)->channels();}const char *ImfInputFileName (const ImfInputFile *in){    return infile(in)->fileName();}ImfTiledInputFile *	ImfOpenTiledInputFile (const char name[]){    try    {	return (ImfTiledInputFile *) new Imf::TiledRgbaInputFile (name);    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}intImfCloseTiledInputFile (ImfTiledInputFile *in){    try    {	delete infile (in);	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}int		ImfTiledInputSetFrameBuffer (ImfTiledInputFile *in,			     ImfRgba *base,			     size_t xStride,			     size_t yStride){    try    {	infile(in)->setFrameBuffer ((Imf::Rgba *) base, xStride, yStride);	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}intImfTiledInputReadTile (ImfTiledInputFile *in,		       int dx, int dy,		       int lx, int ly){    try    {	infile(in)->readTile (dx, dy, lx, ly);	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}intImfTiledInputReadTiles (ImfTiledInputFile *in,		        int dxMin, int dxMax,                        int dyMin, int dyMax,		        int lx, int ly){    try    {	infile(in)->readTiles (dxMin, dxMax, dyMin, dyMax, lx, ly);	return 1;    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}const ImfHeader *ImfTiledInputHeader (const ImfTiledInputFile *in){    return (const ImfHeader *) &infile(in)->header();}intImfTiledInputChannels (const ImfTiledInputFile *in){    return infile(in)->channels();}const char *ImfTiledInputFileName (const ImfTiledInputFile *in){    return infile(in)->fileName();}intImfTiledInputTileXSize (const ImfTiledInputFile *in){    return infile(in)->tileXSize();}intImfTiledInputTileYSize (const ImfTiledInputFile *in){    return infile(in)->tileYSize();}intImfTiledInputLevelMode (const ImfTiledInputFile *in){    return infile(in)->levelMode();}intImfTiledInputLevelRoundingMode (const ImfTiledInputFile *in){    return infile(in)->levelRoundingMode();}ImfLut *ImfNewRound12logLut (int channels){    try    {	return (ImfLut *) new Imf::RgbaLut	    (Imf::round12log, Imf::RgbaChannels (channels));    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}ImfLut *ImfNewRoundNBitLut (unsigned int n, int channels){    try    {	return (ImfLut *) new Imf::RgbaLut	    (Imf::roundNBit (n), Imf::RgbaChannels (channels));    }    catch (const std::exception &e)    {	setErrorMessage (e);	return 0;    }}voidImfDeleteLut (ImfLut *lut){    delete (Imf::RgbaLut *) lut;}voidImfApplyLut (ImfLut *lut, ImfRgba *data, int nData, int stride){    ((Imf::RgbaLut *)lut)->apply ((Imf::Rgba *)data, nData, stride);}const char *	ImfErrorMessage (){    return errorMessage;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -