MediaWiki  master
BmpHandler.php
Go to the documentation of this file.
1 <?php
30 class BmpHandler extends BitmapHandler {
35  public function mustRender( $file ) {
36  return true;
37  }
38 
47  public function getThumbType( $ext, $mime, $params = null ) {
48  return [ 'png', 'image/png' ];
49  }
50 
58  public function getSizeAndMetadata( $state, $filename ) {
59  $f = fopen( $filename, 'rb' );
60  if ( !$f ) {
61  return [];
62  }
63  $header = fread( $f, 54 );
64  fclose( $f );
65 
66  // Extract binary form of width and height from the header
67  $w = substr( $header, 18, 4 );
68  $h = substr( $header, 22, 4 );
69 
70  // Convert the unsigned long 32 bits (little endian):
71  try {
72  $w = wfUnpack( 'V', $w, 4 );
73  $h = wfUnpack( 'V', $h, 4 );
74  } catch ( MWException $e ) {
75  return [];
76  }
77 
78  return [
79  'width' => $w[1],
80  'height' => $h[1]
81  ];
82  }
83 }
wfUnpack( $format, $data, $length=false)
Wrapper around php's unpack.
Generic handler for bitmap images.
Handler for Microsoft's bitmap format; getimagesize() doesn't support these files.
Definition: BmpHandler.php:30
getThumbType( $ext, $mime, $params=null)
Render files as PNG.
Definition: BmpHandler.php:47
getSizeAndMetadata( $state, $filename)
Get width and height from the bmp header.
Definition: BmpHandler.php:58
mustRender( $file)
Definition: BmpHandler.php:35
MediaWiki exception.
Definition: MWException.php:32
$mime
Definition: router.php:60
if(PHP_SAPI !='cli-server') if(!isset( $_SERVER['SCRIPT_FILENAME'])) $file
Item class for a filearchive table row.
Definition: router.php:42
if(!is_readable( $file)) $ext
Definition: router.php:48
$header