setWidth() public method

Set width.
public setWidth ( integer $width ) : JonnyW\PhantomJs\Message\AbstractRequest
$width integer Width
return JonnyW\PhantomJs\Message\AbstractRequest
Example #1
0
 /**
  * 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.
  */
 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;
 }