Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
Pictures
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
5
100.00% covered (success)
100.00%
1 / 1
 render
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
5
1<?php
2/**
3 * This file is part of PHPPresentation - A pure PHP library for reading and writing
4 * presentations documents.
5 *
6 * PHPPresentation is free software distributed under the terms of the GNU Lesser
7 * General Public License version 3 as published by the Free Software Foundation.
8 *
9 * For the full copyright and license information, please read the LICENSE
10 * file that was distributed with this source code. For the full list of
11 * contributors, visit https://github.com/PHPOffice/PHPPresentation/contributors.
12 *
13 * @see        https://github.com/PHPOffice/PHPPresentation
14 *
15 * @license     http://www.gnu.org/licenses/lgpl.txt LGPL version 3
16 */
17
18declare(strict_types=1);
19
20namespace PhpOffice\PhpPresentation\Writer\ODPresentation;
21
22use PhpOffice\Common\Adapter\Zip\ZipInterface;
23use PhpOffice\PhpPresentation\Shape\Drawing;
24use PhpOffice\PhpPresentation\Slide\Background\Image;
25
26class Pictures extends AbstractDecoratorWriter
27{
28    public function render(): ZipInterface
29    {
30        $arrMedia = [];
31        for ($i = 0; $i < $this->getDrawingHashTable()->count(); ++$i) {
32            $shape = $this->getDrawingHashTable()->getByIndex($i);
33            if (!($shape instanceof Drawing\AbstractDrawingAdapter)) {
34                continue;
35            }
36            $arrMedia[] = $shape->getIndexedFilename();
37            $this->getZip()->addFromString('Pictures/' . $shape->getIndexedFilename(), $shape->getContents());
38        }
39
40        foreach ($this->getPresentation()->getAllSlides() as $keySlide => $oSlide) {
41            // Add background image slide
42            $oBkgImage = $oSlide->getBackground();
43            if ($oBkgImage instanceof Image) {
44                $this->getZip()->addFromString('Pictures/' . $oBkgImage->getIndexedFilename((string) $keySlide), file_get_contents($oBkgImage->getPath()));
45            }
46        }
47
48        return $this->getZip();
49    }
50}