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;
}
}
}