Добавить шумы при создании картинки PHP

D
На сайте с 28.06.2008
Offline
1018
266

Таким кодом создаю картинку, но хотелось бы усложнить ее автоматическое распознавание. Пришла идея добавить шумы, но не могу загуглить примеры или как это называется. Мне нужны произвольные черные пиксели на картинку. Как это сделать?

              $image = imagecreatetruecolor(40, 15);

$fon = imagecolorallocatealpha($image, 255, 255, 255, 127);
imagecolortransparent($image, $fon);
imagefill($image, 0, 0, $fon);
$text_color = imagecolorallocate($image, 0, 0, 0);
imagestring($image, 4, 0, 0, $item->value, $text_color);
ob_start();
imagepng($image);
$imagedata = ob_get_contents();
ob_end_clean();
echo '<img data-src="data:image/png;base64,'.base64_encode($imagedata).'" class="lazy"/>';
LEOnidUKG
На сайте с 25.11.2006
Offline
1617
#1

А кто тебе сказал, что твой шум помещает распознать? :)

✅ Трастовых площадок под размещение статей и ссылок. Опыт 14 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Ускорение ваших сайтов (WP, Opencart и др.) + Настройка сервера ( https://searchengines.guru/ru/forum/997205 )
ArbNet
На сайте с 27.10.2019
Offline
88
#2

Сначала устанавливаешь картинку ImageCreateFromJpeg('captcha.jpg'); потом рисуешь на ней

Блажен, кто не стремится сделать лучше: он не рискует быть не понятым.
D
На сайте с 28.06.2008
Offline
1018
#3

LEOnidUKG, попробую, заодно пхп подучу.

ArbNet, хочу сделать шумы случайными.

LEOnidUKG
На сайте с 25.11.2006
Offline
1617
#4

KCAPTCHA PROJECT VERSION 2.0 www.captcha.ru

//noise

$white=imagecolorallocate($font, 255, 255, 255);

$black=imagecolorallocate($font, 0, 0, 0);

for($i=0;$i<(($height-30)*$x)*$white_noise_density;$i++){

imagesetpixel($img, mt_rand(0, $x-1), mt_rand(10, $height-15), $white);

}

for($i=0;$i<(($height-30)*$x)*$black_noise_density;$i++){

imagesetpixel($img, mt_rand(0, $x-1), mt_rand(10, $height-15), $black);

}

---------- Добавлено 04.06.2020 в 15:09 ----------

Dram:
LEOnidUKG, попробую, заодно пхп подучу.

Ты не учишь, ты сразу спрашиваешь как за тебя это сделать.

S
На сайте с 13.10.2014
Offline
160
#5

распознавание картинки идет посегментно с учетом особенности восприятия изображений глазом человека. Никто (вернее ничто. ведь мы о машине говорим) ее целиком не просматривает. Поэтому блюрь не блюрь, шуми не шуми, она так или иначе распознается.

SocFishing
На сайте с 26.09.2013
Offline
118
#6

Если вы хотите сделать шумы, то можно наклепать полупрозрачных PNG с цифрами пару десятков штук.

Предположим, у вас капча имеет размер 200х50 вы создаете 20 картинок с полупрозрачным фоном и на них накидываете кучу цифр отличных по шрифтам и более блеклой тональности. А дальше просто накладываете поверх своей картинки эту PNG.

Это вам даст хороший шум, а главное может запутать распознавание.

imagealphablending($png1, false)

imagealphablending($png2, false);

imagecopy($png1, $png2, 50, 200, 0, 0, imagesx($png2), imagesy($png2));

$result = imagepng($png1);

примерно, примеры погуглите

★Сервис идентифицирует (https://socfishing.com/?utm_source=searchengines) посетителей вашего сайта и предоставляет их профили ВКонтакте, Телефон, Почта! Цены копеечные, работаем 8 лет.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий