add getAdditionalParams(), getInfo(), width and page can be passed to convert()

This commit is contained in:
Uwe Steinmann 2021-10-08 12:13:31 +02:00
parent 43c0f626ea
commit 8d3815d7db

View File

@ -34,6 +34,17 @@ class SeedDMS_ConversionServicePdfToImage extends SeedDMS_ConversionServiceBase
$this->timeout = 5;
}
public function getInfo() {
return "Convert with imagick php functions";
}
public function getAdditionalParams() { /* {{{ */
return [
['name'=>'width', 'type'=>'number', 'description'=>'Width of converted image'],
['name'=>'page', 'type'=>'number', 'description'=>'Page of Pdf document'],
];
} /* }}} */
public function convert($infile, $target = null, $params = array()) {
$start = microtime(true);
$imagick = new Imagick();
@ -41,9 +52,12 @@ class SeedDMS_ConversionServicePdfToImage extends SeedDMS_ConversionServiceBase
* A resolution of 72,72 will create a 596x842 image
*/
$imagick->setResolution(36,36);
if($imagick->readImage($infile.'[0]')) {
$page = 0;
if(!empty($params['page']) && intval($params['page']) > 0)
$page = intval($params['page'])-1;
if($imagick->readImage($infile.'['.$page.']')) {
if(!empty($params['width']))
$imagick->scaleImage((int) $params['width'], 0);
$imagick->scaleImage(min((int) $params['width'], $imagick->getImageWidth()), 0);
$imagick->setImageFormat('png');
$end = microtime(true);
if($this->logger) {