Maison  >  Article  >  développement back-end  >  Compétences en traitement d'images pour le développement PHP dans les mini-programmes WeChat

Compétences en traitement d'images pour le développement PHP dans les mini-programmes WeChat

WBOY
WBOYoriginal
2023-06-02 08:03:161440parcourir

Avec la popularité des smartphones et le développement d'Internet, la demande d'applications mobiles continue d'augmenter et les mini-programmes WeChat sont devenus le premier choix de plus en plus d'entreprises pour développer des applications mobiles. Parmi elles, le traitement d’images est l’une des fonctions fréquemment utilisées dans le développement d’applets. Cet article combinera la technologie PHP pour présenter quelques techniques de développement de traitement d'image dans les mini-programmes WeChat.

1. Utilisez la bibliothèque GD de PHP

La bibliothèque GD est une bibliothèque graphique open source utilisée pour traiter les fichiers image, prenant en charge les images au format JPEG, PNG, GIF et autres formats. Il existe une bibliothèque GD intégrée à PHP, nous pouvons donc facilement utiliser cette bibliothèque pour traiter des images. Ce qui suit est un code simple pour télécharger une image dans l'applet WeChat, la compresser et la stocker sur le serveur.

<?php
// 上传图片
$tmp_file = $_FILES['file']['tmp_name'];
$target_file = 'upload/' . $_FILES['file']['name'];
move_uploaded_file($tmp_file, $target_file);

// 压缩图片
$src = imagecreatefromjpeg($target_file);
$dst = imagecreatetruecolor(640, 640);
imagecopyresampled($dst, $src, 0, 0, 0, 0, 640, 640, imagesx($src), imagesy($src));
imagejpeg($dst, 'upload/compressed.jpg');

// 输出结果
header('Content-Type: application/json');
echo json_encode(array(
    'status' => 'success',
    'url' => 'http://yourdomain.com/' . $target_file,
    'compressed_url' => 'http://yourdomain.com/upload/compressed.jpg',
));
?>

Dans le code ci-dessus, nous utilisons d'abord la fonction move_uploaded_file pour stocker l'image téléchargée sur le serveur. Ensuite, nous utilisons la bibliothèque GD de PHP pour compresser l'image. Dans cet exemple, nous compressons l'image en une vignette de 640 x 640. Enfin, nous générons les données au format JSON, qui contiennent l'URL du fichier téléchargé et l'URL du fichier compressé.

2. Utiliser des bibliothèques tierces

Bien que la bibliothèque GD de PHP puisse facilement implémenter des fonctions de traitement d'image, pour certaines exigences avancées de traitement d'image, nous devrons peut-être utiliser des bibliothèques tierces. Voici quelques bibliothèques de traitement d’images PHP couramment utilisées.

  1. Imagine

Imagine est une excellente bibliothèque de traitement d'image PHP qui fournit presque toutes les fonctions de traitement d'image couramment utilisées, notamment le redimensionnement, le recadrage, la rotation, les filtres, etc. Il fournit également une API facile à utiliser qui peut être facilement intégrée à nos applications PHP. Vous trouverez ci-dessous un exemple de code pour télécharger une image et la compresser à l'aide de la bibliothèque Imagine.

<?php
use ImagineGdImagine;
use ImagineImageBox;
use ImagineImageImageInterface;

// 上传图片
$tmp_file = $_FILES['file']['tmp_name'];
$target_file = 'upload/' . $_FILES['file']['name'];
move_uploaded_file($tmp_file, $target_file);

// 压缩图片
$imagine = new Imagine();
$image = $imagine->open($target_file);
$image->resize(new Box(640, 640))->save('upload/compressed.jpg', array('quality' => 80));

// 输出结果
header('Content-Type: application/json');
echo json_encode(array(
    'status' => 'success',
    'url' => 'http://yourdomain.com/' . $target_file,
    'compressed_url' => 'http://yourdomain.com/upload/compressed.jpg',
));
?>

Le code ci-dessus utilise la méthode de l'espace de noms pour présenter la bibliothèque Imagine. Vous pouvez voir que le code est plus concis et plus facile à lire. Nous utilisons l'API de la bibliothèque Imagine pour ouvrir, redimensionner et enregistrer des images compressées.

  1. ImageMagick

ImageMagick est un puissant outil de traitement d'image, complexe et flexible à utiliser. Si nous devons effectuer des travaux de traitement d'image complexes, tels que la génération dynamique d'images GIF, la transformation graphique, etc., nous pouvons envisager d'utiliser ImageMagick. Vous trouverez ci-dessous un exemple de code utilisant la bibliothèque ImageMagick.

<?php
// 上传图片
$tmp_file = $_FILES['file']['tmp_name'];
$target_file = 'upload/' . $_FILES['file']['name'];
move_uploaded_file($tmp_file, $target_file);

// 压缩图片
exec('convert ' . $target_file . ' -resize 640x640 -quality 80 upload/compressed.jpg');

// 输出结果
header('Content-Type: application/json');
echo json_encode(array(
    'status' => 'success',
    'url' => 'http://yourdomain.com/' . $target_file,
    'compressed_url' => 'http://yourdomain.com/upload/compressed.jpg',
));
?>

Le code ci-dessus utilise la fonction exec pour appeler le programme de ligne de commande du système d'exploitation convert afin d'effectuer des opérations de traitement d'image.

3. Résumé

Cet article présente les compétences requises pour utiliser PHP pour développer le traitement d'images dans les mini-programmes WeChat. Nous pouvons utiliser la bibliothèque GD de PHP pour simplement implémenter certains besoins courants en matière de traitement d'images, tels que la compression, les vignettes, etc. Pour certains besoins avancés de traitement d'images, nous pouvons choisir d'utiliser d'excellentes bibliothèques tierces, telles que Imagine et ImageMagick. Bien entendu, vous devez choisir la bibliothèque appropriée à utiliser en fonction de la situation réelle.

En tant que l'une des fonctions courantes dans le développement d'applications mobiles, le traitement d'images a beaucoup de contenu technique. Cet article n'est qu'une introduction d'entrée de gamme. J'espère qu'il pourra fournir une référence aux lecteurs.

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