Pagina 1 din 1

Imagine din PHP cu text dinamic

Scris: Dum Oct 14, 2012
de AndreyIstetul
Buna
As vrea sa fac o imagine cu semnatura /text dinamica (care sa afiseze un text amuzant, de exemplu: "sa nu te pui cu mine cand stiu ca IP-ul tau este...").
Din pacate nu reusesc nimic. Uitati un exemplu din ce am incercat:

Cod: Selectaţi tot

<?php
$ip = $_SERVER['REMOTE_ADDR']; 
$text = 'IP-ul tau este $ip ';

// setare dimensiuni suprafetei de baza
$height = 100;
$width = 500;
// definirea imaginii
$im = imagecreate($width, $height);

// setare culori
$fundal = imagecolorallocate($im, 10, 10, 250);
$text_color = imagecolorallocate($im, 255, 255, 255);

// finalizarea imaginii
imagefill($im, 0, 0, $fundal);
imagestring($im, 4, 10, 15, $text, $text_color);

// trimiterea datelor de iesire
header('Content-type: image/jpeg');
imagepng($im);

// curatarea memoriei
imagedestroy($im);
?>
Am incercat mai multe, dar nimic n-a reusit. Singurul lucru ce-a reusit a fost sa las doar codul cu afisare ip in $text, dar asta nu ma ajuta cu nimic.
Va rog sa nu ma trimiteti la lectia cu imagini in php, pentru ca n-am reusit nimic.
Uitati cum imi apare pentru codul de mai sus, adresa URL: worldwidenet.tk/img/img.php

Imagine din PHP cu text dinamic

Scris: Dum Oct 14, 2012
de tycyssg
Eu unul as face altfel. Un tabel cu un rand si o coloana in html.
As pune imaginea pe fundal , iar apoi cu un DIV as afisa textul din PHP.

Cod: Selectaţi tot

<?php
$ip='Ip-ul tau este'.$_SERVER['REMOTE_ADDR'];

<html>
<body>
<table><tr><td style="background-image:url('imagineata.png');background-repeat:no-repeat; widht:xxpx; height:xxpx;")>
echo $ip;
</td></tr></table>
</body></html>
 ?>

Imagine din PHP cu text dinamic

Scris: Dum Oct 14, 2012
de AndreyIstetul
Buna @tyc,
Ideea este sa fie o imagine, ca sa poata intra in semnatura unui forum.
Inca ceva: era o vreme un script cu o semnatura dinamica pentru phpbb. Il mai aveti? Nu-l mai gasesc nicaieri. M-ar ajuta foarte mult.

Imagine din PHP cu text dinamic

Scris: Dum Oct 14, 2012
de MarPlo
Scriptul de mai sus, de la inceput, e bun; problema e la folosirea tipului de ghilimele pentru text.
Intre ghilimele simple nu e recunoscuta valoarea variabilei adaugata intre ele, ci apare cu numele asa cum e scrisa.
Daca vrei sa adaugi valori de variabile intr-un sir text, sunt 2 modalitati:
1. Folosesti ghilimele duble (variabila adaugata intre ghilimele duble e inlocuita cu valoarea ei).
Adica asa:

Cod: Selectaţi tot

$text = "IP-ul tau este $ip ";
 
2. Folosesti ghilimele simple, dar scoti variabila dintre ele, si o atasezi prin concatenare, cu operatorul punct "." (merge si daca sunt ghilimele duble).
Adica asa:

Cod: Selectaţi tot

$text = 'IP-ul tau este'. $ip;
 

Re: Imagine din PHP cu text dinamic

Scris: Lun Oct 15, 2012
de tycyssg
AndreyIstetul scrie:Buna @tyc,
Ideea este sa fie o imagine, ca sa poata intra in semnatura unui forum.
Pai poate intra oricum in semnatura unui forum daca accepta script php. doar ca modifici umpic scriptul ca de ex.:

Cod: Selectaţi tot

<?php
$ip='Ip-ul tau este'.$_SERVER['REMOTE_ADDR'];
echo '<html>
<body>
<table><tr><td style="background-image:url(\'http://ink imagehack or imagebam.com\');background-repeat:no-repeat; widht:xxpx; height:xxpx;")>' . $ip. '</td></tr></table>
</body></html>';
 ?>
Sau poti sa faci cum ti-a explicar marplo. Dar eu m-am gandit la ideea asta ca iti poti pune tu ce imagine vrei si o sa arate mult mai bine decat una simpla creata cu php.
Acum alegerea iti apartine.

Imagine din PHP cu text dinamic

Scris: Lun Oct 15, 2012
de AndreyIstetul
Buna. Multumesc Marplo, merge.
Scuze, @tyc, dar forumurile la care doresc sa bag aceasta semnatura nu suporta php...adica suporta, dar nu e permis deoarece este periculos sa lasi pe cineva sa-ti puna linii de cod ce urmeaza a fi executate la deschidere paginii. Poti sa spargi respectivul site foarte usor.
Inca o intrebare care probabil e foarte simpla, dar nu am pricep: cum pot sfarsi randul in care sunt si sa trec la unul nou?
Adica sa nu fie tot textul din variabila pe un rand sa fie pe mai multe.
MarPlo, cum as putea sa fac ceva in html, cum spunea @tyc, dar apoi sa fie facut imagine de php. Adica, de exemplu, codul lui @tyc html, in final sa rezulte o imagine jpeg. Este posibil? Sau aberez?
Daca nu, totusi, cum este posibil sa pun un font, o marime etc care sa rezulte in final o imagine?
Multmesc anticipat.

P.S.: Daca ati gasi acea semnatura dinamica pentru phpbb care era la un moment dat pe net, as fi foarte bucuros:D.

Imagine din PHP cu text dinamic

Scris: Mar Oct 16, 2012
de MarPlo
Nu se poate doar cu PHP sa creezi /transformi codul HTML in imagine.
Ca sa apara textul in imagine pe mai multe linii, trebuie sa definesti o lungime fixa pt. imagine, apoi textul sa fie adaugat automat pe alt rand cand ajunge la lungimea imaginii.
Uite, poti folosi functia din acest exemplu:

Cod: Selectaţi tot

<?php
// creaza imaginea cu textul
// parametri: textul, lungimea_imaginii, culoare text (optional, initial albastru), culoare fundal (optional, initial galbui)
function texttoimage($text, $image_width, $colour = array(0,1,244), $background = array(250,250,100)) {
  $font = 5;
  $line_height = 15;
  $padding = 5;
  $text = wordwrap($text, ($image_width/10));
  $lines = explode("\n", $text);
  $image = imagecreate($image_width,((count($lines) * $line_height)) + ($padding * 2));
  $background = imagecolorallocate($image, $background[0], $background[1], $background[2]);
  $colour = imagecolorallocate($image,$colour[0],$colour[1],$colour[2]);
  imagefill($image, 0, 0, $background);
  $i = $padding;

  foreach($lines as $line){
    imagestring($image, $font, $padding, $i, trim($line), $colour);
    $i += $line_height;
  }

  header("Content-type: image/jpeg");
  imagejpeg($image);
  imagedestroy($image);
  exit;
}

  /* Exemplu */

$text = "Aici se adauga textul, care va fi afisat in imagine";

// lungimea imaginii, in pixeli
$image_width = 180;

// apeleaza functia
texttoimage($text, $image_width);
?>

Imagine din PHP cu text dinamic

Scris: Mar Oct 16, 2012
de AndreyIstetul
Buna. Nu am inteles foarte multe...probabil ca o sa mearga, dar nu am timp acum sa incerc. Multumesc frumos pentru ajutor.