This function is basically equivalent to:
$optim == true: mogrify -path OUTPUT_PATH -filter Triangle -define filter:support=2.0 -thumbnail OUTPUT_WIDTH -unsharp 0.25x0.08+8.3+0.045 -dither None -posterize 136 -quality 82 -define jpeg:fancy-upsampling=off -define png:compression-filter=5 -define png:compression-level=9 -define png:compression-strategy=1 -define png:exclude-chunk=all -interlace none -colorspace sRGB INPUT_PATH
$optim == false: mogrify -path OUTPUT_PATH -filter Triangle -define filter:support=2.0 -thumbnail OUTPUT_WIDTH -unsharp 0.25x0.25+8+0.065 -dither None -posterize 136 -quality 82 -define jpeg:fancy-upsampling=off -define png:compression-filter=5 -define png:compression-level=9 -define png:compression-strategy=1 -define png:exclude-chunk=all -interlace none -colorspace sRGB -strip INPUT_PATH
public smartResize ( integer $columns, integer $rows, boolean $optim = false ) | ||
$columns | integer | The number of columns in the output image. 0 = maintain aspect ratio based on $rows. |
$rows | integer | The number of rows in the output image. 0 = maintain aspect ratio based on $columns. |
$optim | boolean | Whether you intend to perform optimization on the resulting image. Note that setting this to `true` doesn’t actually perform any optimization. |
private function optimize($imagePath) { chmod($imagePath, 0777); $image = new Respimg($imagePath); $width = getimagesize($imagePath); if ($width > 54) { $width = 54; } $image->smartResize($width, 0, true); $image->cropImage($width, $width, 0, 0); $image->writeImage($imagePath); Respimg::optimize($imagePath, 0, 1, 1, 1); }
$path_raster_i = __DIR__ . '/assets/raster'; $path_raster_o = __DIR__ . '/generated/default/raster'; $path_svg_i = __DIR__ . '/assets/svg'; $path_svg_o = __DIR__ . '/generated/default/svg'; // widths $widths = array(320, 640, 1280); // resize raster inputs if ($dir = opendir($path_raster_i)) { while (($file = readdir($dir)) !== false) { $base = pathinfo($file, PATHINFO_BASENAME); $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); if (in_array($ext, $exts)) { foreach ($widths as $w) { echo 'Resizing ' . $file . ' to ' . $w . '…'; $image = new Respimg($path_raster_i . '/' . $file); $image->smartResize($w, 0, true); $image->writeImage($path_raster_o . '/' . $base . '-w' . $w . '.' . $ext); echo "OK\n"; } } } } // rasterize SVGs if ($dir = opendir($path_svg_i)) { while (($file = readdir($dir)) !== false) { $base = pathinfo($file, PATHINFO_BASENAME); $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); if ($ext === 'svg') { foreach ($widths as $w) { echo 'Rasterizing ' . $file . ' to ' . $w . '…'; Respimg::rasterize($path_svg_i . '/' . $file, $path_svg_o . '/', $w, 0);