src/Respimg.php
public static function rasterize($file, $dest, $columns, $rows) {

			// check the input
			if (!file_exists($file)) {
				return false;
			}

			if (!file_exists($dest) || !is_dir($dest)) {
				return false;
			}

			// figure out the output width and height
			$svgTmp = new Respimg($file);
			$width = (double) $svgTmp->getImageWidth();
			$height = (double) $svgTmp->getImageHeight();
			$new_width = $columns;
			$new_height = $rows;

			$x_factor = $columns / $width;
			$y_factor = $rows / $height;
			if ($rows < 1) {
				$new_height = round($x_factor * $height);
			} elseif ($columns < 1) {
				$new_width = round($y_factor * $width);
			}

			// get the svg data
			$svgdata = file_get_contents($file);

			// figure out some path stuff
			$dest = rtrim($dest, '/');
			$filename = substr($file, strrpos($file, '/') + 1);
			$filename_base = substr($filename, 0, strrpos($filename, '.'));

			// setup the request
			$client = Client::getInstance();

			$serviceContainer = ServiceContainer::getInstance();
			$procedureLoaderFactory = $serviceContainer->get('procedure_loader_factory');
			$procedureLoader = $procedureLoaderFactory->createProcedureLoader(__DIR__);
			$client->getProcedureLoader()->addLoader($procedureLoader);

			$request = new RespimgCaptureRequest();
			$request->setType('svg2png');
			$request->setMethod('GET');
			$request->setSVG(base64_encode($svgdata));
			$request->setViewportSize($new_width, $new_height);
			$request->setRasterFile($dest . '/' . $filename_base . '-w' . $new_width . '.png');
			$request->setWidth($new_width);
			$request->setHeight($new_height);

			$response = $client->getMessageFactory()->createResponse();

			// send + return
			$client->send($request, $response);
			return true;

		}
public static function rasterize($file, $dest, $columns, $rows) {

			// check the input
			if (!file_exists($file)) {
				return false;
			}

			if (!file_exists($dest) || !is_dir($dest)) {
				return false;
			}

			// figure out the output width and height
			$svgTmp = new Respimg($file);
			$width = (double) $svgTmp->getImageWidth();
			$height = (double) $svgTmp->getImageHeight();
			$new_width = $columns;
			$new_height = $rows;

			$x_factor = $columns / $width;
			$y_factor = $rows / $height;
			if ($rows < 1) {
				$new_height = round($x_factor * $height);
			} elseif ($columns < 1) {
				$new_width = round($y_factor * $width);
			}

			// get the svg data
			$svgdata = file_get_contents($file);

			// figure out some path stuff
			$dest = rtrim($dest, '/');
			$filename = substr($file, strrpos($file, '/') + 1);
			$filename_base = substr($filename, 0, strrpos($filename, '.'));

			// setup the request
			$client = Client::getInstance();

			$serviceContainer = ServiceContainer::getInstance();
			$procedureLoaderFactory = $serviceContainer->get('procedure_loader_factory');
			$procedureLoader = $procedureLoaderFactory->createProcedureLoader(__DIR__);
			$client->getProcedureLoader()->addLoader($procedureLoader);

			$request = new RespimgCaptureRequest();
			$request->setType('svg2png');
			$request->setMethod('GET');
			$request->setSVG(base64_encode($svgdata));
			$request->setViewportSize($new_width, $new_height);
			$request->setRasterFile($dest . '/' . $filename_base . '-w' . $new_width . '.png');
			$request->setWidth($new_width);
			$request->setHeight($new_height);

			$response = $client->getMessageFactory()->createResponse();

			// send + return
			$client->send($request, $response);
			return true;

		}
public static function rasterize ( $ file , $ dest , $ columns , $ rows ) { // check the input if ( ! file_exists ( $ file ) ) { return false ; } if ( ! file_exists ( $ dest ) || ! is_dir ( $ dest ) ) { return false ; } // figure out the output width and height $ svgTmp = new Respimg ( $ file ) ; $ width = ( double ) $ svgTmp -> getImageWidth ( ) ; $ height = ( double ) $ svgTmp -> getImageHeight ( ) ; $ new_width = $ columns ; $ new_height = $ rows ; $ x_factor = $ columns / $ width ; $ y_factor = $ rows / $ height ; if ( $ rows < 1 ) { $ new_height = round ( $ x_factor * $ height ) ; } elseif ( $ columns < 1 ) { $ new_width = round ( $ y_factor * $ width ) ; } // get the svg data $ svgdata = file_get_contents ( $ file ) ; // figure out some path stuff $ dest = rtrim ( $ dest , '/' ) ; $ filename = substr ( $ file , strrpos ( $ file , '/' ) + 1 ) ; $ filename_base = substr ( $ filename , 0 , strrpos ( $ filename , '.' ) ) ; // setup the request $ client = Client :: getInstance ( ) ; $ serviceContainer = ServiceContainer :: getInstance ( ) ; $ procedureLoaderFactory = $ serviceContainer -> get ( 'procedure_loader_factory' ) ; $ procedureLoader = $ procedureLoaderFactory -> createProcedureLoader ( __DIR__ ) ; $ client -> getProcedureLoader ( ) -> addLoader ( $ procedureLoader ) ; $ request = new RespimgCaptureRequest ( ) ; $ request -> setType ( 'svg2png' ) ; $ request -> setMethod ( 'GET' ) ; $ request -> setSVG ( base64_encode ( $ svgdata ) ) ; $ request -> setViewportSize ( $ new_width , $ new_height ) ; $ request -> setRasterFile ( $ dest . '/' . $ filename_base . '-w' . $ new_width . '.png' ) ; $ request -> setWidth ( $ new_width ) ; $ request -> setHeight ( $ new_height ) ; $ response = $ client -> getMessageFactory ( ) -> createResponse ( ) ; // send + return $ client -> send ( $ request , $ response ) ; return true ; }
Rasterizes an SVG image to a PNG.

Uses phantomjs to save the SVG as a PNG image at the specified size.

@access	public

@param	string	$file			The path to the file that should be rasterized.
@param	string	$dest			The path to the directory where the output PNG should be saved.
@param	integer	$columns		The number of columns in the output image. 0 = maintain aspect ratio based on $rows.
@param	integer	$rows			The number of rows in the output image. 0 = maintain aspect ratio based on $columns.
Rasterizes an SVG image to a PNG .