getMainConfig() ->get( MainConfigNames::TiffThumbnailType ); return (bool)$tiffThumbnailType || $file->getRepo() instanceof ForeignAPIRepo; } /** * Browsers don't support TIFF inline generally... * For inline display, we need to convert to PNG. * * @param File $file * @return bool */ public function mustRender( $file ) { return true; } /** * @param string $ext * @param string $mime * @param array|null $params * @return array */ public function getThumbType( $ext, $mime, $params = null ) { $tiffThumbnailType = MediaWikiServices::getInstance()->getMainConfig() ->get( MainConfigNames::TiffThumbnailType ); return $tiffThumbnailType; } public function getSizeAndMetadata( $state, $filename ) { $showEXIF = MediaWikiServices::getInstance()->getMainConfig()->get( MainConfigNames::ShowEXIF ); try { $meta = BitmapMetadataHandler::Tiff( $filename ); if ( !is_array( $meta ) ) { // This should never happen, but doesn't hurt to be paranoid. throw new InvalidTiffException( 'Metadata array is not an array' ); } $info = [ 'width' => $meta['ImageWidth'] ?? 0, 'height' => $meta['ImageLength'] ?? 0, ]; $info = $this->applyExifRotation( $info, $meta ); if ( $showEXIF ) { $meta['MEDIAWIKI_EXIF_VERSION'] = Exif::version(); $info['metadata'] = $meta; } return $info; } catch ( InvalidTiffException $e ) { // BitmapMetadataHandler throws an exception in certain exceptional // cases like if file does not exist. wfDebug( __METHOD__ . ': ' . $e->getMessage() ); return [ 'metadata' => [ '_error' => ExifBitmapHandler::BROKEN_FILE ] ]; } } public function isExpensiveToThumbnail( $file ) { return $file->getSize() > static::EXPENSIVE_SIZE_LIMIT; } }