PHP
2014.07.10 16:17

Simple GD example

조회 수 9323 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

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_img0000$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/) - ( $width/);
$cropHeight = ( $newheight/) - ( $height/);
// Generate the cropped image
imagecopyresized$canvas$cropped0,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) ;
// 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 imagecreate200100 );  
// Define the colours to use
$black imagecolorallocate$canvas00);  
$white imagecolorallocate$canvas255255255 );  
// Create a rectangle and fill it white
imagefilledrectangle$canvas00200100$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$size0$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$size0$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_y00$watermark_width$watermark_height50);   
// 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 imagecreate15080 );
// First colour - this will be the default colour for the canvas
$light_blue imagecolorallocate$canvas176226255 );
// The second colour - to be used for the text
$black imagecolorallocate$canvas00);
// 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$size01560$black$font$text );
// Save as Text.jpg
imagejpeg$canvas"Text.jpg" );
// Clear the memory of the tempory image 
ImageDestroy$canvas );
?>