/**
* Method to add an image to the PDF.
*
* @param string $image
* @param int $x
* @param int $y
* @param mixed $scl
* @param boolean $preserveRes
* @throws Exception
* @return \Pop\Pdf\Pdf
*/
public function addImage($image, $x, $y, $scl = null, $preserveRes = true)
{
if (array_key_exists($image, $this->images) && $preserveRes) {
$i = $this->lastIndex($this->objects) + 1;
$co_index = $this->images[$image]['index'];
if (null !== $scl) {
$dims = Parser\Image::getScaledDimensions($scl, $this->images[$image]['origW'], $this->images[$image]['origH']);
$imgWidth = $dims['w'];
$imgHeight = $dims['h'];
} else {
$imgWidth = $this->images[$image]['origW'];
$imgHeight = $this->images[$image]['origH'];
}
$this->objects[$this->objects[$this->pages[$this->curPage]]->curContent]->setStream("\nq\n" . $imgWidth . " 0 0 " . $imgHeight . " {$x} {$y} cm\n/I{$co_index} Do\nQ\n");
$this->objects[$this->objects[$this->pages[$this->curPage]]->index]->xobjs[] = $this->images[$image]['xobj'];
} else {
// Create image parser object
$i = $this->lastIndex($this->objects) + 1;
$imageParser = new Parser\Image($image, $x, $y, $i, $scl, $preserveRes);
$imageObjects = $imageParser->getObjects();
foreach ($imageObjects as $key => $value) {
$this->objects[$key] = $value;
}
// Add the image to the current page's xobject array and content stream.
$this->objects[$this->objects[$this->pages[$this->curPage]]->index]->xobjs[] = $imageParser->getXObject();
$co_index = $this->getContentObject();
$this->objects[$co_index]->setStream($imageParser->getStream());
if ($preserveRes) {
$this->images[$image] = array('index' => $i, 'origW' => $imageParser->getOrigW(), 'origH' => $imageParser->getOrigH(), 'xobj' => $imageParser->getXObject());
}
}
return $this;
}