ILIAS  release_5-2 Revision v5.2.25-18-g3f80b82851
Assetic\Filter\PngoutFilter Class Reference

Runs assets through pngout. More...

+ Inheritance diagram for Assetic\Filter\PngoutFilter:
+ Collaboration diagram for Assetic\Filter\PngoutFilter:

Public Member Functions

 __construct ($pngoutBin='/usr/bin/pngout')
 Constructor. More...
 
 setColor ($color)
 
 setFilter ($filter)
 
 setStrategy ($strategy)
 
 setBlockSplitThreshold ($blockSplitThreshold)
 
 filterLoad (AssetInterface $asset)
 Filters an asset after it has been loaded. More...
 
 filterDump (AssetInterface $asset)
 Filters an asset just before it's dumped. More...
 
- Public Member Functions inherited from Assetic\Filter\BaseProcessFilter
 setTimeout ($timeout)
 Set the process timeout. More...
 

Data Fields

const COLOR_GREY = '0'
 
const COLOR_RGB = '2'
 
const COLOR_PAL = '3'
 
const COLOR_GRAY_ALPHA = '4'
 
const COLOR_RGB_ALPHA = '6'
 
const FILTER_NONE = '0'
 
const FILTER_X = '1'
 
const FILTER_Y = '2'
 
const FILTER_X_Y = '3'
 
const FILTER_PAETH = '4'
 
const FILTER_MIXED = '5'
 
const STRATEGY_XTREME = '0'
 
const STRATEGY_INTENSE = '1'
 
const STRATEGY_LONGEST_MATCH = '2'
 
const STRATEGY_HUFFMAN_ONLY = '3'
 
const STRATEGY_UNCOMPRESSED = '4'
 

Private Attributes

 $pngoutBin
 
 $color
 
 $filter
 
 $strategy
 
 $blockSplitThreshold
 

Additional Inherited Members

- Protected Member Functions inherited from Assetic\Filter\BaseProcessFilter
 createProcessBuilder (array $arguments=array())
 Creates a new process builder. More...
 
 mergeEnv (ProcessBuilder $pb)
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

Assetic\Filter\PngoutFilter::__construct (   $pngoutBin = '/usr/bin/pngout')

Constructor.

Parameters
string$pngoutBinPath to the pngout binary

Definition at line 59 of file PngoutFilter.php.

References Assetic\Filter\PngoutFilter\$pngoutBin.

60  {
61  $this->pngoutBin = $pngoutBin;
62  }

Member Function Documentation

◆ filterDump()

Assetic\Filter\PngoutFilter::filterDump ( AssetInterface  $asset)

Filters an asset just before it's dumped.

Parameters
AssetInterface$assetAn asset

Implements Assetic\Filter\FilterInterface.

Definition at line 88 of file PngoutFilter.php.

References $code, $output, array, color, Assetic\Filter\BaseProcessFilter\createProcessBuilder(), Assetic\Util\FilesystemUtils\createTemporaryFile(), Assetic\Exception\FilterException\fromProcess(), Assetic\Asset\AssetInterface\getContent(), and Assetic\Asset\AssetInterface\setContent().

