Fent ús del package Intervention, redimensionar imatges recursivament en directoris aniuats amb Laravel.
/**
* resizing all images recursively in all directories in /storage/app/public/
*/
try {
$this->info("LIST OF DIRECTORIES AND FILES AFFECTED\n--------------------------------------");
foreach (Storage::directories('public') as $directory) { // -> '/storage/app/public/'
$this->info($directory);
$files = Storage::allFiles($directory);
$i = 1;
foreach ($files as $file) {
$dir = substr($file, 0, strrpos($file, "/"));
$this->info($file);
$img = Image::make('storage/app/'.$file);
$this->info($img);
echo "Image " . $i . " OLD size: ".$img->filesize();
$img->resize(400, 300, function ($constraint) { $constraint->aspectRatio(); })
->save(storage_path('app/' . $dir . '/new_name_'.$i.'.jpg'));
echo " NEW size: ".$img->filesize() . "\n";
$i++;
}
}
} catch (\Exception $e) {
$this->info($e->getMessage());
}
Comentaris
Publica un comentari a l'entrada