Bonjour à tous
Dans le cadre professionnel, je dois créer un script qui analysera une image(photo, affiche) afin d'évaluer un pourcentage de couleur. J'ai donc commencé à réaliser un script qui dans un premier cas récupère la largeur et la hauteur de l'image et récupère pour chaque pixel le hexa (je pense plutot m'orienter sur un rgb .
Ci dessous mon début de script:
Hors, vu que je ne vais pas pouvoir gérer et limiter la taille des fichiers à tester, le script peut parti en saturation de RAM. J'ai réalisé quelques recherches sur le multiprocess mais en php, j'ai vu que c'était chaud et un peu merdique. Je suis en train de me demander si le choix technique que j'ai fait est le mieux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <?php $filename='tmp/affiche.jpg'; if (exif_imagetype($filename) == IMAGETYPE_JPEG) { $im = imagecreatefromjpeg($filename); }elseif(exif_imagetype($filename) == IMAGETYPE_PNG) { $im = imagecreatefrompng($filename); } $imagew = imagesx($im); $imageh = imagesy($im); $tableauarray=array(); for ($y = 0; $y < $imageh; $y++) { for ($x = 0; $x < $imagew; $x++) { $color = imagecolorat($im, $x, $y); if($color){ $color = dechex($color); if(!array_key_exists("#" . $color, $tableauarray)) { $tableauarray += array("#" . $color => 1); }else{ $tableauarray["#" . $color] = $tableauarray["#" . $color]+1; } } } } print_r($tableauarray); ?>
J'ai pensé à d'autres techniques comme le redimensionnement de la photo à une certaine dimension (de façon proportionnelle) mais je ne sais pas si le pourcentage sera également modifié ou pas.
Je suis un peu perdu, pourriez vous m'orienter dans mes recherches. Je suis également prêt à recevoir toutes vos critiques.
Bonne soirée à tous et merci d'avance.
lemiranais
Partager