X
Бесплатный конструктор сайтов и онлайн сервисы

Телефон:

+7 (499) 40 99 683

Программа для водяных знаков

Ниже приведён код программы на php, которая формирует картинку из двух исходных:

 <?php
  if (!isset($_POST["picid"])) $picid=""; else $picid=$_POST["picid"];
  if (!isset($_POST["picext1"])) $picext1=""; else $picext1=$_POST["picext1"];
  if (!isset($_POST["picext2"])) $picext2=""; else $picext2=$_POST["picext2"];      
  if (!isset($_POST["alfa"])) $alfa=""; else $alfa=$_POST["alfa"];  
  if (!isset($_POST["position"])) $position=""; else $position=$_POST["position"];    
  if (!isset($_POST["width1"])) $width1=""; else $width1=$_POST["width1"];    
  if (!isset($_POST["width2"])) $width2=""; else $width2=$_POST["width2"];    
  if (!isset($_POST["height1"])) $height1=""; else $height1=$_POST["height1"];    
  if (!isset($_POST["height2"])) $height2=""; else $height2=$_POST["height2"];      
  if ($alfa>0 && $alfa<101) {
  switch ($picext1) {
   case ".gif": $img1=imagecreatefromgif(PATH."img/one_".$picid.$picext1); break;
   case ".jpg": $img1=imagecreatefromjpeg(PATH."img/one_".$picid.$picext1); break;
   case ".png": $img1=imagecreatefrompng(PATH."img/one_".$picid.$picext1); break;
                    }
  switch ($picext2) {
   case ".gif": $img2=imagecreatefromgif(PATH."img/two_".$picid.$picext2); break;
   case ".jpg": $img2=imagecreatefromjpeg(PATH."img/two_".$picid.$picext2); break;
   case ".png": $img2=imagecreatefrompng(PATH."img/two_".$picid.$picext2); break;
                    }
  $sizes = getimagesize(PATH."img/one_".$picid.$picext1);
  $width0 = $sizes[0];  $height0 = $sizes[1]; 
  $sizes = getimagesize(PATH."img/two_".$picid.$picext2);
  $width = $sizes[0];  $height = $sizes[1];
  if ($width2!=$width || $height2!=$height) {
   if ($width2!=$width && $height2==$height) {
    $mw=($width/$width2);
    $height2=round($height2/$mw); 
                                             } else {
    $mw=($height/$height2);
    $width2=round($width2/$mw);  
                                                    }
   $newimg2 = ImageCreateTrueColor($width2,$height2);  
   imagecopyresampled($newimg2,$img2,0,0,0,0,$width2,$height2,$width,$height);  
                                            }
  if ($width1!=$width0 && $height1==$height0) {
   $mw=($width0/$width1);
   $height1=round($height1/$mw); 
                                              } elseif ($height1!=$height0) {
   $mw=($height0/$height1);
   $width1=round($width1/$mw);  
                                                                            }
  $resimg = ImageCreateTrueColor($width1,$height1);  
  imagecopyresampled($resimg,$img1,0,0,0,0,$width1,$height1,$width0,$height0);   
  $left=0; $top=0; 
  switch ($position) {
   case "righttop": $top=0; $left=$width1-$width2-1; break;
   case "leftbottom": $left=0; $top=$height1-$height2-1; break;   
   case "rightbottom": $left=$width1-$width2-1; $top=$height1-$height2-1; break;   
   case "center": $left=floor(($width1-$width2)/2)-1; $top=floor(($height1-$height2)/2)-1; break;      
   
                     }
  for ($i=0;$i<$width2;$i++) {
   for ($j=0;$j<$height2;$j++) {
    $rgb = imagecolorat($resimg, $left+$i, $top+$j);
    $r0 = ($rgb >> 16) & 0xFF;
    $g0 = ($rgb >> 8) & 0xFF;
    $b0 = $rgb & 0xFF;
    if ($width2!=$width || $height2!=$height) $rgb = imagecolorat($newimg2, 0+$i, 0+$j);
    else $rgb = imagecolorat($img2, 0+$i, 0+$j);
    $r = ($rgb >> 16) & 0xFF;
    $g = ($rgb >> 8) & 0xFF;
    $b = $rgb & 0xFF;
    if ($r>250 && $g>250 && $b>250) $z=1; else {
     if ($alfa<71) $k=(1+0.02*$alfa);
     elseif ($alfa<81) $k=(1+0.04*$alfa); 
     elseif ($alfa<91) $k=(1+0.08*$alfa); 
     else $k=(1+1.4*$alfa); 
     $rget=$r-floor(($r-$r0)/$k); $gget=$g-floor(($g-$g0)/$k); $bget=$b-floor(($b-$b0)/$k);
     $point = imagecolorallocate($resimg,$rget,$gget,$bget);
     imagesetpixel($resimg,$left+$i,$top+$j,$point);
                                               }
                              }
                            } 
  if (file_exists(PATH."img/res_".$picid.$picext1))
   if (unlink (PATH."img/res_".$picid.$picext1)==false) $errors.= " "; 
  switch ($picext1) {
   case ".gif": imagegif($resimg,PATH."img/res_".$picid.".gif"); break;
   case ".jpg": imagejpeg($resimg,PATH."img/res_".$picid.".jpg",100);  break;
   case ".png": imagepng($resimg,PATH."img/res_".$picid.".png"); break;
                    }                         
  ImageDestroy($resimg);
?>
Связаться с нами
Ваши контактные данные будут использоваться исключительно для вашего информирования по задаваемым вами вопросам. Для эффективной работы, лучше указать тот e-mail, который вы регулярно проверяете. Никаких спам-рассылок, никакой навязчивой рекламы туда отправляться не будет. Ваши контактные данные никогда не будут видны на сайте и не будут никому передаваться без вашего согласия. У вас всегда будет возможность удалить свои контактные данные и отказаться от любых уведомлений через личный кабинет, или через администратора сайта.

Отправляя контактную информацию, вы автоматически получаете доступ в личный кабинет на сайте, где всегда сможете изменить или удалить свои данные.
Сообщите нам о себе и мы свяжемся с вами






Условия использования контактных данных

Наш телефон: +7 (499) 40 99 683

Карта сайта, Скидки от партнёров