Alien-FreeImage
view release on metacpan or search on metacpan
src/Source/FreeImage/PluginSGI.cpp view on Meta::CPAN
if (bIsRLE) {
ch = get_rlechar(io, handle, &my_rle_status);
packed = (BYTE)ch;
}
else {
ch = io->read_proc(&packed, sizeof(BYTE), 1, handle);
}
if (ch == EOF) {
throw SGI_EOF_IN_IMAGE_DATA;
}
*p = packed;
}
}
}
if (zsize == 2)
{
BYTE *pRow = pStartRow;
//If faking RGBA from grayscale + alpha, copy first channel to second and third
for (int i=0; i<height; i++, pRow += ns)
{
BYTE *pPixel = pRow;
for (int j=0; j<width; j++)
{
pPixel[2] = pPixel[1] = pPixel[0];
pPixel += 4;
}
}
}
if(pRowIndex)
free(pRowIndex);
return dib;
} catch(const char *text) {
if(pRowIndex) free(pRowIndex);
if(dib) FreeImage_Unload(dib);
FreeImage_OutputMessageProc(s_format_id, text);
return NULL;
}
}
// ==========================================================
// Init
// ==========================================================
void DLL_CALLCONV
InitSGI(Plugin *plugin, int format_id) {
s_format_id = format_id;
plugin->format_proc = Format;
plugin->description_proc = Description;
plugin->extension_proc = Extension;
plugin->regexpr_proc = RegExpr;
plugin->open_proc = NULL;
plugin->close_proc = NULL;
plugin->pagecount_proc = NULL;
plugin->pagecapability_proc = NULL;
plugin->load_proc = Load;
plugin->save_proc = NULL;
plugin->validate_proc = Validate;
plugin->mime_proc = MimeType;
plugin->supports_export_bpp_proc = SupportsExportDepth;
plugin->supports_export_type_proc = SupportsExportType;
plugin->supports_icc_profiles_proc = NULL;
}
( run in 0.537 second using v1.01-cache-2.11-cpan-d7f47b0818f )