Graphics-TIFF

 view release on metacpan or  search on metacpan

TIFF.xs  view on Meta::CPAN


    newCONSTSUB(stash, "TIFFPRINT_STRIPS", newSViv(TIFFPRINT_STRIPS));
    newCONSTSUB(stash, "TIFFPRINT_CURVES", newSViv(TIFFPRINT_CURVES));
    newCONSTSUB(stash, "TIFFPRINT_COLORMAP", newSViv(TIFFPRINT_COLORMAP));
    newCONSTSUB(stash, "TIFFPRINT_JPEGQTABLES", newSViv(TIFFPRINT_JPEGQTABLES));
    newCONSTSUB(stash, "TIFFPRINT_JPEGACTABLES", newSViv(TIFFPRINT_JPEGACTABLES));
    newCONSTSUB(stash, "TIFFPRINT_JPEGDCTABLES", newSViv(TIFFPRINT_JPEGDCTABLES));

void
tiff_GetVersion (class)
        PPCODE:
                XPUSHs(sv_2mortal(newSVpv((char *) TIFFGetVersion(), 0)));

void
tiff_IsCODECConfigured (class, compression)
                uint16_t compression
        PPCODE:
                XPUSHs(sv_2mortal(newSViv(TIFFIsCODECConfigured(compression))));

void
tiff__Open (class, path, flags)
		const char*	path
		const char*	flags
	INIT:
                TIFF		*tif;
        PPCODE:
                tif = TIFFOpen(path, flags);
                XPUSHs(sv_2mortal(newSViv(PTR2IV(tif))));

void
tiff_Close (tif)
                TIFF		*tif;
        PPCODE:
                TIFFClose(tif);

void
tiff_FileName (tif)
                TIFF		*tif;
        PPCODE:
                XPUSHs(sv_2mortal(newSVpv((char *) TIFFFileName(tif), 0)));

void
tiff_ReadDirectory (tif)
                TIFF		*tif;
        PPCODE:
	        XPUSHs(sv_2mortal(newSViv(TIFFReadDirectory(tif))));

void
tiff_WriteDirectory (tif)
                TIFF		*tif;
        PPCODE:
	        XPUSHs(sv_2mortal(newSViv(TIFFWriteDirectory(tif))));

void
tiff_ReadEXIFDirectory (tif, diroff)
                TIFF		*tif
                toff_t          diroff;
        PPCODE:
	        XPUSHs(sv_2mortal(newSViv(TIFFReadEXIFDirectory(tif, diroff))));

void
tiff_NumberOfDirectories (tif)
                TIFF		*tif
        PPCODE:
	        XPUSHs(sv_2mortal(newSViv(TIFFNumberOfDirectories(tif))));

void
tiff_SetDirectory (tif, dirnum)
                TIFF		*tif
                uint16_t        dirnum;
        PPCODE:
	        XPUSHs(sv_2mortal(newSViv(TIFFSetDirectory(tif, dirnum))));

void
tiff_SetSubDirectory(tif, diroff)
                TIFF		*tif
                uint64_t        diroff;
        PPCODE:
	        XPUSHs(sv_2mortal(newSViv(TIFFSetSubDirectory(tif, diroff))));

void
tiff_GetField (tif, tag)
                TIFF            *tif
                uint32_t        tag
	INIT:
                uint16_t        ui16, ui16_2, *aui16, *aui16_2, *aui16_3;
                uint32_t        ui32;
                uint64_t        *aui;
                float           f;
                float           *af;
                int             nvals;
        PPCODE:
