[ Index ]

PHP Cross Reference of MediaWiki-1.24.0

title

Body

[close]

/includes/media/ -> BMP.php (source)

   1  <?php
   2  /**
   3   * Handler for Microsoft's bitmap format.
   4   *
   5   * This program is free software; you can redistribute it and/or modify
   6   * it under the terms of the GNU General Public License as published by
   7   * the Free Software Foundation; either version 2 of the License, or
   8   * (at your option) any later version.
   9   *
  10   * This program is distributed in the hope that it will be useful,
  11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13   * GNU General Public License for more details.
  14   *
  15   * You should have received a copy of the GNU General Public License along
  16   * with this program; if not, write to the Free Software Foundation, Inc.,
  17   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  18   * http://www.gnu.org/copyleft/gpl.html
  19   *
  20   * @file
  21   * @ingroup Media
  22   */
  23  
  24  /**
  25   * Handler for Microsoft's bitmap format; getimagesize() doesn't
  26   * support these files
  27   *
  28   * @ingroup Media
  29   */
  30  class BmpHandler extends BitmapHandler {
  31      /**
  32       * @param File $file
  33       * @return bool
  34       */
  35  	function mustRender( $file ) {
  36          return true;
  37      }
  38  
  39      /**
  40       * Render files as PNG
  41       *
  42       * @param string $text
  43       * @param string $mime
  44       * @param array $params
  45       * @return array
  46       */
  47  	function getThumbType( $text, $mime, $params = null ) {
  48          return array( 'png', 'image/png' );
  49      }
  50  
  51      /**
  52       * Get width and height from the bmp header.
  53       *
  54       * @param File $image
  55       * @param string $filename
  56       * @return array
  57       */
  58  	function getImageSize( $image, $filename ) {
  59          $f = fopen( $filename, 'rb' );
  60          if ( !$f ) {
  61              return false;
  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 false;
  76          }
  77  
  78          return array( $w[1], $h[1] );
  79      }
  80  }


Generated: Fri Nov 28 14:03:12 2014 Cross-referenced by PHPXref 0.7.1