- #if still not known, use getimagesize to find out the type of image
- #TODO: skip things that do not have a well-known image extension? Would that be safe?
- wfSuppressWarnings();
- $gis = getimagesize( $file );
- wfRestoreWarnings();
-
- $notAnImage= false;
-
- if ($gis && is_array($gis) && $gis[2]) {
- switch ($gis[2]) {
- case IMAGETYPE_GIF: $m= "image/gif"; break;
- case IMAGETYPE_JPEG: $m= "image/jpeg"; break;
- case IMAGETYPE_PNG: $m= "image/png"; break;
- case IMAGETYPE_SWF: $m= "application/x-shockwave-flash"; break;
- case IMAGETYPE_PSD: $m= "application/photoshop"; break;
- case IMAGETYPE_BMP: $m= "image/bmp"; break;
- case IMAGETYPE_TIFF_II: $m= "image/tiff"; break;
- case IMAGETYPE_TIFF_MM: $m= "image/tiff"; break;
- case IMAGETYPE_JPC: $m= "image"; break;
- case IMAGETYPE_JP2: $m= "image/jpeg2000"; break;
- case IMAGETYPE_JPX: $m= "image/jpeg2000"; break;
- case IMAGETYPE_JB2: $m= "image"; break;
- case IMAGETYPE_SWC: $m= "application/x-shockwave-flash"; break;
- case IMAGETYPE_IFF: $m= "image/vnd.xiff"; break;
- case IMAGETYPE_WBMP: $m= "image/vnd.wap.wbmp"; break;
- case IMAGETYPE_XBM: $m= "image/x-xbitmap"; break;
- }
-
- if ($m) {
- wfDebug("$fname: image mime type of $file: $m\n");
- return $m;
- }
- else $notAnImage= true;
- } else {
- // Also test DjVu
- $deja = new DjVuImage( $file );
- if( $deja->isValid() ) {
- wfDebug("$fname: detected $file as image/vnd.djvu\n");
- return 'image/vnd.djvu';
- }
- }
-
- #if desired, look at extension as a fallback.
- if ($useExt) {