Здравствуйте, нужна помощь со скриптом наложения watermark. Нужно сделать что бы знак накладывался по центру фотки а не справа внизу подскажите что нужно исправить в коде. Если нужна конкретная доработка готов заплатить.
// накладывает знак на изображение
function watermark($znak, $goto, $name, $orig){
$file_dimensions = @getimagesize($orig);
$file_width = $file_dimensions[0];
$file_height = $file_dimensions[1];
$file_ext = strtolower(str_replace(".", "", strrchr($orig, ".")));
switch($file_ext) {
case "gif":
$name = imagecreatetruecolor($file_width, $file_height);
$img = imagecreatefromgif($orig);
$ramka = imagecreatefrompng($znak);
for($i=0; $i<256; $i++) { imagecolorallocate($name, 255, 255, 255); }
imagecopyresampled($name, $img, 0, 0, 0, 0, $file_width, $file_height, $file_width, $file_height);
imagecopyresampled($name, $ramka, $file_width-350, $file_height-80, 0, 0, 350, 80, 350, 80);
imagejpeg($name, $goto, 100);
ImageDestroy($img);
ImageDestroy($name);
break;
case "jpeg":
case "jpg":
$name = imagecreatetruecolor($file_width, $file_height);
$img = imagecreatefromjpeg($orig);
$ramka = imagecreatefrompng($znak);
for($i=0; $i<256; $i++) { imagecolorallocate($name, 255, 255, 255); }
imagecopyresampled($name, $img, 0, 0, 0, 0, $file_width, $file_height, $file_width, $file_height);
imagecopyresampled($name, $ramka, $file_width-350, $file_height-80, 0, 0, 350, 80, 350, 80);
imagejpeg($name, $goto, 100);
ImageDestroy($img);
ImageDestroy($name);
break;
}
}
function upload_screen_thumb($file, $screen, $file_maxdim) {
$file_type = explode(",", str_replace(" ", "", strtolower("image/jpeg, image/jpg, image/jpe, image/pjpeg, image/pjpg, image/x-jpeg, x-jpg, image/gif, image/x-gif, image/png, image/x-png")));
$file_name = $_FILES[$file]['name'];
$file_type = strtolower($_FILES[$file]['type']);
$file_size = $_FILES[$file]['size'];
$file_tempname = $_FILES[$file]['tmp_name'];
$file_error = $_FILES[$file]['error'];
$file_ext = strtolower(str_replace(".", "", strrchr($file_name, ".")));
$file_dimensions = @getimagesize($file_tempname);
$file_width = $file_dimensions[0];
$file_height = $file_dimensions[1];
if($file_width > $file_height){
$out_height = ($file_width / $file_maxdim);
$width = $file_maxdim;
$height = ($file_height / $out_height);
}else{
$out_width = ($file_height / $file_maxdim);
$height = $file_maxdim;
$width = ($file_width / $out_width);
}
if($width > $height){
$tb = ($file_maxdim - $height) / 2;
$rlb = 0;
}
if($height > $width){
$rlb = ($file_maxdim - $width) / 2;
$tb = 0;
}
switch($file_ext) {
case "gif":
$file = imagecreatetruecolor($file_maxdim, $file_maxdim);
$new = imagecreatefromgif($file_tempname);
$kek=imagecolorallocate($file, 255, 0, 120);
imagefill($file,0,0,$kek);
imagecopyresampled($file, $new, $rlb, $tb, 0, 0, $width, $height, $file_width, $file_height);
imagejpeg($file, $screen, 100);
ImageDestroy($new);
ImageDestroy($file);
//$res = move_uploaded_file($file_tempname, $screen);
//echo $screen;
break;
case "bmp":
$file = imagecreatetruecolor($file_maxdim, $file_maxdim);
$new = imagecreatefrombmp($file_tempname);
$kek=imagecolorallocate($file, 255, 0, 120);
imagefill($file,0,0,$kek);
imagecopyresampled($file, $new, $rlb, $tb, 0, 0, $width, $height, $file_width, $file_height);
imagejpeg($file, $screen, 100);
ImageDestroy($new);
ImageDestroy($file);
break;
case "jpeg":
case "jpg":
$file = imagecreatetruecolor($file_maxdim, $file_maxdim);
$new = imagecreatefromjpeg($file_tempname);
$kek=imagecolorallocate($file, 255, 0, 120);
imagefill($file,0,0,$kek);
imagecopyresampled($file, $new, $rlb, $tb, 0, 0, $width, $height, $file_width, $file_height);
imagejpeg($file, $screen, 100);
ImageDestroy($new);
ImageDestroy($file);
break;
case "png":
$file = imagecreatetruecolor($file_maxdim, $file_maxdim);
imagealphablending($file, false);
imagesavealpha($file,true);
$transparent = imagecolorallocatealpha($file, 255, 0, 120, 127);
$new = imagecreatefrompng($file_tempname);
imagefilledrectangle($file, 0, 0, $file_maxdim, $file_maxdim, $transparent);
imagecopyresampled($file, $new, 0, 0, 0, 0, $file_maxdim, $file_maxdim, $file_width, $file_height);
imagepng($file, $screen);
ImageDestroy($new);
ImageDestroy($file);
break;
}
}
// накладывает знак на изображение
function watermark($znak, $goto, $name, $orig){
$file_dimensions = @getimagesize($orig);
$file_width = $file_dimensions[0];
$file_height = $file_dimensions[1];
$file_ext = strtolower(str_replace(".", "", strrchr($orig, ".")));
switch($file_ext) {
case "gif":
$name = imagecreatetruecolor($file_width, $file_height);
$img = imagecreatefromgif($orig);
$ramka = imagecreatefrompng($znak);
for($i=0; $i<256; $i++) { imagecolorallocate($name, 255, 255, 255); }
imagecopyresampled($name, $img, 0, 0, 0, 0, $file_width, $file_height, $file_width, $file_height);
imagecopyresampled($name, $ramka, $file_width-350, $file_height-80, 0, 0, 350, 80, 350, 80);
imagejpeg($name, $goto, 100);
ImageDestroy($img);
ImageDestroy($name);
break;
case "jpeg":
case "jpg":
$name = imagecreatetruecolor($file_width, $file_height);
$img = imagecreatefromjpeg($orig);
$ramka = imagecreatefrompng($znak);
for($i=0; $i<256; $i++) { imagecolorallocate($name, 255, 255, 255); }
imagecopyresampled($name, $img, 0, 0, 0, 0, $file_width, $file_height, $file_width, $file_height);
imagecopyresampled($name, $ramka, $file_width-350, $file_height-80, 0, 0, 350, 80, 350, 80);
imagejpeg($name, $goto, 100);
ImageDestroy($img);
ImageDestroy($name);
break;
}
}
function upload_screen_thumb($file, $screen, $file_maxdim) {
$file_type = explode(",", str_replace(" ", "", strtolower("image/jpeg, image/jpg, image/jpe, image/pjpeg, image/pjpg, image/x-jpeg, x-jpg, image/gif, image/x-gif, image/png, image/x-png")));
$file_name = $_FILES[$file]['name'];
$file_type = strtolower($_FILES[$file]['type']);
$file_size = $_FILES[$file]['size'];
$file_tempname = $_FILES[$file]['tmp_name'];
$file_error = $_FILES[$file]['error'];
$file_ext = strtolower(str_replace(".", "", strrchr($file_name, ".")));
$file_dimensions = @getimagesize($file_tempname);
$file_width = $file_dimensions[0];
$file_height = $file_dimensions[1];
if($file_width > $file_height){
$out_height = ($file_width / $file_maxdim);
$width = $file_maxdim;
$height = ($file_height / $out_height);
}else{
$out_width = ($file_height / $file_maxdim);
$height = $file_maxdim;
$width = ($file_width / $out_width);
}
if($width > $height){
$tb = ($file_maxdim - $height) / 2;
$rlb = 0;
}
if($height > $width){
$rlb = ($file_maxdim - $width) / 2;
$tb = 0;
}
switch($file_ext) {
case "gif":
$file = imagecreatetruecolor($file_maxdim, $file_maxdim);
$new = imagecreatefromgif($file_tempname);
$kek=imagecolorallocate($file, 255, 0, 120);
imagefill($file,0,0,$kek);
imagecopyresampled($file, $new, $rlb, $tb, 0, 0, $width, $height, $file_width, $file_height);
imagejpeg($file, $screen, 100);
ImageDestroy($new);
ImageDestroy($file);
//$res = move_uploaded_file($file_tempname, $screen);
//echo $screen;
break;
case "bmp":
$file = imagecreatetruecolor($file_maxdim, $file_maxdim);
$new = imagecreatefrombmp($file_tempname);
$kek=imagecolorallocate($file, 255, 0, 120);
imagefill($file,0,0,$kek);
imagecopyresampled($file, $new, $rlb, $tb, 0, 0, $width, $height, $file_width, $file_height);
imagejpeg($file, $screen, 100);
ImageDestroy($new);
ImageDestroy($file);
break;
case "jpeg":
case "jpg":
$file = imagecreatetruecolor($file_maxdim, $file_maxdim);
$new = imagecreatefromjpeg($file_tempname);
$kek=imagecolorallocate($file, 255, 0, 120);
imagefill($file,0,0,$kek);
imagecopyresampled($file, $new, $rlb, $tb, 0, 0, $width, $height, $file_width, $file_height);
imagejpeg($file, $screen, 100);
ImageDestroy($new);
ImageDestroy($file);
break;
case "png":
$file = imagecreatetruecolor($file_maxdim, $file_maxdim);
imagealphablending($file, false);
imagesavealpha($file,true);
$transparent = imagecolorallocatealpha($file, 255, 0, 120, 127);
$new = imagecreatefrompng($file_tempname);
imagefilledrectangle($file, 0, 0, $file_maxdim, $file_maxdim, $transparent);
imagecopyresampled($file, $new, 0, 0, 0, 0, $file_maxdim, $file_maxdim, $file_width, $file_height);
imagepng($file, $screen);
ImageDestroy($new);
ImageDestroy($file);
break;
}
}
