imagefilter+ data:image/png

12
D
На сайте с 28.06.2008
Offline
1008
365

есть пример


// Применение очень мягкого эффекта рассеивания к изображению
imagefilter($logo, IMG_FILTER_SCATTER, 3, 5);

Как вместо logo вставить изображение <img src="data:image/png;base64,'.base64_encode($imagedata).'"/> ?

Как ни пробую, получаю Warning: imagefilter() expects parameter 1 to be resource, string given

ArbNet
На сайте с 27.10.2019
Offline
83
#1

$logo = ImageCreateFromJpeg('image.png');

Блажен, кто не стремится сделать лучше: он не рискует быть не понятым.
S
На сайте с 30.09.2016
Offline
469
#2
Dram:
Как ни пробую

Вместо $logo не пробовал вставлять imagecreatefromstring ($imagedata) ?

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
D
На сайте с 28.06.2008
Offline
1008
#3

Вроде ошибки пропали но и размытия нет. Мне в общем надо сделать частичное размытие картинки, пока вообще не получается никак размыть

$num = 'test';

$image = imagecreatetruecolor(50, 40);
$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, $num, $text_color);
ob_start();
imagepng($image);
$imagedata = ob_get_contents();
ob_end_clean();
imagefilter(imagecreatefromstring ($imagedata), IMG_FILTER_SCATTER, 1, 5);
echo '<img src="data:image/png;base64,'.base64_encode($imagedata).'"/>';
S
На сайте с 30.09.2016
Offline
469
#4

Попробуй IMG_FILTER_GAUSSIAN_BLUR или IMG_FILTER_SELECTIVE_BLUR

imagefilter(imagecreatefromstring($imagedata), IMG_FILTER_SELECTIVE_BLUR);

Но ты выводишь вроде как не то. Нужно выводить не $imagedata, а ресурс изображения.

ArbNet
На сайте с 27.10.2019
Offline
83
#5

Dram, Вы доку читаете перед тем как вопросы задавать?

https://www.php.net/manual/ru/function.imagefilter.php

IMG_FILTER_COLORIZE: Альфа канал, значение между 0 и 127. 0 означает непрозрачность, 127 соответствует абсолютной прозрачности.

D
На сайте с 28.06.2008
Offline
1008
#6

Sitealert, попробовал, без толку. Мне нужно сделать текст картинкой и его размыть. Что тогда если не $imagedata?

ArbNet, вообще не понял при чем тут прозрачность? Она как-то может мешать размытию? Поставил 0 - ничего не поменялось

S
На сайте с 30.09.2016
Offline
469
#7

$num = 'test';
$image = imagecreatetruecolor(50, 40);
$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, $num, $text_color);
imagefilter($image, IMG_FILTER_SELECTIVE_BLUR);
ob_start();
imagepng($image);
$imagedata = ob_get_contents();
ob_end_clean();

echo '<img src="data:image/png;base64,'.base64_encode($imagedata).'"/>';

Проблема молотка.

Aisamiery
На сайте с 12.04.2015
Offline
219
#8
imagefilter(imagecreatefromstring ($imagedata), IMG_FILTER_SCATTER, 1, 5);

Вы применяете не там и не так. Его надо делать на ресурс, если поправить ваш код то выйдет что то типо такого:


$num = 'test';
$image = imagecreatetruecolor(50, 40);
$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, $num, $text_color);
imagefilter($image, IMG_FILTER_SCATTER, 1, 5);
ob_start();
imagepng($image);
$imagedata = ob_get_contents();
ob_end_clean();

echo '<img src="data:image/png;base64,'.base64_encode($imagedata).'"/>';
Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
D
На сайте с 28.06.2008
Offline
1008
#9

Sitealert, Aisamiery, спасибо!

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

Может быть вы сделаете размытие на CSS, может быть для вывода на сайте вам нужен блур. Так и ресурсы не будут тратиться вашего сервера.

https://jsfiddle.net/m2r3gz5o/

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

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