Brian Wolff has uploaded a new change for review.
https://gerrit.wikimedia.org/r/253280
Change subject: Convert hex value to decimal. Don't just cast to int.
......................................................................
Convert hex value to decimal. Don't just cast to int.
Tiffinfo usually returns something like "EXIFIFDOffset: 0x1ab38078".
This code tried to do (int)"0x1ab38078", which is equal to 0,
not 447971448 as is needed.
As a result, PagedTiffHandler was counting exif segments as new pages
where it should not have been.
Bug: T87318
Change-Id: I5d4860f093f9710f76c7c9e7af50f60e85fe6715
---
M PagedTiffHandler.image.php
1 file changed, 5 insertions(+), 0 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/PagedTiffHandler
refs/changes/80/253280/1
diff --git a/PagedTiffHandler.image.php b/PagedTiffHandler.image.php
index 332d2b6..5ee5bd6 100644
--- a/PagedTiffHandler.image.php
+++ b/PagedTiffHandler.image.php
@@ -277,6 +277,7 @@
$key = $m[1];
$value = $m[2];
+
if ( $key == 'Page Number' &&
preg_match('/(\d+)-(\d+)/', $value, $m) ) {
$state->setPageProperty('page',
(int)$m[1] +1);
} elseif ( $key == 'Samples/Pixel' ) {
@@ -290,6 +291,10 @@
} elseif ( preg_match('/.*IFDOffset/', $key) ) {
# ignore extra IFDs, see
<http://www.awaresystems.be/imaging/tiff/tifftags/exififd.html>
# Note: we assume that we will always
see the reference before the actual IFD, so we know which IFDs to ignore
+ // Offset is usually in hex
+ if ( preg_match( '/^0x[0-9A-Fa-f]+$/',
$value ) ) {
+ $value = hexdec( substr(
$value, 2 ) );
+ }
$offset = (int)$value;
$ignoreIFDs[$offset] = true;
}
--
To view, visit https://gerrit.wikimedia.org/r/253280
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I5d4860f093f9710f76c7c9e7af50f60e85fe6715
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/PagedTiffHandler
Gerrit-Branch: master
Gerrit-Owner: Brian Wolff <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits