smartResize() public method

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);
 }
Example #2
0
$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);