/* See http://www.libtiff.org/man/TIFFGetField.3t.html */
                switch (tag) {
                    /* byte single uint8 */
                    /* short single uint16 */
		    case TIFFTAG_BITSPERSAMPLE:
		    case TIFFTAG_COMPRESSION:
		    case TIFFTAG_FILLORDER:
		    case TIFFTAG_MATTEING:
		    case TIFFTAG_MAXSAMPLEVALUE:
		    case TIFFTAG_MINSAMPLEVALUE:

TIFF.xs  view on Meta::CPAN


void
tiff_GetFieldDefaulted (tif, tag)
                TIFF            *tif
                uint32_t        tag
	INIT:
                uint16_t        ui16, ui16_2, *aui16, *aui16_2, *aui16_3;
                uint32_t        ui32;
                uint64_t        *aui;
                float           f;
        PPCODE:
                switch (tag) {
                    /* byte single uint8 */
                    /* short single uint16 */
		    case TIFFTAG_BITSPERSAMPLE:
		    case TIFFTAG_COMPRESSION:
		    case TIFFTAG_FILLORDER:
		    case TIFFTAG_MATTEING:
		    case TIFFTAG_MAXSAMPLEVALUE:
		    case TIFFTAG_MINSAMPLEVALUE:
		    case TIFFTAG_ORIENTATION:

TIFF.xs  view on Meta::CPAN

                }

void
tiff_SetField (tif, tag, ...)
                TIFF            *tif
                uint32_t        tag
	INIT:
                uint16_t        ui16, ui16_2;
                uint32_t        ui32;
                float           f;
        PPCODE:
                switch (tag) {

                    /* single float */
		    case TIFFTAG_XRESOLUTION:
		    case TIFFTAG_YRESOLUTION:
		    case TIFFTAG_XPOSITION:
		    case TIFFTAG_YPOSITION:
                        f = SvNV(ST(2));
                        XPUSHs(sv_2mortal(newSViv(TIFFSetField (tif, tag, f))));
                        break;

TIFF.xs  view on Meta::CPAN

                    /* single uint32 */
                    default:
                        ui32 = SvIV(ST(2));
                        XPUSHs(sv_2mortal(newSViv(TIFFSetField (tif, tag, ui32))));
                        break;
                }

void
tiff_IsTiled (tif)
                TIFF            *tif
        PPCODE:
                XPUSHs(sv_2mortal(newSViv(TIFFIsTiled(tif))));

void
tiff_ScanlineSize (tif)
                TIFF            *tif
        PPCODE:
                XPUSHs(sv_2mortal(newSViv(TIFFScanlineSize(tif))));

void
tiff_StripSize (tif)
                TIFF            *tif
        PPCODE:
                XPUSHs(sv_2mortal(newSViv(TIFFStripSize(tif))));

void
tiff_NumberOfStrips (tif)
                TIFF            *tif
        PPCODE:
                XPUSHs(sv_2mortal(newSViv(TIFFNumberOfStrips(tif))));

void
tiff_TileSize (tif)
                TIFF            *tif
        PPCODE:
                XPUSHs(sv_2mortal(newSViv(TIFFTileSize(tif))));

void
tiff_TileRowSize (tif)
                TIFF            *tif
        PPCODE:
                XPUSHs(sv_2mortal(newSViv(TIFFTileRowSize(tif))));

void
tiff_ComputeStrip (tif, row, sample)
                TIFF            *tif
                uint32_t        row
                uint16_t        sample
        PPCODE:
                XPUSHs(sv_2mortal(newSViv(TIFFComputeStrip(tif, row, sample))));

void
tiff_ReadEncodedStrip (tif, strip, size)
                TIFF            *tif
                uint32_t        strip
                tmsize_t        size
	INIT:
                void            *buf;
                tmsize_t        stripsize, bufsize;
        PPCODE:
                stripsize = TIFFStripSize(tif);
                buf = _TIFFmalloc(stripsize);
                bufsize = TIFFReadEncodedStrip(tif, strip, buf, size);
                if (bufsize > 0) {
                    XPUSHs(sv_2mortal(newSVpvn(buf, bufsize)));
                }
		_TIFFfree(buf);

void
tiff_WriteEncodedStrip (tif, strip, data, size)
                TIFF            *tif
                uint32_t        strip
                void*           data
                tmsize_t        size
	INIT:
                tmsize_t        stripsize;
        PPCODE:
                stripsize = TIFFWriteEncodedStrip(tif, strip, data, size);
                XPUSHs(sv_2mortal(newSViv(stripsize)));

void
tiff_ReadRawStrip (tif, strip, size)
                TIFF            *tif
                uint32_t        strip
                tmsize_t        size
	INIT:
                void            *buf;
                tmsize_t        stripsize, bufsize;
        PPCODE:
                stripsize = TIFFStripSize(tif);
                buf = _TIFFmalloc(stripsize);
                bufsize = TIFFReadRawStrip(tif, strip, buf, size);
                if (bufsize > 0) {
                    XPUSHs(sv_2mortal(newSVpvn(buf, bufsize)));
                }
		_TIFFfree(buf);

void
tiff_ReadTile (tif, x, y, z, s)
                TIFF            *tif
                uint32_t        x
                uint32_t        y
                uint32_t        z
                uint16_t        s
	INIT:
                void            *buf;
                tmsize_t        tilesize, bufsize;
        PPCODE:
                tilesize = TIFFTileSize(tif);
                buf = _TIFFmalloc(tilesize);
                bufsize = TIFFReadTile(tif, buf, x, y, z, s);
                if (bufsize > 0) {
                    XPUSHs(sv_2mortal(newSVpvn(buf, bufsize)));
                }
		_TIFFfree(buf);

uint16_t
tiff_CurrentDirectory (tif)



( run in 0.470 second using v1.01-cache-2.11-cpan-5511b514fd6 )