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
Post a Comment