/** * Calculate scale of image. * * Calculates the output size of the image, depending on the available * space and the image dimensions. * * @param array $styles * @param ezcDocumentPdfImage $image * @param ezcDocumentPdfPage $page * @param flaot $width * @return array */ protected function scaleImage(array $styles, ezcDocumentPdfImage $image, ezcDocumentPdfPage $page, $width) { $imageDimensions = $image->getDimensions(); // Scale image down, if exceeds the maximum available width $imageSize = array($imageDimensions[0]->get(), $imageDimensions[1]->get()); if ($imageSize[0] > $width->get()) { $imageSize[1] *= $width->get() / $imageSize[0]; $imageSize[0] = $width->get(); } // @todo: Apply styles for image scaling. // Check if image would fit on a new page using its default size. if ($page->innerHeight > $imageSize[1]) { return $imageSize; } // Otherwise we need to scale the image down even further $imageSize[0] *= $page->innerHeight / $imageSize[1]; $imageSize[1] = $page->innerHeight; return $imageSize; }
public function testImageHandler() { $image = ezcDocumentPdfImage::createFromFile(dirname(__FILE__) . '/../files/pdf/images/logo-white.png'); $this->assertSame('image/png', $image->getMimeType()); $this->assertEquals(array(new ezcDocumentPcssMeasure('113px'), new ezcDocumentPcssMeasure('57px')), $image->getDimensions()); }
/** * Create image handler object from file * * @param string $file * @return ezcDocumentPdfImage */ public static function createFromFile($file) { $image = new ezcDocumentPdfImage(); $image->loadFile($file); return $image; }