@@ -41,6 +41,7 @@ import qualified Text.Pandoc.Class as P
4141import Data.Time
4242import Text.Pandoc.Definition
4343import Text.Pandoc.Error
44+import Text.Pandoc.ImageSize
4445import Text.Pandoc.Logging
4546import Text.Pandoc.MIME (MimeType, extensionFromMimeType, getMimeType)
4647import Text.Pandoc.Options (EPUBVersion (..), HTMLMathMethod (..),
@@ -450,14 +451,23 @@ pandocToEPUB version opts doc = do
450451 Nothing -> return ([],[])
451452 Just img -> do
452453 let coverImage = takeFileName img
454+ imgContent <- lift $ P.readFileLazy img
455+ (coverImageWidth, coverImageHeight) <-
456+ case imageSize opts' (B.toStrict imgContent) of
457+ Right sz -> return $ sizeInPixels sz
458+ Left err' -> (0, 0) <$ report
459+ (CouldNotDetermineImageSize img err')
453460 cpContent <- lift $ writeHtml
454461 opts'{ writerVariables =
455462 ("coverpage","true"):
456463 ("pagetitle",
457464 escapeStringForXML plainTitle):
465+ ("cover-image", coverImage):
466+ ("cover-image-width", show coverImageWidth):
467+ ("cover-image-height",
468+ show coverImageHeight):
458469 cssvars True ++ vars }
459− (Pandoc meta [RawBlock (Format "html") $ "<div id=\"cover-image\">\n<img src=\"../media/" ++ coverImage ++ "\" alt=\"cover image\" />\n</div>"])
460− imgContent <- lift $ P.readFileLazy img
470+ (Pandoc meta [])
461471 coverEntry <- mkEntry "text/cover.xhtml" cpContent
462472 coverImageEntry <- mkEntry ("media/" ++ coverImage)
463473 imgContent