Alien-FreeImage
view release on metacpan or search on metacpan
src/Source/FreeImage/PluginPICT.cpp view on Meta::CPAN
dib = FreeImage_Allocate(width, height, 8);
break;
}
}
if ( dib ) {
// need to convert resolution figures from fixed point, pixels/inch
// to floating point, pixels/meter.
float hres_ppm = hRes * ((float)39.4 / (float)65536.0);
float vres_ppm = vRes * ((float)39.4 / (float)65536.0);
FreeImage_SetDotsPerMeterX( dib, (LONG)hres_ppm );
FreeImage_SetDotsPerMeterY( dib, (LONG)vres_ppm );
switch( pictType ) {
case op9a:
DecodeOp9a( io, handle, dib, &pixMap );
break;
case jpeg:
// Already decoded if the embedded format was valid.
break;
case pixmap:
DecodePixmap( io, handle, dib, isRegion, &pixMap, rowBytes );
break;
case bitmap:
DecodeBitmap( io, handle, dib, isRegion, &bounds, rowBytes );
break;
default:
throw "invalid pict type";
}
}
return dib;
}
catch(const char *message) {
FreeImage_Unload( dib );
FreeImage_OutputMessageProc(s_format_id, message);
}
return NULL;
}
// ==========================================================
// Init
// ==========================================================
void DLL_CALLCONV
InitPICT(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 = NULL;
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 = SupportsICCProfiles;
}
( run in 0.665 second using v1.01-cache-2.11-cpan-d7f47b0818f )