Extraire des images▲
Lors d'échanges sur le forum, @objectifweb un posteur, nous a soumis une difficulté qu'il rencontrait, c'est-à-dire extraire des photos d'un fichier existant.
Il nous a orienté vers une solution, que l'on peut retrouver dans les archives de PHPExcel. À la lecture d'un fichier Excel, une des méthodes qui recense les images est getDrawingCollection(). Dans un premier temps, créer un répertoire /images pour réceptionner toutes les images, ensuite il faut boucler sur getDrawingCollection() et créer les images avec la fonction image/jpeg/gif() de PHP
Sélectionnez
$objet1 = new PHPExcel_Reader_Excel5();
$excel1 = $objet1->load('Exemple14.xls');
$sheet1 = $excel1->getSheet(0);
foreach ($sheet1->getDrawingCollection() as $drawing) {
// $drawing->getCoordinates();
// we have an ordinary drawing (case xlsx)
if ($drawing instanceof PHPExcel_Worksheet_Drawing) {
$filename = $drawing->getPath();
copy($filename, 'images/' . $drawing->getIndexedFilename());
// we have a memory drawing (case xls)
} else if ($drawing instanceof PHPExcel_Worksheet_MemoryDrawing) {
$image = $drawing->getImageResource();
// save image to disk
$renderingFunction = $drawing->getRenderingFunction();
switch ($renderingFunction) {
case PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG:
imagejpeg($image, 'images/' . $drawing->getIndexedFilename());
break;
case PHPExcel_Worksheet_MemoryDrawing::RENDERING_GIF:
imagegif($image, 'images/' . $drawing->getIndexedFilename());
break;
case PHPExcel_Worksheet_MemoryDrawing::RENDERING_PNG:
case PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT:
imagepng($image, 'images/' . $drawing->getIndexedFilename());
break;
}
}
}


