Laravel image intervention compression -


i have script saves , caches images intervention, , it's working 100%

however trying work out how can add 75% compression jpg & png files, don't know apply in situation.

i didn't think png files compressed apart software it, im not sure if same thing?

there example of compression here: http://image.intervention.io/api/save

/* ////////////////////// images //////////////////////// */ route::get( '/media/{size}/{crop}/{name}', function ( $size = null, $crop = null, $name = null ) {     if ( ! is_null( $size ) , ! is_null( $name ) , ! is_null( $crop ) ) {         $size = explode( 'x', $size );          $hours = 48;         $cache_length = $hours * 60;          switch ( $crop ) {              /*///////////////////////// no crop , change ratio */             case "0":                 $cache_image = image::cache( function ( $image ) use ( $size, $name ) {                     return $image->make( url( '/uploads/' . $name ) )->resize( $size[0], $size[1] )->sharpen(5);                 }, $cache_length);                 break;              /*///////////////////////// crop - no upsize */             default:             case "1":                 $cache_image = image::cache( function ( $image ) use ( $size, $name ) {                     return $image->make( url( '/uploads/' . $name ) )->fit( $size[0], $size[1], function ( $constraint ) {                         $constraint->upsize();                     } )->sharpen(5);                 }, $cache_length );                 break;              /*///////////////////////// crop - upsize */             case "2":                 $cache_image = image::cache( function ( $image ) use ( $size, $name ) {                     return $image->make( url( '/uploads/' . $name ) )->fit( $size[0], $size[1], function ( $constraint ) {                         //$constraint->upsize();                     } )->sharpen(5);                 }, $cache_length );                 break;              /*///////////////////////// no crop & add borders */             case "3":                  $cache_image = image::cache( function ( $image ) use ( $size, $name ) {                      $image->make( url( '/uploads/' . $name ) )->resize( $size[0], $size[1], function ( $constraint ) {                         $constraint->aspectratio();                         $constraint->upsize();                     } )->sharpen(5);                      $image->resizecanvas($size[0], $size[1], 'center', false, array(255, 255, 255, 0.0));                      return $image;                  }, $cache_length );                 break;              /*///////////////////////// no crop */             case "4":                 $cache_image = image::cache( function ( $image ) use ( $size, $name ) {                      $image->make( url( '/uploads/' . $name ) )->resize( $size[0], $size[1], function ( $constraint ) {                         $constraint->aspectratio();                         $constraint->upsize();                     } )->sharpen(5);                      //$image->resizecanvas($size[0], $size[1], 'center', false, array(255, 255, 255, 0.0));                      return $image;                  }, $cache_length );                 break;          }          return response::make( $cache_image, 200, [ 'content-type' => 'image' ] )->setmaxage(604800)->setpublic();      } else {         abort( 404 );     } } ); 

try encode() method, can specify format , quality (for jpg). so, everytime use cache, try this:

$cache_image = image::cache(function ($image) use ($size, $name) {      $image         ->make(...)         ->...        // other call image manipulation methods         ->encode('jpg', 75);      // ...      return $image; }); 

Comments