2015-01-21 13 views
0

내가 데이터베이스에서 임의의 슬로건을 추가, 디렉토리에서 임의의 JPG 중 이미지를 생성하는 스크립트를 가지고 :텍스트 줄 바꿈()

<?php 

header('Content-type: text/html; charset=utf-8'); 

include '../connect.php'; 
require_once 'random.php'; 

$timestamp = time(); 
$date = date("d.m.Y_G", $timestamp); 


$slogan = $mysqli->query("SELECT `text` FROM `slogans` ORDER BY RAND() LIMIT 1"); 

    $slogan_txt = $slogan->fetch_assoc(); 



    $bg = get_rand_img('../../images/'); 
    $imgPath = '../../images/' .$bg; 

$text = $slogan_txt[text]; 
$image = $imgPath; 
$font = "font.TTF"; 
$font_size = "25"; 

$image_2 = imagecreatefromjpeg($image); 
$black = imagecolorallocate($image_2,0,0,0); 

$image_width = imagesx($image_2); 
$image_height = imagesy($image_2); 

$text_box = imagettfbbox($font_size,$angle,$font,$text); 
$text_width = $text_box[2]-$text_box[0]; // lower right corner - lower left corner 
$text_height = $text_box[3]-$text_box[1]; 

$x = ($image_width/2) - ($text_width/2); 
$y = ($image_height/2) - ($text_height/2); 

imagettftext($image_2,$font_size,0,$x,$y,$black,$font,$text); 

header ("Content-type: image/png"); 
imagejpeg($image_2); 



?> 

지금까지 잘 작동합니다.

이제 한 행에 많은 단어가있는 구두가 있습니다. 나는 그들을 감싸고 중심에 둘 필요가있다!

imagettftext()에서 단어 랩을 사용할 수 없으므로 어떻게 든 분해해야합니다.

웹상에서 일부 기능을 찾았지만 예상대로 작동하지 않습니다. 어쩌면 난 그냥 내 기존 코드와 그들을 결합하는 방법을 몰라!

누군가 자신의 프로젝트에서 workign 예제를 얻었습니까?

감사합니다.

답변

0

글쎄, 지금은했다.

재미 있고 흥미로운 것을 발견했습니다. 텍스트로 시작하는 위치에 대한 계산을 추가하기 만하면됩니다 (이미지 크기에 응답).

GDtext by stil

감사합니다!

0

이것은 첫 번째 문자열이 14보다 길면 문자열을 추출하고 두 번째 문자열에 텍스트를 넣습니다. 당신은 같은 것을 할 필요가 텍스트 중심에

$string = ""; 
$string2 = ""; 
$name = explode(" ", $name); 
foreach ($name as $n) { 
    if (strlen($string) + strlen($n) > 14) { 
      $string2 .= $n . " "; 
     } else { 
      $string .= $n . " "; 
     }  
} 

: (imagesisex이/2) - 숫자 * pixelsize