Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рисование антибота 
:(
    Опции темы
artsb
Дата 7.11.2008, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Всем привет.

Рисую картинку для антибота.
Вопрос в том, как её можно исказить в виде волны. Такое довольно часто встречается.

Кстати вот код с помощью которого рисую:
Код

    $imgsrc = imagecreatefromgif("fon.gif") or die("Произошла ошибка!");
    $img = imagecreatetruecolor(IMG_WIDTH, IMG_HEIGHT) or die("Произошла ошибка!");
    imagecopy($img, $imgsrc, 0, 0, 0, 0, IMG_WIDTH, IMG_HEIGHT);
    $key = '';
    for($i = 0; $i < IMG_COUNT; $i++)
        $key .= rand(0, 9);
    imagestring($img, 4, 20, 7, $key, IMG_TEXTCOLOR);
    
    header("Pragma: no-cache");
    header("Content-type: image/gif");
    imagegif($img);
    imagedestroi($imgsrc);
    imagedestroi($img);


Почему-то если рисовать текст прямо на исходной картинке, он всё время серый. Поэтому пришлось извращаться и создавать ещё одно. Это поправимо?

Как можно сделать текст жирным, зачёркнутым, подчёркнутым или наклонным?

Спасибо.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
ksnk
Дата 7.11.2008, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



imagettftext


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
artsb
Дата 7.11.2008, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



С помощью этой функции можно установить размер и угол наклона текста.

А как его сделать жирным?
Решится ли таким образом проблема с цветом текста?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Wolf1994
Дата 7.11.2008, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 7
Всего: 29



Цитата(artsb @  7.11.2008,  20:45 Найти цитируемый пост)
А как его сделать жирным?
Решится ли таким образом проблема с цветом текста? 


Код

imagettftext ($image, $size, $angle, $x1, $y1, $color, $font, $text);


$image - картинка-"подложка",
$size - размер шрифта,
$angle - угол наклона,
$x1 - отступ по горизонтали,
$y1 - отступ по вертикали,
$color - цвет,
$font - URL файла шрифта,
$text - текст.

Добавлено через 2 минуты и 2 секунды
$color устанавливается так:
Код

$color=imagecolorallocate ($image, 0, 0, 0);


0, 0, 0 - цвет в RGB.
PM MAIL WWW   Вверх
artsb
Дата 7.11.2008, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Wolf1994, спасибо.
Я это знаю и уже сделал с truetype.

Возник вопрос: как сгладить шрифт? А то он похож на лестницу smile


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
ksnk
Дата 8.11.2008, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



artsb, Нужно взять шрифт непохожий на лестницу... smile
Хотя бы стандартный виндовый Times New Roman. Хотя лучше поискать Юниксовый какой - они, как правило, меньше места занимают.

Добавлено через 1 минуту и 20 секунд
Хорошо получаются крупные буквы. Плохо получаются мелкие. Для мелких, впрочем, разумнее использовать фиксированные шрифты


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
artsb
Дата 8.11.2008, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Цитата(ksnk @  8.11.2008,  00:14 Найти цитируемый пост)
Нужно взять шрифт непохожий на лестницу...

Дык я и взял smile
Взял Calibri из 2007 офиса.
В самом офисе и в Photoshop он гладкий.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
ksnk
Дата 8.11.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Ну и где тут лесенка? user posted image


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
awers
Дата 8.11.2008, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



а что трудно в

$image - картинка-"подложка",
$size - размер шрифта,
$angle - угол наклона,
$x1 - отступ по горизонтали,
$y1 - отступ по вертикали,
$color - цвет,
$font - URL файла шрифта,
$text - текст.


поставить $y1 = rand(1,20); и т.д? 
PM MAIL WWW ICQ Skype   Вверх
artsb
Дата 8.11.2008, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



ksnk, как вы это рисуете?


awers,  проблема не в том, чтобы вывести текст лесенкой. Проблема в том, что шрифт не сглаживается (или мне так кажется...  smile )


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
awers
Дата 8.11.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



imagecopy
вроде тогда лучше imagecopyresampled юзать. будет счастье
PM MAIL WWW ICQ Skype   Вверх
ksnk
Дата 8.11.2008, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



awers, Это рисует w3capcha
Код

w3captcha - php-скрипт для генерации изображений CAPTCHA
версия: 1.1 от 08.02.2008
разработчики: http://w3box.ru
тип лицензии: freeware
w3box.ru © 2008


Слегка мoдифицированный. Туда подставлен 
$font_file="calibriz.ttf"; /* путь к файлу относительно w3captcha.php */
скачанный из интернета по запросу в Гугле "шрифт Calibri  загрузить". Я в своем Офисе чего-то его не нашел... :-(




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
artsb
Дата 8.11.2008, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Всем спасибо.

Цитата(ksnk @  8.11.2008,  16:36 Найти цитируемый пост)
Я в своем Офисе чего-то его не нашел... :-(

Да ты что!? Это же основной шрифт.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
bars80080
Дата 8.11.2008, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



artsb имеет ввиду офис 2007.

интересно, какова вероятность легальности этого офиса?
PM MAIL WWW   Вверх
artsb
Дата 8.11.2008, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Цитата(bars80080 @  8.11.2008,  20:50 Найти цитируемый пост)
интересно, какова вероятность легальности этого офиса?

никакой smile
Он у меня уже был, когда его ещё на прилавках в магазинах не было.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Sanchezzz
  Дата 9.11.2008, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



вот моя кпатча всего 1,4 кб кода

user posted image

юзай неизвесный шрифт ... или сделай на картинки типа 545+8= чему


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
seos
Дата 12.11.2008, 05:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 11.11.2008

Репутация: нет
Всего: нет



Сделаеш ... выложи... smile 
PM MAIL   Вверх
artsb
Дата 12.11.2008, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Sanchezzz, так делись скриптом smile

seos, вот моё:
Код

<?php
/*                        Настройки                        */
define('IMG_HEIGHT',    30);                // высота картинки
define('IMG_WIDTH',     80);                // ширина каринки
define('IMG_BG',        'fon.gif');            // фоновая картинка
define('IMG_BGCOLOR',   0xeeeeee);            // цвет фона, если картинка не найдена
define('IMG_COUNT',     5);                    // количество цифр
define('FONT_NAME',     'bulka.ttf');    // шрифт ttf
define('FONT_SIZE',     18);                // размер шрифта (px)
define('ERROR_MES',     'Произошла ошибка!');// сообщение об ошибке
$colors = array(0x830c25, 0x18288c, 0x054a2f, 0x845e03, 0xa11fdd, 0x486300);            // цвет текста
/*                        Настройки                        */

    require("win2uni.php");
    session_start();

    $imgdefine = false;
    $img = imagecreatetruecolor(IMG_WIDTH, IMG_HEIGHT) or die(ERROR_MES);
    if(file_exists(IMG_BG))
    {
        $imgsrc = imagecreatefromgif(IMG_BG) or die(ERROR_MES);
        imagecopy($img, $imgsrc, 0, 0, 0, 0, IMG_WIDTH, IMG_HEIGHT);
        $imgdefine = true;
    }
    else
    {
        imagefill($img, 0, 0, IMG_BGCOLOR);
    }
    $key = '';
    for($i = 0; $i < IMG_COUNT; $i++)
        $key .= rand(0, 9);
    $key = win2uni($key);
    $coord = imagettfbbox(FONT_SIZE, 0, FONT_NAME, $key);
    $width = $coord[2] - $coord[0];
    $height = $coord[1] - $coord[7];
    $space = $width / IMG_COUNT + 2;
    $X = (IMG_WIDTH - $width) / 6;
    $Y = (IMG_HEIGHT + $height) / 2;
    for($i = 0; $i < IMG_COUNT; $i++)
    {
        imagettftext($img, FONT_SIZE, rand(-5, 5), $X + $space * $i, $Y + rand(-5, 5), $colors[rand(0, 5)], FONT_NAME, $key[$i]);
    }
    for($i = 0; $i < 3; $i++)
    {
        $x1 = rand(0, IMG_WIDTH/2);
        $y1 = rand(0, IMG_HEIGHT/2);
        $x2 = rand(IMG_WIDTH/2, IMG_WIDTH);
        $y2 = rand(IMG_HEIGHT/2, IMG_HEIGHT);
        imageline($img, $x1, $y1, $x2, $y2, IMG_TEXTCOLOR);
    }
    $_SESSION['stkey'] = $key;
    header("Pragma: no-cache");
    header("Content-type: image/gif");
    imagegif($img);
    if($imgdefine) imagedestroi($imgsrc);
    imagedestroi($img);
?>


Выглядит она так:
user posted image
Рамку сделал с помощью стилей.

Это сообщение отредактировал(а) artsb - 12.11.2008, 20:13


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Sanchezzz
Дата 24.11.2008, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



меня просили поделится (theworldcreator скажите ему спасибо) скриптом написал для своей цмс. покачто не воспользовался.

сам скрипт:
Код

<?
# CMS v 0.0.1 Full Ajax
# модуль Antibot
# Автор: Sanchezzz AT

@session_start();
$imgPath = $_SERVER['DOCUMENT_ROOT'].'/system/antibot/';#путь до беграундов
$alphanum  = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; //доступнныйе символы
$cont= 7 ;       //кол символов
$type = 0; // 0 или 1 тип вывода изображения
$text = array(); //для текста
$font = $imgPath.'georgia.ttf';     // имя шрифта или путь к шрифту
$bgNum = rand(0, 5); //задний фон ген. (0 - ского начинать, по какой)
$x = rand(-6,0);
$antitext="";
 for($i=0; $i < $cont; $i++){
    $text[$i] = substr(str_shuffle($alphanum), 0, 1);
    $antitext.= $text[$i];}
 $image = imagecreatefromjpeg($imgPath."bg$bgNum.jpg") or die("у вас нет GD. неповезло");
 for($i=0; $i < count($text); $i++){
    $textColor = imagecolorallocate ($image, rand(0,128), rand(0,40), rand(0,128));
    if($type==0)
  imagettftext($image, rand(13,20), rand(-20,20), $x=$x+10, 18+rand(-2,5),    $textColor,$font,$text[$i]);
    if($type==1) 
  imagestring($image, rand(10,20), $x+=$i+rand(2,8), rand(2,8), $text[$i] , $textColor);        
    }
// Код в сессию 
$_SESSION['image_kod'] = $antitext;//md5($antitext);
//Вывод 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>


файл в придачю (файл шрифта который я использовал на картинках я не выкладывал используйте свой. smile )
 

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  antibot.rar 111,74 Kb


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
gta4kv
Дата 25.11.2008, 14:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Sanchezzz, 
Цитата

@session_start();

и ты еще cms кодишь.....
http://phpfaq.ru/error

PM MAIL   Вверх
Sanchezzz
  Дата 25.11.2008, 14:41 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



... извени но скрипту давига дней и ночей... я только утром залез в него. 

1 чтобы шрифт сменить...

2 почему собака осталась может потому что у меня когдато стоял самапальный сервер где всегда что то лаголо.

думаешь я так часто использую @ чтобы скрыть ошибки?  да мне проще error_reporting(E_ALL ^E_NOTICE); 

не нравится знак @ убери кто тебе мешает и сам читай свой smile


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
gta4kv
Дата 25.11.2008, 17:34 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Sanchezzz, вы не адекват. 
Я указал на погрешность, и если бы вы прочитали статью вы поняли бы в чем ваша ошибка.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0713 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.