return 'doesnt exists';
}
+ $baseoptimized = str_replace('%s', '', $optimized);
+
+ $notexists = !file_exists($baseoptimized);
+ if (!$notexists) {
+ $cleanerexpired = filemtime($baseoptimized) < filemtime('/usr/local/bin/svgcleaner');
+ $originalexpired = filemtime($baseoptimized) < filemtime($original);
+ } else {
+ $cleanerexpired = false;
+ $originalexpired = false;
+ }
+
$optimize = $force ||
- !file_exists($optimized) ||
- filemtime($optimized) < filemtime('/usr/local/bin/svgcleaner') ||
- filemtime($optimized) < filemtime($original);
+ $notexists ||
+ $cleanerexpired ||
+ $originalexpired;
+
+ if ($force) {
+ trigger_error('optimizeSVG forced');
+ }
+ if ($notexists) {
+ trigger_error('optimizeSVG not exists');
+ }
+ if ($cleanerexpired) {
+ trigger_error('optimizeSVG cleaner expired');
+ }
+ if ($originalexpired) {
+ trigger_error('optimizeSVG original expired');
+ }
if ($optimize) {
- $cmd = "/usr/local/bin/svgcleaner --allow-bigger-file --paths-coordinates-precision 3 --copy-on-error --stdout $original";
+ $cmd = "timeout -s 1 2 /usr/local/bin/svgcleaner --allow-bigger-file --paths-coordinates-precision 3 --copy-on-error --stdout $original";
$svg = `$cmd`;
+ if ($svg == '') {
+ $svg = file_get_contents($original);
+ }
$svg = substr_replace($svg, 'preserveAspectRatio="none" ', 5, 0);
- $fname = str_replace('%s', '', $optimized);
+ $fname = $baseoptimized;
file_put_contents($fname, $svg);
if (count($resolutions) > 0) {
}
public static function optimizeRaster($matches) {
-
+
return '<image />';
}
}
$time = $currenttime - $this->logtime;
$log = $step . ' | ' . round($time, 3) . 's' . "\n";
- $log = $step . ' | ' . round($time, 3) . 's' . "\n";
fwrite($this->logfp, $log);
fflush($this->logfp);
$this->logtime = $currenttime;
wsTools::optimizeSVG($orig, $opt);
wsTools::optimizeSVG($full, $fullopt, [150, 300]);
-
if (in_array($page, $this->config->vectorPages)) {
$this->vdir->copy(str_replace('%s', '-150', $fullopt), 'data/contents/p' . $page . '.svg');
} else {