I have the exact function with image resize on my site, but I would like to add the watermark to the same function, I tried with many options, but nothing worked. Can someone help me to add watermark function please
code as follow
function do_resize_image($file, $width = 0, $height = 0, $proportional = false, $output = 'file')
{
if($height <= 0 && $width <= 0)
{
return false;
}
$info = getimagesize($file);
$image = '';
$final_width = 0;
$final_height = 0;
list($width_old, $height_old) = $info;
if($proportional)
{
if ($width == 0) $factor = $height/$height_old;
elseif ($height == 0) $factor = $width/$width_old;
else $factor = min ( $width / $width_old, $height / $height_old);
$final_width = round ($width_old * $factor);
$final_height = round ($height_old * $factor);
if($final_width > $width_old && $final_height > $height_old)
{
$final_width = $width_old;
$final_height = $height_old;
}
}
else
{
$final_width = ( $width <= 0 ) ? $width_old : $width;
$final_height = ( $height <= 0 ) ? $height_old : $height;
}
switch($info[2])
{
case IMAGETYPE_GIF:
$image = imagecreatefromgif($file);
break;
case IMAGETYPE_JPEG:
$image = imagecreatefromjpeg($file);
break;
case IMAGETYPE_PNG:
$image = imagecreatefrompng($file);
break;
default:
return false;
}
$image_resized = imagecreatetruecolor( $final_width, $final_height );
if(($info[2] == IMAGETYPE_GIF) || ($info[2] == IMAGETYPE_PNG))
{
$trnprt_indx = imagecolortransparent($image);
if($trnprt_indx >= 0)
{
$trnprt_color = imagecolorsforindex($image, $trnprt_indx);
$trnprt_indx = imagecolorallocate($image_resized, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);
imagefill($image_resized, 0, 0, $trnprt_indx);
imagecolortransparent($image_resized, $trnprt_indx);
}
elseif($info[2] == IMAGETYPE_PNG)
{
imagealphablending($image_resized, false);
$color = imagecolorallocatealpha($image_resized, 0, 0, 0, 127);
imagefill($image_resized, 0, 0, $color);
imagesavealpha($image_resized, true);
}
}
imagecopyresampled($image_resized, $image, 0, 0, 0, 0, $final_width, $final_height, $width_old, $height_old);
switch( strtolower($output))
{
case 'browser':
$mime = image_type_to_mime_type($info[2]);
header("Content-type: $mime");
$output = NULL;
break;
case 'file':
$output = $file;
break;
case 'return':
return $image_resized;
break;
default:
break;
}
if(file_exists($output))
{
@unlink($output);
}
switch($info[2])
{
case IMAGETYPE_GIF:
imagegif($image_resized, $output);
break;
case IMAGETYPE_JPEG:
imagejpeg($image_resized, $output, 100);
break;
case IMAGETYPE_PNG:
imagepng($image_resized, $output);
break;
default:
return false;
}
return true;
}
this is how, i call this function at the time of uploading an image.
do_resize_image($myimgnew, "380", "265", false, $getset['imgdir']."/img/".$upload);
do_resize_image($myimgnew, "102", "72", false, $getset['imgdir']."/img2/".$upload);