Maison > Article > développement back-end > Comment laisser PHP générer des vignettes de fichiers PSD via imagick (exemple)
ImageMagick est un ensemble d'outils et de développement puissant, stable et gratuit qui peut être utilisé pour lire, écrire et traiter des fichiers image dans plus de 185 formats de base, notamment les formats populaires TIFF, JPEG, GIF, PNG, PDF et PhotoCD et d'autres formats. . En utilisant ImageMagick, vous pouvez générer dynamiquement des images en fonction des besoins des applications Web. Vous pouvez également modifier la taille, faire pivoter, affiner, réduire la couleur ou ajouter des effets spéciaux à une image (ou un groupe d'images) et enregistrer les résultats dans le fichier. même format ou enregistrer dans d’autres formats.
Laissez PHP générer des vignettes de fichiers PSD via imagick
La première étape consiste à installer ImageMagick
Vous devez d'abord installer ImageMagick , car imagick est une extension PHP qui permet à PHP d'appeler la fonction ImageMagick. (La dernière version est : ImageMagick-6.8.9-5-Q16-x64-dll.exe)
Le répertoire d'installation ne peut pas avoir d'espaces. Je l'ai personnellement installé dans le répertoire racine du lecteur C :
.C:\ImageMagick
Il peut être installé par défaut jusqu'au bout. Une fois l'installation terminée, ouvrez l'interface de ligne de commande CMD, entrez : convertir et appuyez sur Entrée. Si vous voyez beaucoup de contenu, l'installation est réussie.
Si vous êtes invité à "convertir n'est pas une commande interne ou externe, un programme opérationnel ou un fichier de commandes" ou "Veuillez entrer la lettre du lecteur à convertir" (convertir est un système par défaut pour convertir FAT32 en commande NTFS), alors vous devez ajouter vous-même le chemin d'installation d'ImageMagick au chemin du système.
Mon ordinateur-> Clic droit-> Propriétés-> Avancé-> Variables système-> Ajoutez-y votre chemin d'installation.
Deuxième étape, installez imagick
Cliquez ici pour télécharger Veuillez faire attention à la version PHP correspondante lors du téléchargement. Notez également que le système. est 32 bits ou 64 bits, et si PHP est la version NTS ou la version TS (la dernière version stable est 3.1.2. Concernant la façon de déterminer si PHP est la version NTS ou la version TS, vous pouvez vérifier la sécurité des threads élément via phpinfo. S'il est activé, cela signifie que c'est la version TS, sinon c'est la version NTS)
Extraire le package compressé téléchargé, recherchez le fichier php_imagick.dll, placez-le dans le répertoire d'extension PHP, puis ouvrez le fichier php.ini et localisez-le à l'emplacement correspondant. Ajoutez la ligne suivante :
extension=php_imagick.dll
Enregistrez, quittez et redémarrez l'ordinateur pour vous assurer qu'il prend effet.
Si cela ne prend pas effet, copiez tous les fichiers "CORE_RL_*.dll" du package compressé dans le répertoire racine de php, tel que : D:php5.6
La troisième étape, vérifiez
Si tout est normal, vous devriez pouvoir voir l'élément imagick dans phpinfo après le redémarrage, comme :
S'il n'est pas trouvé, revenez à la première étape et passez à nouveau à une version différente d’ImageMagick. Installez et remettez en service.
La quatrième étape, tester
OK, à cette étape vous pouvez commencer à écrire du code. Je n'entrerai pas dans les détails du processus, allez simplement au code.
error_reporting(E_ERROR | E_WARNING); $im = new Imagick('1.psd'); $im->setImageIndex(0); $im->setIteratorIndex(0); $im->stripImage(); //去除图片信息 $im->setImageCompressionQuality(80); //图片质量 $im->writeImage('1.jpg');
Le code ci-dessus a été testé et peut générer correctement une image 1.jpg.
Il est recommandé que les vignettes soient au format jpg, car le format png ne prend pas en charge la compression. J'ai utilisé un fichier PSD de 30 Mo pendant le test, et la vignette png générée faisait plus de 3 Mo, alors que le jpg l'était. seulement environ 200 Ko, et la vitesse générée des images png est évidemment très lente, prenant environ 3 ou 4 secondes.
De plus, nous avons effectué un test extrême et utilisé un fichier PSD de près de 600 Mo pour générer des vignettes jpg. La vitesse était essentiellement de 2 secondes et la taille du fichier était inférieure à 2,5 Mo depuis la taille de l'image. n'a pas été modifié, la taille du fichier final généré peut donc être réduite en fonction de la situation réelle.
Étape 5, autres formats
En plus des fichiers PSD, j'ai également essayé d'autres formats, tels que MP4, AVI et d'autres formats vidéo, mais la vitesse de génération est super lent. Enfin, j'ai trouvé que le plus pratique est de générer des vignettes de fichiers PDF, mais avant de traiter des fichiers PDF, vous devez installer Ghostscript , puis le code global est fondamentalement le même que le code pour générer du PSD
$im = new Imagick(); $im->readImage('D:/soft/wamp/www/test/1.pdf[0]'); //echo $im->getNumberImages(); $im->writeImages('D:/soft/wamp/www/test/1.jpg', false);
Plus de php Pour des connaissances connexes, veuillez visiter le tutoriel php !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!