http://www.mediawiki.org/wiki/Special:Code/MediaWiki/72279
Revision: 72279
Author: daniel
Date: 2010-09-03 12:06:47 +0000 (Fri, 03 Sep 2010)
Log Message:
-----------
photoshop quirks: ignore extra tiff directory causing the same data to show as
two pages in the tiff
Modified Paths:
--------------
trunk/extensions/PagedTiffHandler/PagedTiffHandler.image.php
trunk/extensions/PagedTiffHandler/PagedTiffHandler.php
Modified: trunk/extensions/PagedTiffHandler/PagedTiffHandler.image.php
===================================================================
--- trunk/extensions/PagedTiffHandler/PagedTiffHandler.image.php
2010-09-03 11:59:06 UTC (rev 72278)
+++ trunk/extensions/PagedTiffHandler/PagedTiffHandler.image.php
2010-09-03 12:06:47 UTC (rev 72279)
@@ -225,6 +225,7 @@
$entry = array();
$prevPage = 0;
+ $quirks = false;
foreach ( $rows as $row ) {
$row = trim( $row );
@@ -282,17 +283,37 @@
$entry['width'] = (int)$value;
} else if ( $key == 'Image Length' || $key ==
'PixelYDimension' ) {
$entry['height'] = (int)$value;
+ } else if ( $key == 'Software' &&
preg_match('/photoshop/i', $value) ) {
+ $quirks = "photoshop";
+ } else if ( $key == 'Subfile Type' ) {
+ $entry['type'] = (int)$value;
}
} else {
// strange line
}
-
}
if ( $entry ) {
$ok = $this->addPageEntry($entry, $data, $prevPage);
}
+ if ( $quirks === 'photoshop' && count( $data['page_data'] ) > 1
) {
+ # Photoshop may use multiple directories for a single
page image
+ # Ignore the ones with SubfileType == 0
+ foreach ( $data['page_data'] as $i => $entry ) {
+ if ( isset($entry['type']) && $entry['type']
=== 0 ) {
+ unset( $data['page_data'][$i] );
+ $data['warnings'][] = "removed spurious
frame (photoshop quirk)";
+ }
+ }
+
+ $data['page_data'] = array_values( $data['page_data']
); # re-index
+ array_unshift( $data['page_data'], null ); # make
1-indexed
+ unset( $data['page_data'][0] ); #remove dummy
+ }
+
+ $data['quirks'] = $quirks;
+
if ( !isset( $data['page_amount'] ) ) {
$data['page_amount'] = count( $data['page_data'] );
}
Modified: trunk/extensions/PagedTiffHandler/PagedTiffHandler.php
===================================================================
--- trunk/extensions/PagedTiffHandler/PagedTiffHandler.php 2010-09-03
11:59:06 UTC (rev 72278)
+++ trunk/extensions/PagedTiffHandler/PagedTiffHandler.php 2010-09-03
12:06:47 UTC (rev 72279)
@@ -123,9 +123,10 @@
$wgMediaHandlers['image/tiff'] = 'PagedTiffHandler';
$wgHooks['LanguageGetMagic'][] = 'PagedTiffHandler::addTiffLossyMagicWordLang';
-define('TIFF_METADATA_VERSION', '1.1');
+define('TIFF_METADATA_VERSION', '1.2');
# 1.0: initial
# 1.1: fixed bugs in imageinfo parser
+# 1.2: photoshop quirks for imageinfo parser
//$wgHooks['PagedTiffHandlerRenderCommand'][] =
'PagedTiffHandler::renderCommand';
//$wgHooks['PagedTiffHandlerTiffData'][] = 'PagedTiffImage::tiffData';
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs