Текст в картинку

Discussion in 'PHP' started by dimash, 21 Aug 2008.

  1. dimash

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    Суть скрипта такая что на лету должен почтовій ящик из $text делатся в картинку.
    PHP:
    <?php if(!empty($data[3])) 
        { 
             if(
    preg_match("/^[\da-z\._-]+@[\da-z\._-]+\.[a-z]{2,6}$/i", $data[3])) 
            { 
            
    $padding = 5; 
            
    $font = 4; 
            
    $text = $data[3]; 
            
    $height = imagefontheight($font) + ($padding * 2); 
            
    $width = imagefontwidth($font) * strlen($text) + ($padding * 2); 
            
    $image_handle = imagecreatetruecolor($width, $height); 
            
    $text_color = imagecolorallocate($image_handle, 139, 139, 139); 
            
    $background_color = imagecolorallocate($image_handle, 244, 244, 244); 
            
    $bg_height = imagesy($image_handle); 
            
    $bg_width = imagesx($image_handle); 
            
    imagefilledrectangle($image_handle, 0, 0, $bg_width, $bg_height, $background_color); 
            
    imagestring($image_handle, $font, $padding, $padding, $text, $text_color); 
            
    imagejpeg($image_handle,NULL,100); 
            
    imagedestroy($image_handle); 
            }  
        } 
    ?>
    Но выводит такое.
    Значит, картинка текстом.
    $text = $data[3]; добывается с файла. Такой спсоб добытия.<
    PHP:
    ?php  
     if (file_exists("db.csv")) { 
         $fd = fopen ("db.csv", "r");  
    <?php while ($data = fgetcsv ($fd, 10000, ";")) 
    { 
    ?> 
     <?= $data[2] ?> 
     <?php if(!empty($data[3]))
    Заголовки если припасть в скрипте вывода картинки тогда выводит типа заголовки уже отправлена. Есть ли (settype)image?
     
  2. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    header('Content-type'.image_type_to_mime_type(IMAGETYPE_PNG));
     
  3. dimash

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    То есть вначале.
    <?php header('Content-type'.image_type_to_mime_type(IMAGETYPE_PNG));
    Вместо image_type_to_mime_type - data[3];? Работает такое вообще или нет не знаю, но по-любому это заголовок, а нету никакой переменной еще "до" скрипта. То есть даже если бы и работал - то
    .
     
  4. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    PHP:
    <?php
    header
    ('Content-type: image/jpeg');
    //....
    ?>
     
  5. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    и никаких выводов в браузер кроме самой картинки в скрипте быть не должно.
     
  6. dimash

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    Так у меня каринка генерурутеся прост на лету с элемента массива. Прост такая функция, думаю, не используется которая явно указывает формат переменной. Есть ли тип-картинки?
     
  7. Sn@k3

    Sn@k3 Elder - Старейшина

    Joined:
    13 Apr 2006
    Messages:
    1,000
    Likes Received:
    437
    Reputations:
    90
    PHP:
    <?
    header ("Content-type: image/PNG");
    $anticapcha=rand(10000,99999);
    $anticapcha33=$anticapcha;
    $antiss=rand(1,4);
    $antis1=substr($anticapcha33,0,$antiss);
    $antis1.=' ';
    $antis2=strlen($antis1); $antis2--; 
    $antis3=substr($anticapcha33,$antis2,5);
    $anticapcha44=$antis1;  $anticapcha44.=$antis3;
    $immm1=rand(1,240);
    $immm2=rand(1,220);
    $immm3=rand(1,240);
    $immm4='#'; $immm4.=$immm1; $immm4.=$immm2; $immm4.=$immm3; 
    $im = @imagecreate (70, 70)
     or die (
    "Cannot Initialize new GD image stream");
    $background_color = imagecolorallocate ($im, $immm1, $immm2, $immm3);
    //$imaggg=imageline ($im, 12, 12, 221, 221, $text_color1);
    $text_color = imagecolorallocate ($im, rand(222,255), rand(222,255), rand(222,255));
    $text_color1 = imagecolorallocate ($im, 0, 0, 0);
    $text_color2 = imagecolorallocate ($im, 110, 32, 56);
    $dddaa=rand(1,53);
    $dddaa1=$dddaa+15;
     
    $dddaa21=rand(1,18);  $dddaa2=$dddaa21+53; 
    $dddaa3=rand(-3,45); $dddaa33=$dddaa3+15;
    //imagesetthickness($im,11);
    $ffs=rand(1,2);
    imagestring ($im, 12, 1, 56,'Logotext', $text_color1);
    if(
    $ffs == '1') { 
    imageline ($im, $dddaa1, 2, $dddaa1, 56, $text_color);
    imagestringup($im,5,$dddaa,55,$anticapcha44,$text_color); } else {
    imageline ($im, $dddaa21, $dddaa33, $dddaa2, $dddaa33, $text_color);
    imagestring ($im, 12, $dddaa21, $dddaa3,$anticapcha44, $text_color); }
    imagepng ($im,'pp.png');
    $ip=getenv("REMOTE_ADDR");
    $ff1='users\check\anticapcha\ '; $ff1.=$ip; $ff1.='.txt';
    $fffas=fopen($ff1,'w');
    fwrite($fffas,$anticapcha);
    fclose($fffas);
    ?>

    вот мой когда-то писанный кусок кода, как всегда сам черт голову сломит, но работает =)
    выводиться pp.png
     
  8. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Посмотри в примеру это /threadedpost826423.html#post821969
    Ты же сам делаешь картинку, поэтому сам указывай тип, я например gif всегда указываю
     
  9. dimash

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    В скрипты свыше типа всего лишь картинка выводится и все, без другого гипертекста.
    Имелось ввиду указать явно типа перменной картинки ($KARTINKA)$text.
    В ссылке отсылается заголовок.
     
  10. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    я ещё больше не понял чего ты хочешь...у тебя не выводилась картинка? поставь хидер...теперь что-то неправильно выводится...
    Изъясняй яснее, а то мне ясно что ничего не ясно =\
     
  11. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    О, и тут эта тема. Я вроде понял, что тебе нужно. Картинка может быть либо в виде отдельного файла на сервере, либо в виде отдельного скрипта, отправляюшего клиенту только картинку и ничего более. Поэтому, чтобы заменить в странице текстовый e-mail на его изображение, нужно примерно следующее:
    Code:
    <img src="/mail2gif.php?mail=vasya@microsoft.com">
    что тоже не особо хорошо, т.к. текстовый вариант мыла все же светится. Можно сделать так:
    Code:
    <img src="/mail2gif.php?mailid=1">
    а в самом скрипте уже выдирать мыло по id откуда-то
     
  12. dimash

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    Какртинка вывидтся конечно. Но выводится текстом. Перед картинкой есть вывод, то есть заголовки отосланы и больше не отсылаются, а надо картинку вывести правильную.
     
  13. dimash

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    Вот, а хотел скриптом сразу сделать, то есть price.php. Чтобы без mail2gif.php. А можна не $_GEY делать а $_POST, как-то таки лучше?
     
  14. dimash

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    А вот как по id вывести? у меня csv файл, смотри первый пост.
     
  15. dimash

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    наверное лучше вываести по имеевшиеся data[1] чтобы выглядела как <img src="/mail2gif.php?podavec=ya"> только как? У меня есть массив из 4 элементов, последний почта, выводим по первому элементу, как сделать?