2015-06-18 2 views
-1

Я хотел бы загрузить изображение, а затем автоматически добавить водяной знак (текст или изображение), но не над изображением, я хочу его за пределами изображения. Как я могу сделать это с помощью PHP? и в то же время, если изображение слишком мало адаптируются водяного знака, чтобы всегда соответствовать должным образомWatermark Outside Изображение в PHP?

Пожалуйста, смотрите изображение ниже, чтобы увидеть, что я имею в виду и желаемые результаты

Исходное изображение: http://i.stack.imgur.com/SSFEL.png

загруженное изображение: http://i.stack.imgur.com/GOIt4.png

Такое же изображение, но последнее с водяным знаком на нем.

+0

ТАК что вы пробовали? – Darren

ответ

1

Это не самый автоматизирован с точки зрения определения размещения текста (вы можете сделать это), но это только начало:

<?php 

    function create_cartoon($settings=false) 
     { 
      $img = (isset($settings['img']) && !empty($settings['img']))? $settings['img']:false; 
      $txt = (isset($settings['text']) && !empty($settings['text']))? $settings['text']:'www.lunarbaboon.com'; 
      $offset = (isset($settings['offset']) && !empty($settings['offset']))? $settings['offset']:12; 

      if($img == false) 
       return; 

      header('Content-Type: image/jpeg'); 

      $mime  = getimagesize($img); 
      $or_w  = $mime[0]; 
      $or_h  = $mime[1]; 
      $type  = $mime['mime']; 

      switch ($type) { 
       case ('image/png') : 
        $im = imagecreatefrompng($img); 
        break; 
       case ('image/gif') : 
        $im = imagecreatefromgif($img); 
        break; 
       default : 
        $im = imagecreatefromjpeg($img); 
      } 

      $layer1  = imagecreatetruecolor($or_w,($or_h+30)); 
      $bkg1  = imagecolorallocate($layer1,255,255,255); 
      $layer1s = getimagesize($layer1); 

      imagecopy($layer1,$im,0,0,$layer1s[0],$layer1s[1],$or_w,$or_h); 
      imagefilledrectangle($layer1,0,$or_h,$or_w,$or_h+30,$bkg1); 
      $text_color = imagecolorallocate($layer1, 100, 100, 100); 
      imagestring($layer1, 8, $offset, $or_h+5, $txt, $text_color); 
      imagejpeg($layer1); 
      imagedestroy($img); 
      imagedestroy($layer1); 
     } 

    // To use 
    create_cartoon(array('img'=>'http://i.stack.imgur.com/SSFEL.png','offset'=>114));  
?>