2014-11-15 38 views
0

在图像上添加文字。我有两个代码,分别工作。 第一个用于通过pdo连接将图像上载到服务器和数据库。 第二个被用来为静止图像加水印。在图像上添加文字

我的问题是,我想结合这两个代码,以文本水印图像上传到服务器时没有全球变量的帮助 。 我一直在努力,但不能得到它的工作。有人可以帮助我整合这一点。谢谢

<?php 
include('pdo.php'); 
    if (!isset($_FILES['image']['tmp_name'])) { 
    echo ""; 
    }else{ 
    $file=$_FILES['image']['tmp_name']; 
    $image= addslashes(file_get_contents($_FILES['image']['tmp_name'])); 
    $image_name= addslashes($_FILES['image']['name']); 
    $image_size= getimagesize($_FILES['image']['tmp_name']); 
if ($image_size==FALSE) { 
     echo "That's not an image!"; 
      }else{ 
      move_uploaded_file($_FILES["image"]["tmp_name"],"postphoto/" . $_FILES["image"]["name"]); 
      $location="postphoto/" . $_FILES["image"]["name"]; 
      $from=$_POST['from']; 
      $time=time(); 
      $photos='photos'; 
$statement = $db->prepare('INSERT INTO text_watermark (photo,from_send) values(:photo,:from_send)'); 
if(!$statement->execute(array( 
':photo' => $photos, 
':from_send' => $from))){ 
       echo 'There is problem';  
      } 
      else{ 
      header("location: lol.php"); 
      exit(); 
      } 
      } 
    } 
?> 


<?php 
     //Set the Content Type 
     header('Content-type: image/jpeg'); 
     // Create Image From Existing File 
     $jpg_image = imagecreatefromjpeg('sunset.jpg'); 
     // Allocate A Color For The Text 
     $white = imagecolorallocate($jpg_image, 255, 255, 255); 
     // Set Path to Font File 
     $font_path = 'font.TTF'; 
     // Set Text to Be Printed On Image 
     $text = "This is a sunset!"; 
     // Print Text On Image 
     imagettftext($jpg_image, 25, 0, 75, 300, $white, $font_path, $text); 
     // Send Image to Browser 
     imagejpeg($jpg_image); 
     // Clear Memory 
     imagedestroy($jpg_image); 
    ?> 
+2

在发布后看看你的问题。然后在代码中修复完全不必要的空白。 –

+0

所有的空格已被删除 – Sectona

+1

只是离开也正确缩进代码 –

回答

1

如果你的代码是正确的,它只是一个移动块的情况。你可能想考虑当某人上传一个PNG时会发生什么。虽然你可能会在其他地方捕捉这个..

<?php 
include('pdo.php'); 
if (!isset($_FILES['image']['tmp_name'])) 
{ 
    echo ""; 
} 
else 
{ 
    $file  = $_FILES['image']['tmp_name']; 
    $image  = addslashes(file_get_contents($_FILES['image']['tmp_name'])); 
    $image_name = addslashes($_FILES['image']['name']); 
    $image_size = getimagesize($_FILES['image']['tmp_name']); 
    if ($image_size == FALSE) 
    { 
     echo "That's not an image!"; 
    } 
    else 
    { 
     move_uploaded_file($_FILES["image"]["tmp_name"], "postphoto/" . $_FILES["image"]["name"]); 
     $location = "postphoto/" . $_FILES["image"]["name"]; 

     //Watermark it! 
     ################ 

     $jpg_image = imagecreatefromjpeg($location); 
     // Allocate A Color For The Text 
     $white  = imagecolorallocate($jpg_image, 255, 255, 255); 
     // Set Path to Font File 
     $font_path = 'font.TTF'; 
     // Set Text to Be Printed On Image 
     $text  = "This is a sunset!"; 
     // Print Text On Image 
     imagettftext($jpg_image, 25, 0, 75, 300, $white, $font_path, $text); 

     ################# 

     $from  = $_POST['from']; 
     $time  = time(); 
     $photos = 'photos'; 
     $statement = $db->prepare('INSERT INTO text_watermark (photo,from_send) values(:photo,:from_send)'); 
     if (!$statement->execute(
            array(
             ':photo' => $photos, 
             ':from_send' => $from 
              ) 
            ) 
     ) 
     { 
      echo 'There is problem'; 
     } 
     else 
     { 
      header("location: lol.php"); 
      exit(); 
     } 
    } 
} 

if ($jpg_image) 
{ 
    //Set the Content Type 
    header('Content-type: image/jpeg'); 

    // Send Image to Browser 
    imagejpeg($jpg_image); 
    // Clear Memory 
    imagedestroy($jpg_image); 
} 
?> 
+0

目录postphots中的图像没有加水印。任何提示 – Sectona

+0

我ssue解决。谢谢 – Sectona