From bd7254aed6f959265e170eb4ec198fcb86f23f8b Mon Sep 17 00:00:00 2001 From: vog Date: Mon, 18 Jul 2011 15:24:42 +0000 Subject: [PATCH] Added native preview filter "hex-irb" that is needed for Photoshop EPS previews --- src/preview.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/preview.cpp b/src/preview.cpp index aa289fe1..cf59d4c4 100644 --- a/src/preview.cpp +++ b/src/preview.cpp @@ -44,6 +44,7 @@ EXIV2_RCSID("@(#) $Id$") #include "image.hpp" #include "cr2image.hpp" +#include "jpgimage.hpp" #include "tiffimage.hpp" // ***************************************************************************** @@ -463,6 +464,18 @@ namespace { } if (nativePreview_.filter_ == "") { return DataBuf(data + nativePreview_.position_, static_cast(nativePreview_.size_)); + } else if (nativePreview_.filter_ == "hex-irb") { + DataBuf psData = decodeHex(data + nativePreview_.position_, static_cast(nativePreview_.size_)); + const byte *record; + uint32_t sizeHdr; + uint32_t sizeData; + if (Photoshop::locatePreviewIrb(psData.pData_, psData.size_, &record, &sizeHdr, &sizeData) != 0) { +#ifndef SUPPRESS_WARNINGS + EXV_WARNING << "Missing preview IRB in Photoshop EPS preview.\n"; +#endif + return DataBuf(); + } + return DataBuf(record + sizeHdr + 28, sizeData - 28); } else { throw Error(1, "Invalid native preview filter: " + nativePreview_.filter_); }