Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
93.75% covered (success)
93.75%
15 / 16
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
Image
93.75% covered (success)
93.75%
15 / 16
0.00% covered (danger)
0.00%
0 / 1
4.00
0.00% covered (danger)
0.00%
0 / 1
 write
93.75% covered (success)
93.75%
15 / 16
0.00% covered (danger)
0.00%
0 / 1
4.00
1<?php
2
3/**
4 * This file is part of PHPWord - A pure PHP library for reading and writing
5 * word processing documents.
6 *
7 * PHPWord is free software distributed under the terms of the GNU Lesser
8 * General Public License version 3 as published by the Free Software Foundation.
9 *
10 * For the full copyright and license information, please read the LICENSE
11 * file that was distributed with this source code. For the full list of
12 * contributors, visit https://github.com/PHPOffice/PHPWord/contributors.
13 *
14 * @see         https://github.com/PHPOffice/PHPWord
15 *
16 * @license     http://www.gnu.org/licenses/lgpl.txt LGPL version 3
17 */
18
19namespace PhpOffice\PhpWord\Writer\HTML\Element;
20
21use PhpOffice\PhpWord\Element\Image as ImageElement;
22use PhpOffice\PhpWord\Writer\HTML\Style\Image as ImageStyleWriter;
23
24/**
25 * Image element HTML writer.
26 *
27 * @since 0.10.0
28 */
29class Image extends Text
30{
31    /**
32     * Write image.
33     *
34     * @return string
35     */
36    public function write()
37    {
38        if (!$this->element instanceof ImageElement) {
39            return '';
40        }
41        $content = '';
42        $imageData = $this->element->getImageStringData(true);
43        if ($imageData !== null) {
44            $styleWriter = new ImageStyleWriter($this->element->getStyle());
45            $style = $styleWriter->write();
46            $imageData = 'data:' . $this->element->getImageType() . ';base64,' . $imageData;
47
48            $altText = $this->element->getAltText();
49            $altAttribute = '';
50            if ($altText) {
51                $altAttribute = " alt=\"{$altText}\"";
52            }
53
54            $content .= $this->writeOpening();
55            $content .= "<img border=\"0\" style=\"{$style}\" src=\"{$imageData}\"{$altAttribute}/>";
56            $content .= $this->writeClosing();
57        }
58
59        return $content;
60    }
61}