Resize an image
<?php
// Set the path to the image to resize
$input_image = "House.jpg";
// Get the size of the original image into an array
$size = getimagesize( $input_image );
// Set the new width of the image
$thumb_width = "200";
// Calculate the height of the new image to keep the aspect ratio
$thumb_height = ( int )(( $thumb_width/$size[0] )*$size[1] );
// Create a new true color image in the memory
$thumbnail = ImageCreateTrueColor( $thumb_width, $thumb_height );
// Create a new image from file
$src_img = ImageCreateFromJPEG( $input_image );
// Create the resized image
ImageCopyResampled( $thumbnail, $src_img, 0, 0, 0, 0, $thumb_width, $thumb_height, $size[0], $size[1] );
// Save the image as resized.jpg
ImageJPEG( $thumbnail, "resized.jpg" );
// Clear the memory of the tempory image
ImageDestroy( $thumbnail );
?>
Change a png to a jpg
Note: Any transparency is lost in this case as jpg does not support transparency
You can change from different formats by changing the imagecreatefrompng and the imagejpeg functions.
<?php
// Create a new image in the memory from the file
$png_image = imagecreatefrompng( "input.png" );
// Save the image as output.jpg
imagejpeg( $png_image, "output.jpg" );
// Clear the memory of the tempory image
imagedestroy( $png_image );
?>
Crop an image
<?php
// Crop dimensions.
$width = 100;
$height = 100;
// Set the path to the image to resize
$input_image = "House.jpg";
// Get the size of the original image into an array
$size = getimagesize( $input_image );
// Prepare canvas
$canvas = imagecreatetruecolor( $width, $height );
// Create a new image in the memory from the file
$cropped = imagecreatefromjpeg( $input_image );
// Prepare image crop - center the crop on the image
$newwidth = $size[0] / 2;
$newheight = $size[1] / 2;
$cropLeft = ( $newwidth/2 ) - ( $width/2 );
$cropHeight = ( $newheight/2 ) - ( $height/2 );
// Generate the cropped image
imagecopyresized( $canvas, $cropped, 0,0, $cropLeft, $cropHeight, $size[0], $size[1], $newwidth, $newheight );
// Save the cropped image as cropped.jpg
imagejpeg( $canvas, "cropped.jpg" );
// Clear the memory of the tempory images
imagedestroy( $canvas );
imagedestroy( $cropped );
?>
Rotate an image
<?php
// Set the path to the image to rotate
$input_image = "House.jpg";
//How many degrees you wish to rotate
$degrees = 180;
// Create the canvas
$canvas = imagecreatefromjpeg( $input_image ) ;
// Rotates the image
$rotate = imagerotate( $canvas, $degrees, 0 ) ;
// Save the image as output.jpg
imagejpeg( $rotate, "output.jpg" );
// Clear the memory of the tempory image
imagedestroy( $canvas );
?>
Watermark an image
<?php
// Create the canvas
$canvas = imagecreate( 200, 100 );
// Define the colours to use
$black = imagecolorallocate( $canvas, 0, 0, 0 );
$white = imagecolorallocate( $canvas, 255, 255, 255 );
// Create a rectangle and fill it white
imagefilledrectangle( $canvas, 0, 0, 200, 100, $white );
// The path to the font
$font = "verdana.ttf";
// The text to use
$text = "House";
// The font size
$size = "30";
// Set the path to the image to watermark
$input_image = "House.jpg";
// Calculate the size of the text
// If php has been setup without ttf support this will not work.
$box = imagettfbbox( $size, 0, $font, $text );
$x = (200 - ($box[2] - $box[0])) / 2;
$y = (100 - ($box[1] - $box[7])) / 2;
$y -= $box[7];
// Add the text to the image
imageTTFText( $canvas, $size, 0, $x, $y, $black, $font, $text );
// Make white transparent
imagecolortransparent ( $canvas, $white );
// Save the text image as temp.png
imagepng( $canvas, "temp.png" );
// Cleanup the tempory image canvas.png
ImageDestroy( $canvas );
// Read in the text watermark image
$watermark = imagecreatefrompng( "temp.png" );
// Returns the width of the given image resource
$watermark_width = imagesx( $watermark );
//Returns the height of the given image resource
$watermark_height = imagesy( $watermark );
$image = imagecreatetruecolor( $watermark_width, $watermark_height );
$image = imagecreatefromjpeg( $input_image );
// Find the size of the original image and read it into an array
$size = getimagesize( $input_image );
// Set the positions of the watermark on the image
$dest_x = $size[0] - $watermark_width - 100;
$dest_y = $size[1] - $watermark_height - 200;
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 50);
// Save the watermarked image as watermarked.jpg
imagejpeg( $image, "watermarked.jpg" );
// Clear the memory of the tempory image
imagedestroy( $image );
imagedestroy( $watermark );
// Delete the text watermark image
unlink( "temp.png");
?>
Create some text as an image
<?php
// Create the canvas
$canvas = imagecreate( 150, 80 );
// First colour - this will be the default colour for the canvas
$light_blue = imagecolorallocate( $canvas, 176, 226, 255 );
// The second colour - to be used for the text
$black = imagecolorallocate( $canvas, 0, 0, 0 );
// Path to the font you are going to use
$font = "verdana.ttf";
// Text to write
$text = "Text";
// Font size
$size = "40";
// Add the text to the canvas
imageTTFText( $canvas, $size, 0, 15, 60, $black, $font, $text );
// Save as Text.jpg
imagejpeg( $canvas, "Text.jpg" );
// Clear the memory of the tempory image
ImageDestroy( $canvas );
?>