2013-03-30 1 views
2

У меня есть изображение на моем сервере, и я хочу написать ему текст. Как водяной знак. Я могу написать текст на изображение, но я хочу добавить в текст текст, чтобы его было легко читать. Вот что я до сих пор.написать письмо на фотографию

header("Content-type: image/jpeg"); 
$imgPath = 'pic.jpg'; 
$image = imagecreatefromjpeg($imgPath); 
$color = imagecolorallocate($image, 224, 73, 87); 
$string = "Please type the word in the circle."; 
$fontSize = 8; 
$x = 25; 
$y = 200; 
imagestring($image, $fontSize, $x, $y, $string, $color); 
imagejpeg($image); 
+0

Вы можете проверить здесь: http://stackoverflow.com/questions/2235152/add-watermark-to-images-with-php Можете ответить на ваш вопрос. –

ответ

1

в этом классе вы должны иметь фон base.png и шрифт arial.ttf вы можете иметь неуверенные в себе шрифт, но должен быть ttf .Если вы хотите иметь неуверенные в себе формат шрифта необходимо внести изменения на код

class SecurityImg{ 
    static function Image_Create($basename){//Create image 
     $im =imagecreatefrompng ($basename); 
     //only replace imagecreatefrompng with imagecreatefromjpeg for open jpg instead of png 
     return($im); 
    } 
    static function PutTextOnImage($text,$baseimage,$angel,$xi,$yi){ 
     // Create some colors 
     $text_color= imagecolorallocate($baseimage, 255, 50, 150); 
     // Replace path by your own font path 
     $font = 'arial.ttf'; 
     // Add the text 
     imagettftext($baseimage, 15, $angel, $xi, $yi, $text_color, $font, $text); 
     return($baseimage); 

    } 
    static function Create($imgbase,$TEXT){ 
      $ifp=self::Image_Create($imgbase); 
      $im=self::PutTextOnImage($TEXT,$ifp,0,10,20); 
      return($im); 
    } 
    } 
    $Securityimg=new SecurityImg(); 
    $im=$Securityimg->Create("base.png","test"); 
    // Output the image 
    // Set the content-type 
    header('Content-Type: image/jpeg'); 

    imagejpeg($im); 
    // Using imagepng() results in clearer text compared with imagejpeg() 
    imagedestroy($im); 
+0

как сделать эту работу с jpg не png? –

+0

@ Mr.1.0 только замените 'imagecreatefrompng' на' imagecreatefromjpeg' –

+0

работает :), но у него нет цвета фона. Здесь есть пример http://img27.imageshack.us/img27/980/9fc804cfabf94734a4aec13.png –

0

проверьте это:

<?php 

$stamp = imagecreatefrompng('stampimg.png'); 
$im = imagecreatefrompng('mainimage.png'); 


$marge_right = 10; 
$marge_bottom = 10; 
$sx = imagesx($stamp); 
$sy = imagesy($stamp); 

$imgx = imagesx($im); 
$imgy = imagesy($im); 
$centerX=round($imgx/2); 
$centerY=round($imgy/2); 


imagecopy($im, $stamp, $centerX, $centerY, 0, 0, imagesx($stamp), imagesy($stamp)); 


header('Content-type: image/png'); 
imagepng($im); 
imagedestroy($im); 
?>