Categories: Php

PHP thumb creation and image merge

Share

PHP thumb uses the GD library to create thumbnails from images (jpeg, gif, png etc) on run time.

You can configure the output size and source will be entire image or a portion of original image.

PHP uses imagejpeg function which output image to browser or file.

Syntax:

bool imagejpeg ( resource $image [, string $filename [, int $quality ]] )

Return Values:

Returns TRUE on success and FALSE on failure.

Below are the two functions for thumbnail creation and merging two images.

Thumb creation:

<?php
function createThumbs( $pathToImages, $pathToThumbs, $thumbHeight, $fname )
{
$info = pathinfo($pathToImages . $fname);

if ( strtolower($info['extension']) == 'jpg' )
$img = imagecreatefromjpeg( "{$pathToImages}" );
if ( strtolower($info['extension']) == 'gif' )
$img = imagecreatefromgif( "{$pathToImages}" );
if ( strtolower($info['extension']) == 'png' )
$img = imagecreatefrompng( "{$pathToImages}" );

$width = imagesx( $img );
$height = imagesy( $img );

$new_height = $thumbHeight;
$new_width = floor( $width * ( $new_height / $height ) );

$tmp_img = imagecreatetruecolor( $new_width, $new_height );

imagecopyresized( $tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height );

if ( strtolower($info['extension']) == 'jpg' )
imagejpeg( $tmp_img, "{$pathToThumbs}{$fname}" );
if ( strtolower($info['extension']) == 'gif' )
imagegif( $tmp_img, "{$pathToThumbs}{$fname}" );
if ( strtolower($info['extension']) == 'png' )
imagepng( $tmp_img, "{$pathToThumbs}{$fname}" );
}
?>

Read Also: Read Gmail Emails using PHP & IMAP

Image merging:

<?php
function imagemerge($image1,$image2,$sizeW,$sizeH,$targetfile)
{
$image="images/white.jpg";
list($width1, $height1) = getimagesize($image1);
list($width2, $height2) = getimagesize($image2);

$aW1 = $width1;
$aH1 = $height1;

$aW2 = $width2;
$aH2 = $height2;

$info1 = pathinfo($image1);
$info2 = pathinfo($image2);

if ( strtolower($info1['extension']) == 'jpg' )
$photo = imagecreatefromjpeg($image1);
if ( strtolower($info1['extension']) == 'gif' )
$photo = imagecreatefromgif($image1);
if ( strtolower($info1['extension']) == 'png' )
$photo = imagecreatefrompng($image1);

if ( strtolower($info2['extension']) == 'jpg' )
$photo2 = imagecreatefromjpeg($image2);
if ( strtolower($info2['extension']) == 'gif' )
$photo2 = imagecreatefromgif($image2);
if ( strtolower($info2['extension']) == 'png' )
$photo2 = imagecreatefrompng($image2);

$photoFrame = imagecreatefromjpeg($image);
$fx1=($sizeW-$aW1)/2;
$fy1=($sizeH-$aH1)/2;

$fx2=$sizeW+($sizeW-$aW2)/2;
$fy2=($sizeH-$aH2)/2;

imagecopyresampled($photoFrame, $photo, $fx1, $fy1, 0, 0, $aW1, $aH1, $aW1, $aH1);
imagecopyresampled($photoFrame, $photo2, $fx2, $fy2, 0, 0, $aW2, $aH2, $aW2, $aH2);
imagejpeg($photoFrame, $targetfile);
}
?>

View Comments

    • Hi Riyaz,
      You need to call the function "imagemerge" with all parameters.
      Create a folder "images" in the same path and put an image called "white.jpg" just like "images/white.jpg".
      Then call the function:
      imagemerge('sample-1.jpg','sample-2.jpg',400,400,'final.jpg');
      You need to adjust the height and width as per white image.
      Thanks.

  • Sir I was try this with all parameters but its not work for me can you create this functions than send me a zip file
    Thanks you....

    • You need to put all there images in your file path.
      1) first image. 2) second image and 3) a simple white.jpg in images folder.
      Then call the function as below:
      imagemerge(‘sample-1.jpg’,’sample-2.jpg’,400,400,’final.jpg’);
      Thanks.

Recent Posts

Role Of Gojek Clone In Growth Campaigns For Your Business

When was the last time you heard that a clone app like Gojek could efficiently…

1 hour ago

How to Optimize Your E-Commerce Pages and Improve UX?

The e-commerce market is growing and evolving at a rapid pace. More and more people…

12 hours ago

Overview of Reputation, Services, and Features of IplWin

IplWin stands as a reliable and enthralling platform for Indian punters, offering a captivating blend…

3 days ago

Blogging Brilliance: Driving Traffic and Engagement with Quality Content

Introduction In today's online age, consumers are constantly bombarded with information. They crave valuable content…

3 days ago

How Assisted Living Gives Seniors More Freedom

In today’s rapidly aging society, finding a living situation that provides older adults with both…

3 days ago

Should you go for a Refurbished Mac?

If you wish to purchase a Mac, then it is strongly suggested to consider purchasing…

4 days ago