reanimate/reanimate-0.4.3.0-inplace/Reanimate.Builtin.Images.hs.html
2020-08-31 13:39:55 +00:00

91 lines
6.1 KiB
HTML

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
span.lineno { color: white; background: #aaaaaa; border-right: solid white 12px }
span.nottickedoff { background: yellow}
span.istickedoff { background: white }
span.tickonlyfalse { margin: -1px; border: 1px solid #f20913; background: #f20913 }
span.tickonlytrue { margin: -1px; border: 1px solid #60de51; background: #60de51 }
span.funcount { font-size: small; color: orange; z-index: 2; position: absolute; right: 20 }
span.decl { font-weight: bold }
span.spaces { background: white }
</style>
</head>
<body>
<pre>
<span class="decl"><span class="nottickedoff">never executed</span> <span class="tickonlytrue">always true</span> <span class="tickonlyfalse">always false</span></span>
</pre>
<pre>
<span class="lineno"> 1 </span>{-|
<span class="lineno"> 2 </span>Module : Reanimate.Builtin.Images
<span class="lineno"> 3 </span>Copyright : Written by David Himmelstrup
<span class="lineno"> 4 </span>License : Unlicense
<span class="lineno"> 5 </span>Maintainer : lemmih@gmail.com
<span class="lineno"> 6 </span>Stability : experimental
<span class="lineno"> 7 </span>Portability : POSIX
<span class="lineno"> 8 </span>
<span class="lineno"> 9 </span>Collection of built-in images.
<span class="lineno"> 10 </span>
<span class="lineno"> 11 </span>-}
<span class="lineno"> 12 </span>module Reanimate.Builtin.Images
<span class="lineno"> 13 </span> ( svgLogo
<span class="lineno"> 14 </span> , haskellLogo
<span class="lineno"> 15 </span> , githubIcon
<span class="lineno"> 16 </span> , githubWhiteIcon
<span class="lineno"> 17 </span> , smallEarth
<span class="lineno"> 18 </span> ) where
<span class="lineno"> 19 </span>
<span class="lineno"> 20 </span>import Codec.Picture
<span class="lineno"> 21 </span>import qualified Data.ByteString as B
<span class="lineno"> 22 </span>import Graphics.SvgTree (parseSvgFile)
<span class="lineno"> 23 </span>import Paths_reanimate
<span class="lineno"> 24 </span>import Reanimate.Animation
<span class="lineno"> 25 </span>import Reanimate.Svg
<span class="lineno"> 26 </span>import System.IO.Unsafe
<span class="lineno"> 27 </span>
<span class="lineno"> 28 </span>embedImage :: FilePath -&gt; IO SVG
<span class="lineno"> 29 </span><span class="decl"><span class="istickedoff">embedImage key = do</span>
<span class="lineno"> 30 </span><span class="spaces"> </span><span class="istickedoff">svg_file &lt;- getDataFileName key</span>
<span class="lineno"> 31 </span><span class="spaces"> </span><span class="istickedoff">svg_data &lt;- B.readFile svg_file</span>
<span class="lineno"> 32 </span><span class="spaces"> </span><span class="istickedoff">case parseSvgFile <span class="nottickedoff">svg_file</span> svg_data of</span>
<span class="lineno"> 33 </span><span class="spaces"> </span><span class="istickedoff">Nothing -&gt; <span class="nottickedoff">error &quot;Malformed svg&quot;</span></span>
<span class="lineno"> 34 </span><span class="spaces"> </span><span class="istickedoff">Just svg -&gt; return $ embedDocument svg</span></span>
<span class="lineno"> 35 </span>
<span class="lineno"> 36 </span>loadJPG :: FilePath -&gt; Image PixelRGBA8
<span class="lineno"> 37 </span><span class="decl"><span class="nottickedoff">loadJPG key = unsafePerformIO $ do</span>
<span class="lineno"> 38 </span><span class="spaces"> </span><span class="nottickedoff">jpg_file &lt;- getDataFileName key</span>
<span class="lineno"> 39 </span><span class="spaces"> </span><span class="nottickedoff">dat &lt;- B.readFile jpg_file</span>
<span class="lineno"> 40 </span><span class="spaces"> </span><span class="nottickedoff">case decodeJpeg dat of</span>
<span class="lineno"> 41 </span><span class="spaces"> </span><span class="nottickedoff">Left err -&gt; error err</span>
<span class="lineno"> 42 </span><span class="spaces"> </span><span class="nottickedoff">Right img -&gt; return $ convertRGBA8 img</span></span>
<span class="lineno"> 43 </span>
<span class="lineno"> 44 </span>{- HLINT ignore svgLogo -}
<span class="lineno"> 45 </span>-- | &lt;&lt;docs/gifs/doc_svgLogo.gif&gt;&gt;
<span class="lineno"> 46 </span>svgLogo :: SVG
<span class="lineno"> 47 </span><span class="decl"><span class="istickedoff">svgLogo = unsafePerformIO $ embedImage &quot;data/svg-logo.svg&quot;</span></span>
<span class="lineno"> 48 </span>
<span class="lineno"> 49 </span>{- HLINT ignore haskellLogo -}
<span class="lineno"> 50 </span>-- | &lt;&lt;docs/gifs/doc_haskellLogo.gif&gt;&gt;
<span class="lineno"> 51 </span>haskellLogo :: SVG
<span class="lineno"> 52 </span><span class="decl"><span class="istickedoff">haskellLogo = unsafePerformIO $ embedImage &quot;data/haskell.svg&quot;</span></span>
<span class="lineno"> 53 </span>
<span class="lineno"> 54 </span>{- HLINT ignore githubIcon -}
<span class="lineno"> 55 </span>-- | &lt;&lt;docs/gifs/doc_githubIcon.gif&gt;&gt;
<span class="lineno"> 56 </span>githubIcon :: SVG
<span class="lineno"> 57 </span><span class="decl"><span class="istickedoff">githubIcon = unsafePerformIO $ embedImage &quot;data/github-icon.svg&quot;</span></span>
<span class="lineno"> 58 </span>
<span class="lineno"> 59 </span>{-# NOINLINE githubWhiteIcon #-}
<span class="lineno"> 60 </span>-- | &lt;&lt;docs/gifs/doc_githubWhiteIcon.gif&gt;&gt;
<span class="lineno"> 61 </span>githubWhiteIcon :: SVG
<span class="lineno"> 62 </span><span class="decl"><span class="nottickedoff">githubWhiteIcon = unsafePerformIO $ embedImage &quot;data/github-icon-white.svg&quot;</span></span>
<span class="lineno"> 63 </span>
<span class="lineno"> 64 </span>-- | 300x150 equirectangular earth
<span class="lineno"> 65 </span>--
<span class="lineno"> 66 </span>-- &lt;&lt;docs/gifs/doc_smallEarth.gif&gt;&gt;
<span class="lineno"> 67 </span>smallEarth :: Image PixelRGBA8
<span class="lineno"> 68 </span><span class="decl"><span class="nottickedoff">smallEarth = loadJPG &quot;data/small_earth.jpg&quot;</span></span>
</pre>
</body>
</html>