Home >Backend Development >PHP Tutorial >Resize and Manipulate Images in PHP (With Examples)

Resize and Manipulate Images in PHP (With Examples)

William Shakespeare
William ShakespeareOriginal
2025-03-03 09:52:11404browse

This tutorial expands on basic PHP GD library image manipulation, building upon previous coverage of image loading, cropping, rotating, scaling, and flipping. We'll explore advanced techniques like capturing image output streams and embedding watermarks.

Previously, we examined imagejpeg() and imagegif() for image output. We can capture this output using functions like imagecreatefromjpeg(). For instance, imagejpeg() without a filename argument outputs a raw stream; ob_get_contents() captures this stream. This raw data can then be Base64 encoded. Conversely, a Base64 encoded image string can be decoded and used to create an image via imagecreatefromstring(). Here's how to save a Base64 encoded image:

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

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

This decodes the Base64 string, creates an image resource, and saves it as a JPEG.

Adding Watermarks

Watermarking is easily achieved with GD. This enhances image ownership and brand recognition.

<?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);
?>

This code loads the main image and watermark, scales the watermark to one-fifth the main image's width, and positions it using 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

This tutorial expands on previous GD functions, demonstrating advanced techniques. We covered stream manipulation and watermarking, offering practical applications for image processing in PHP. Experiment with these functions to create diverse image effects.

The above is the detailed content of Resize and Manipulate Images in PHP (With Examples). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:How to Sort Arrays in PHPNext article:How to Sort Arrays in PHP