89  {
90  $pb = $this->createProcessBuilder(array($this->pngoutBin));
91 
92  if (null !== $this->color) {
93  $pb->add('-c'.$this->color);
94  }
95 
96  if (null !== $this->filter) {
97  $pb->add('-f'.$this->filter);
98  }
99 
100  if (null !== $this->strategy) {
101  $pb->add('-s'.$this->strategy);
102  }
103 
104  if (null !== $this->blockSplitThreshold) {
105  $pb->add('-b'.$this->blockSplitThreshold);
106  }
107 
108  $pb->add($input = FilesystemUtils::createTemporaryFile('pngout_in'));
109  file_put_contents($input, $asset->getContent());
110 
112  unlink($output);
113  $pb->add($output .= '.png');
114 
115  $proc = $pb->getProcess();
116  $code = $proc->run();
117 
118  if (0 !== $code) {
119  unlink($input);
120  throw FilterException::fromProcess($proc)->setInput($asset->getContent());
121  }
122 
123  $asset->setContent(file_get_contents($output));
124 
125  unlink($input);
126  unlink($output);
127  }
static createTemporaryFile($prefix)
Creates a temporary file.
static fromProcess(Process $proc)
$code
Definition: example_050.php:99
if(PHP_SAPI !='cli') color
Definition: langcheck.php:120
createProcessBuilder(array $arguments=array())
Creates a new process builder.
if(!is_dir( $entity_dir)) exit("Fatal Error ([A-Za-z0-9]+)\+" &#(? foreach( $entity_files as $file) $output
Create styles array
The data for the language used.
+ Here is the call graph for this function:

◆ filterLoad()

Assetic\Filter\PngoutFilter::filterLoad ( AssetInterface  $asset)

Filters an asset after it has been loaded.

Parameters
AssetInterface$assetAn asset

Implements Assetic\Filter\FilterInterface.

Definition at line 84 of file PngoutFilter.php.

85  {
86  }

◆ setBlockSplitThreshold()

Assetic\Filter\PngoutFilter::setBlockSplitThreshold (   $blockSplitThreshold)

Definition at line 79 of file PngoutFilter.php.

References Assetic\Filter\PngoutFilter\$blockSplitThreshold.

80  {
81  $this->blockSplitThreshold = $blockSplitThreshold;
82  }

◆ setColor()

Assetic\Filter\PngoutFilter::setColor (   $color)

Definition at line 64 of file PngoutFilter.php.

References Assetic\Filter\PngoutFilter\$color, and color.

65  {
66  $this->color = $color;
67  }
if(PHP_SAPI !='cli') color
Definition: langcheck.php:120

◆ setFilter()

Assetic\Filter\PngoutFilter::setFilter (   $filter)

Definition at line 69 of file PngoutFilter.php.

References Assetic\Filter\PngoutFilter\$filter.

70  {
71  $this->filter = $filter;
72  }

◆ setStrategy()

Assetic\Filter\PngoutFilter::setStrategy (   $strategy)

Definition at line 74 of file PngoutFilter.php.

References Assetic\Filter\PngoutFilter\$strategy.

75  {
76  $this->strategy = $strategy;
77  }

Field Documentation

◆ $blockSplitThreshold

Assetic\Filter\PngoutFilter::$blockSplitThreshold
private

Definition at line 52 of file PngoutFilter.php.

Referenced by Assetic\Filter\PngoutFilter\setBlockSplitThreshold().

◆ $color

Assetic\Filter\PngoutFilter::$color
private

Definition at line 49 of file PngoutFilter.php.

Referenced by Assetic\Filter\PngoutFilter\setColor().

◆ $filter

Assetic\Filter\PngoutFilter::$filter
private

Definition at line 50 of file PngoutFilter.php.

Referenced by Assetic\Filter\PngoutFilter\setFilter().

◆ $pngoutBin

Assetic\Filter\PngoutFilter::$pngoutBin
private

Definition at line 48 of file PngoutFilter.php.

Referenced by Assetic\Filter\PngoutFilter\__construct().

◆ $strategy

Assetic\Filter\PngoutFilter::$strategy
private

Definition at line 51 of file PngoutFilter.php.

Referenced by Assetic\Filter\PngoutFilter\setStrategy().

◆ COLOR_GRAY_ALPHA

const Assetic\Filter\PngoutFilter::COLOR_GRAY_ALPHA = '4'

Definition at line 30 of file PngoutFilter.php.

◆ COLOR_GREY

const Assetic\Filter\PngoutFilter::COLOR_GREY = '0'

Definition at line 27 of file PngoutFilter.php.

◆ COLOR_PAL

const Assetic\Filter\PngoutFilter::COLOR_PAL = '3'

Definition at line 29 of file PngoutFilter.php.

◆ COLOR_RGB

const Assetic\Filter\PngoutFilter::COLOR_RGB = '2'

Definition at line 28 of file PngoutFilter.php.

◆ COLOR_RGB_ALPHA

const Assetic\Filter\PngoutFilter::COLOR_RGB_ALPHA = '6'

Definition at line 31 of file PngoutFilter.php.

◆ FILTER_MIXED

const Assetic\Filter\PngoutFilter::FILTER_MIXED = '5'

Definition at line 39 of file PngoutFilter.php.

◆ FILTER_NONE

const Assetic\Filter\PngoutFilter::FILTER_NONE = '0'

Definition at line 34 of file PngoutFilter.php.

◆ FILTER_PAETH

const Assetic\Filter\PngoutFilter::FILTER_PAETH = '4'

Definition at line 38 of file PngoutFilter.php.

◆ FILTER_X

const Assetic\Filter\PngoutFilter::FILTER_X = '1'

Definition at line 35 of file PngoutFilter.php.

◆ FILTER_X_Y

const Assetic\Filter\PngoutFilter::FILTER_X_Y = '3'

Definition at line 37 of file PngoutFilter.php.

◆ FILTER_Y

const Assetic\Filter\PngoutFilter::FILTER_Y = '2'

Definition at line 36 of file PngoutFilter.php.

◆ STRATEGY_HUFFMAN_ONLY

const Assetic\Filter\PngoutFilter::STRATEGY_HUFFMAN_ONLY = '3'

Definition at line 45 of file PngoutFilter.php.

◆ STRATEGY_INTENSE

const Assetic\Filter\PngoutFilter::STRATEGY_INTENSE = '1'

Definition at line 43 of file PngoutFilter.php.

◆ STRATEGY_LONGEST_MATCH

const Assetic\Filter\PngoutFilter::STRATEGY_LONGEST_MATCH = '2'

Definition at line 44 of file PngoutFilter.php.

◆ STRATEGY_UNCOMPRESSED

const Assetic\Filter\PngoutFilter::STRATEGY_UNCOMPRESSED = '4'

Definition at line 46 of file PngoutFilter.php.

◆ STRATEGY_XTREME

const Assetic\Filter\PngoutFilter::STRATEGY_XTREME = '0'

Definition at line 42 of file PngoutFilter.php.


The documentation for this class was generated from the following file: