Revision: 48462
Author:   brion
Date:     2009-03-16 22:03:20 +0000 (Mon, 16 Mar 2009)

Log Message:
-----------
* (bug 17714) Limited TIFF upload support now built in if 'tif' extension is
  enabled. Image width and height are now recognized, and when using 
ImageMagick,
  optional flattening to PNG or JPEG for inline display can be enabled by 
setting
  $wgTiffThumbnailType

By default no thumbnailing will occur; only difference from previous will be 
that the image width/height is detected and displayed.

Not yet implemented:
* Multi-page support
* Cleverer thumbnailing for giant files
* Thumbnailing of any sort if not using ImageMagick

Modified Paths:
--------------
    trunk/phase3/RELEASE-NOTES
    trunk/phase3/includes/AutoLoader.php
    trunk/phase3/includes/DefaultSettings.php

Added Paths:
-----------
    trunk/phase3/includes/media/Tiff.php

Modified: trunk/phase3/RELEASE-NOTES
===================================================================
--- trunk/phase3/RELEASE-NOTES  2009-03-16 21:43:02 UTC (rev 48461)
+++ trunk/phase3/RELEASE-NOTES  2009-03-16 22:03:20 UTC (rev 48462)
@@ -141,6 +141,10 @@
 * (bug 4582) Provide preference-based autoformatting of unlinked dates with 
the dateformat
   parser function.
 * (bug 17886) Special:Export now allows you to export a whole namespace 
(limited to 5000 pages)
+* (bug 17714) Limited TIFF upload support now built in if 'tif' extension is
+  enabled. Image width and height are now recognized, and when using 
ImageMagick,
+  optional flattening to PNG or JPEG for inline display can be enabled by 
setting
+  $wgTiffThumbnailType
 
 === Bug fixes in 1.15 ===
 * (bug 16968) Special:Upload no longer throws useless warnings.

Modified: trunk/phase3/includes/AutoLoader.php
===================================================================
--- trunk/phase3/includes/AutoLoader.php        2009-03-16 21:43:02 UTC (rev 
48461)
+++ trunk/phase3/includes/AutoLoader.php        2009-03-16 22:03:20 UTC (rev 
48462)
@@ -189,6 +189,7 @@
        'StringUtils' => 'includes/StringUtils.php',
        'TablePager' => 'includes/Pager.php',
        'ThumbnailImage' => 'includes/MediaTransformOutput.php',
+       'TiffHandler' => 'includes/media/Tiff.php',
        'TitleDependency' => 'includes/CacheDependency.php',
        'Title' => 'includes/Title.php',
        'TitleArray' => 'includes/TitleArray.php',

Modified: trunk/phase3/includes/DefaultSettings.php
===================================================================
--- trunk/phase3/includes/DefaultSettings.php   2009-03-16 21:43:02 UTC (rev 
48461)
+++ trunk/phase3/includes/DefaultSettings.php   2009-03-16 22:03:20 UTC (rev 
48462)
@@ -1997,6 +1997,7 @@
        'image/jpeg' => 'BitmapHandler',
        'image/png' => 'BitmapHandler',
        'image/gif' => 'BitmapHandler',
+       'image/tiff' => 'TiffHandler',
        'image/x-ms-bmp' => 'BmpHandler',
        'image/x-bmp' => 'BmpHandler',
        'image/svg+xml' => 'SvgHandler', // official
@@ -2075,6 +2076,16 @@
  */
 $wgMaxAnimatedGifArea = 1.0e6;
 /**
+ * Browsers don't support TIFF inline generally...
+ * For inline display, we need to convert to PNG or JPEG.
+ * Note scaling should work with ImageMagick, but may not with GD scaling.
+ *  // PNG is lossless, but inefficient for photos
+ *  $wgTiffThumbnailType = array( 'png', 'image/png' );
+ *  // JPEG is good for photos, but has no transparency support. Bad for 
diagrams.
+ *  $wgTiffThumbnailType = array( 'jpg', 'image/jpeg' );
+ */
+$wgTiffThumbnailType = false;
+/**
  * If rendered thumbnail files are older than this timestamp, they
  * will be rerendered on demand as if the file didn't already exist.
  * Update if there is some need to force thumbs and SVG rasterizations

Added: trunk/phase3/includes/media/Tiff.php
===================================================================
--- trunk/phase3/includes/media/Tiff.php                                (rev 0)
+++ trunk/phase3/includes/media/Tiff.php        2009-03-16 22:03:20 UTC (rev 
48462)
@@ -0,0 +1,33 @@
+<?php
+/**
+ * @file
+ * @ingroup Media
+ */
+
+/**
+ * @ingroup Media
+ */
+class TiffHandler extends BitmapHandler {
+
+       /**
+        * Conversion to PNG for inline display can be disabled here...
+        * Note scaling should work with ImageMagick, but may not with GD 
scaling.
+        */
+       function canRender( $file ) {
+               global $wgTiffThumbnailType;
+               return (bool)$wgTiffThumbnailType;
+       }
+
+       /**
+        * Browsers don't support TIFF inline generally...
+        * For inline display, we need to convert to PNG.
+        */
+       function mustRender( $file ) {
+               return true;
+       }
+
+       function getThumbType( $ext, $mime ) {
+               global $wgTiffThumbnailType;
+               return $wgTiffThumbnailType;
+       }
+}


Property changes on: trunk/phase3/includes/media/Tiff.php
___________________________________________________________________
Added: svn:eol-style
   + native



_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to