Giihh 6 Denunciar post Postado Novembro 30, 2015 Olá, Estou tentando colocar limites para um texto na imagem, pra não passar e não ficar texto cortado na imagem. Então estou tentando colocar "enters" automaticos. Nas funções do GD existe a opção: imagettfbbox, conforme manual PHP: Descrição array imagettfbbox ( float $size , float $angle , string $fontfile , string $text ) Esta função calcula e retorna uma caixa com os limites de um texto para uma fonte TrueType. Parâmetros sizeO tamanho da fonte em pixelsangleO ângulo em graus no qual text será medidofontfileO nome do arquivo de fonte TrueType (Também pode ser uma URL). Dependendo de qual versão da biblioteca GD que o PHP esta usando, ele pode tentar procurar por arquivos que não comecem com '/' adicionando '.ttf' ao nome do arquivo e procurando nos caminhos definidos pela biblioteca de fontetextA string a ser medida Minha duvida esta nos valores do angulo, como calcular??? $text = 'Aqui varias palavras para serem cortadas em linhas quando chegar no limite da imagem'; $font_size = 12; // Font size is in pixels. $font_file = 'OpenSans-Bold.ttf'; // This is the path to your font file. $image_width = 300; $image_height = 170; $space = imagettfbbox($font_size, 0, $font_file, $text); O zero na função imagettfbbox é onde devo informar o angulo, mas como faço pra medir esse angulo em relação as medidas das variaveis $image_width e $image_height ?? Agradeço ajuda Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Novembro 30, 2015 De acordo com o manual essas são as possibilidades para definir quais são os angulos do imagettfbbox 0 Canto inferior esquerdo, posição X1 Canto inferior esquerdo, posição Y2 Canto inferior direito, posição X3 Canto inferior direito, posição Y4 Canto superior direito, posição X5 Canto superior direito, posição Y6 Canto superior esquerdo, posição X7 Canto superior esquerdo, posição Y Entendi assim: (1 y) -------------- (5 y) | | | | | | | | | | | | (0 x) ------------ (4 x) 1 canto inferior esquerdo y 5 canto superior direito y 0 canto inferior esquerdo x 4 canto superior direito x Então essa parte fiz assim: $texto = 'Aqui varias palavras que devem estar em linhas quando chegar no limite da imagem'; $font_size = 12; // Font size is in pixels. $font_file = 'OpenSans-Bold.ttf'; // This is the path to your font file. $box = imagettfbbox($font_size, 0, $font_file, $texto); $image_width = abs($box[4] - $box[0]); $image_height = abs($box[5] - $box[1]); Pelo que entendi até aqui determinei o local dos angulos, dentro do box do texto. Mas ai para realmente escrever na imagem preciso usar o imagettftext O angulo que precisa declarar na função imagettftext é relacionado a direção da escrita, então vou deixar 0 para ficar da esquerda para a direita mesmo. $texto = 'Aqui varias palavras que devem estar em linhas quando chegar no limite da imagem'; $font_size = 12; // Font size is in pixels. $font_file = 'OpenSans-Bold.ttf'; // This is the path to your font file. $box = imagettfbbox($font_size, 0, $font_file, $text); $image_width = abs($box[4] - $box[0]); $image_height = abs($box[5] - $box[1]); //criando a imagem e escrevendo com a função imagettftext $X = 10; $y = 10; $imagem = imagecreate(200, 200); $fundobranco= imagecolorallocate($imagem , 255, 255, 255); $letrapreta= imagecolorallocate($imagem , 0, 0, 0); imagettftext($imagem, $font_size, 0, $x, $y, $letrapreta, $font_file, $texto); //x e y são padding que definem em qual lugar da imagem vai começar a escrever Agora minha dificuldade é fazer com que os angulos da função imagettfbbox trabalhe em conjunto com a medida criada (200x200) na função imagettftext Alguma sugestão de como fazer ? Compartilhar este post Link para o post Compartilhar em outros sites