Maison >développement back-end >tutoriel php >Redimensionner et manipuler des images en php (avec des exemples)

Redimensionner et manipuler des images en php (avec des exemples)

William Shakespeare
William Shakespeareoriginal
2025-03-03 09:52:11404parcourir

Ce tutoriel étend la manipulation de base de l'image de la bibliothèque de bibliothèque PHP GD, en s'appuyant sur la couverture précédente du chargement, du recadrage, de la rotation, de la mise à l'échelle et du retournement. Nous explorerons des techniques avancées comme la capture des flux de sortie d'image et l'intégration des filigranes.

Auparavant, nous avons examiné imagejpeg() et imagegif() pour la sortie de l'image. Nous pouvons capturer cette sortie en utilisant des fonctions comme imagecreatefromjpeg(). Par exemple, imagejpeg() sans argument de nom de fichier sortira un flux brut; ob_get_contents() capture ce flux. Ces données brutes peuvent ensuite être encodées de la base64. Inversement, une chaîne d'image codée Base64 peut être décodée et utilisée pour créer une image via imagecreatefromstring(). Voici comment enregistrer une image codée Base64:

<?php
$image_data = base64_decode($image_data_base64);
$img = imagecreatefromstring($image_data);

imagejpeg($img, 'profile.jpg');
imagedestroy($img);
?>

Cela décode la chaîne Base64, crée une ressource d'image et l'enregistre comme un jpeg.

Ajout de filigranes

Le filigrane est facilement réalisé avec GD. Cela améliore la propriété de l'image et la reconnaissance de la marque.

<?php
$im_php = imagecreatefromjpeg('waterfall.jpg');
$watermark = imagecreatefrompng('watermark.png');
$im_width = imagesx($im_php);
$im_height = imagesy($im_php);

$watermark = imagescale($watermark, $im_width/5);
$wt_width = imagesx($watermark);
$wt_height = imagesy($watermark);

imagecopy($im_php, $watermark, 0.95*$im_width - $wt_width, 0.95*$im_height - $wt_height, 0, 0, $wt_width, $wt_height);

$new_name = 'waterfall-watermark.jpg';
imagejpeg($im_php, $new_name);
?>

Ce code charge l'image principale et le filigrane, met à l'échelle le filigrane à un cinquième de la largeur de l'image principale et le positionne en utilisant imagecopy(). Dynamic watermark resizing ensures proper scaling regardless of the main image's dimensions.

Resize and Manipulate Images in PHP (With Examples)

Beyond watermarks, metadata like location or timestamp can be similarly incorporated.

Conclusion

Ce tutoriel développe les fonctions GD précédentes, démontrant des techniques avancées. Nous avons couvert la manipulation des cours d'eau et le filigrane, offrant des applications pratiques pour le traitement d'image en PHP. Expérimentez ces fonctions pour créer divers effets d'image.

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