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

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_handle139139139); 
            
    $background_color imagecolorallocate($image_handle244244244); 
            
    $bg_height imagesy($image_handle); 
            
    $bg_width imagesx($image_handle); 
            
    imagefilledrectangle($image_handle00$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 ($fd10000";")) 
    ?> 
     <?= $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 (7070)
     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 ($imrand(222,255), rand(222,255), rand(222,255));
    $text_color1 imagecolorallocate ($im000);
    $text_color2 imagecolorallocate ($im1103256);
    $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 ($im12156,'Logotext'$text_color1);
    if(
    $ffs == '1') { 
    imageline ($im$dddaa12$dddaa156$text_color);
    imagestringup($im,5,$dddaa,55,$anticapcha44,$text_color); } else {
    imageline ($im$dddaa21$dddaa33$dddaa2$dddaa33$text_color);
    imagestring ($im12$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 элементов, последний почта, выводим по первому элементу, как сделать?