Картинка с текст по избор

m1t3

Registered
Как може да се направи така, че даречем имаме 1 картинка
и да напишем някакъв текст в повле в браузера и да кликнем да бутон виж
и вече това което сме написали в полето да го пише и на картинката
и тая картинка да можем да свалим с надписа
(надписа да има някакъв фонт размер и там други окраси и цветове демек да е форматиран)

Не съм сигурен с какво може да стане това и пускам темата тук
 
Разгледай този урок, по него може да ти дойде идея..

http://web-tourist.net/login/login/view.php?st=1107
 
Smirnoff каза:
Чеки чеки еся щи напиша скрипта, това поне го знам.
Иначе за друго PHP не ме търси :lol:
Ехе 1 път да ми излезе късмета :П
ам демо ще можеш ли да дадеш например малко текста да е позаоблен и изкривен
 
Ако искаш заоблен или изкривен текст това се прави
с различен шрифт, за това потърси тук : www.dafont.com

Ето скрипта :

form.html :
Код:
<form action="dada.php" method="post">
<input type="text" size="50" name="ime">
<input type="submit" value="Show Text"></form>
dada.php
Код:
<?php
header("Content-type: image/gif");
$h = 100;
$w = 200;
$fontsize = 20;
if ( ! isset ( $text ) )
$texta = $_POST['ime'];
   $text = "$texta";
$image = imagecreate( $w, $h );
$red = imagecolorallocate($image, 255,0,0);
$blue = imagecolorallocate($image, 0,0,255 );
$font = "c:/windows/fonts/arial.ttf";
$textw = $w;
while ( 1 )
   {
   $box = imageTTFbbox( $fontsize, 0, $font, $text );
   $textw =  abs( $box[2] );
   $textbodyh = ( abs($box[7]) )-2;
   if ( $textw < $w - 20 )
       break;
   $fontsize--;
   }
$gifXcenter = (int) ( $w/2 );
$gifYcenter = (int) ( $h/2 );
imageTTFtext(    $image, $fontsize, 0,
       (int) ($gifXcenter-($textw/2)),
       (int) ($gifYcenter+(($textbodyh)/2) ),
       $blue, $font, $text );
imagegif($image);
?>
Директно ти го давам от папката с php скриптовете
които съм си събирал из нета, че не ми се търсеше
книгата да го пиша по нея.
Дано ти помогне, демо не мога да дам защото нямам
хостинг нито реално IP :(
 
Ето демо на скрипта на Smirnoff:
http://webjo.no-ip.org/test1/tekstkartinka/forma.php
Но няма да е лошо да лимитираш колко букви да се въвеждат, че пробваи с по голям текст да видиш.

или трябва да измислиш как да се запазва картинката или да се направи чрез GET от линка да се взима текста.

Код:
<form action="dada.php" method="get">
<input type="text" size="50" name="ime">
<input type="submit" value="Show Text"></form>

dada.php

Код:
<?php
header("Content-type: image/gif");
$h = "100";
$w = "200";
$fontsize = 20;
if ( ! isset ( $text ) )
$texta = $_GET['ime'];
   $text = "$texta";
$image = imagecreate( $w, $h );
$red = imagecolorallocate($image, 255,0,0);
$blue = imagecolorallocate($image, 0,0,255 );
$font = "c:/windows/fonts/arial.ttf";
$textw = $w;
while ( 1 )
   {
   $box = imageTTFbbox( $fontsize, 0, $font, $text );
   $textw =  abs( $box[2] );
   $textbodyh = ( abs($box[7]) )-2;
   if ( $textw < $w - 20 )
       break;
   $fontsize--;
   }
$gifXcenter = (int) ( $w/2 );
$gifYcenter = (int) ( $h/2 );
imageTTFtext(    $image, $fontsize, 0,
       (int) ($gifXcenter-($textw/2)),
       (int) ($gifYcenter+(($textbodyh)/2) ),
       $blue, $font, $text );
imagegif($image);
?>

забележи линка как е:

http://webjo.no-ip.org/test1/tekstkartinka/dada.php?ime=test+komikstest+ko
 
jooorooo каза:
Ето демо на скрипта на Smirnoff:
http://webjo.no-ip.org/test1/tekstkartinka/forma.php
Но няма да е лошо да лимитираш колко букви да се въвеждат, че пробваи с по голям текст да видиш.
Жорка казах, че съм куц... и не мога да го направя.
Давай ако можеш ти поне да е пълноценен скрипта :?
 
Значи за текст взимане от линк го дадох как е, но не знам как се прави кирилица да поддържа. не знам функцията как се прави за нея.
 
Ето го dada.php с кирилица

Код:
<?php
header("Content-type: image/gif");
$h = "100";
$w = "200";
$fontsize = 20;

function cp1251_utf8( $sInput ) // функция за кирилицата иначе ще излизат маймунки
{
  $sOutput = "";

  for ( $i = 0; $i < strlen( $sInput ); $i++ )
  {
      $iAscii = ord( $sInput[$i] );

      if ( $iAscii >= 192 && $iAscii <= 255 )
          $sOutput .=  "&#".( 1040 + ( $iAscii - 192 ) ).";";
      else if ( $iAscii == 168 )
          $sOutput .= "&#".( 1025 ).";";
      else if ( $iAscii == 184 )
          $sOutput .= "&#".( 1105 ).";";
      else
          $sOutput .= $sInput[$i];
  }
  return $sOutput;
}

if ( ! isset ( $text ) )
$texta = $_GET['ime'];
   $text = "$texta";
   $text = trim(cp1251_utf8($text));
   
$image = imagecreate( $w, $h );
$red = imagecolorallocate($image, 255,0,0);
$blue = imagecolorallocate($image, 0,0,255 );
$font = "c:/windows/fonts/arial.ttf";
$textw = $w;
while ( 1 )
   {
   $box = imageTTFbbox( $fontsize, 0, $font, $text );
   $textw =  abs( $box[2] );
   $textbodyh = ( abs($box[7]) )-2;
   if ( $textw < $w - 20 )
       break;
   $fontsize--;
   }
$gifXcenter = (int) ( $w/2 );
$gifYcenter = (int) ( $h/2 );
imageTTFtext(    $image, $fontsize, 0,
       (int) ($gifXcenter-($textw/2)),
       (int) ($gifYcenter+(($textbodyh)/2) ),
       $blue, $font, $text );
imagegif($image);

?>
 

Back
Горе