Maison  >  Article  >  développement back-end  >  Tutoriel sur la génération de vignettes de fichiers PSD avec PHP

Tutoriel sur la génération de vignettes de fichiers PSD avec PHP

*文
*文original
2017-12-25 14:06:352459parcourir

Cet article présente principalement comment utiliser PHP pour générer des vignettes de fichiers PSD, principalement en utilisant imagick. Cet article explique comment installer ImageMagick, installer imagick, vérifier si l'installation a réussi, générer des vignettes de fichiers PSD, etc. J'espère qu'il sera utile à tout le monde.

Première étape, installez ImageMagick

Vous devez d'abord installer ImageMagick http://imagemagick.org/script/binary-releases.php#windows, car imagick est a Une extension PHP qui permet à PHP d'appeler les fonctions 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. 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-> Cliquez avec le bouton 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 noter que lors du téléchargement, vous devez télécharger la version PHP correspondante et faire attention à savoir si le système est 32 bits ou 64 bits, et PHP est-il 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)

Décompressez 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 ajoutez la ligne suivante à l'emplacement correspondant :

extension=php_imagick.dll

Enregistrez et quittez et redémarrez votre ordinateur pour vous assurer que cela prend effet.

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, tel que :

S'il n'est pas trouvé, revenez à la première étape, passez à une version différente d'ImageMagick, réinstallez et re-débogez.

Étape 4, Test

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(&#39;1.psd&#39;);
$im->setImageIndex(0);
$im->setIteratorIndex(0);
$im->stripImage(); //去除图片信息
$im->setImageCompressionQuality(80); //图片质量
$im->writeImage(&#39;1.jpg&#39;);

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 lors du 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 de génération de PSD

$im = new Imagick();
$im->readImage(&#39;D:/soft/wamp/www/test/1.pdf[0]&#39;);
//echo $im->getNumberImages();
$im->writeImages(&#39;D:/soft/wamp/www/test/1.jpg&#39;, false);

Recommandations associées :

Qu'est-ce que la bibliothèque GD ? Introduction détaillée au chargement de la bibliothèque GD en PHP

(Avancé) Technologie de traitement d'image PHP - Bibliothèque GD

Analyse approfondie de la vulnérabilité d'exécution de la commande ImageMagick

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn