Graphics-TIFF
view release on metacpan or search on metacpan
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:
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:
}
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;
/* 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 )