Вы можете создать таблицу, как вы делаете сейчас. Затем используйте Imagick, чтобы размыть все после некоторого y (координата линии). Извините, я знаю только Imagemagick, который используется Imagick, а не сам Imagick. Вот как я бы сделал это в Imagemagick. Я бы размыл входное изображение. Затем я создал бы изображение маски, которое было бы черным над желаемой линией и белым под ней. Затем я бы скомбинировал входные данные, размытое изображение, используя маску, чтобы получить желаемые результаты. Я взял ваше изображение выше и обработал его так:
Входной сигнал:
bottomy=676
wd=`convert image.png -format "%w" info:`
ht=`convert image.png -format "%h" info:`
convert image.png \( -clone 0 -blur 0x5 \) \( -size ${wd}x${bottomy} xc:black -background white -extent ${wd}x${ht} \) -composite result.png
Результат:
Вы можете получить ширину и высоту вашего ввода в PHP напрямую. Затем используйте Imagick blurImage (), чтобы размыть копию. Смотри http://us3.php.net/manual/en/imagick.blurimage.php
Затем создайте маску, используя newImage () для черной части http://us3.php.net/manual/en/imagick.newimage.php. Затем используйте exteImage () для белой части. См http://us3.php.net/manual/en/imagick.extentimage.php
Тогда сделай композит. Смотри http://us3.php.net/manual/en/imagick.compositeimage.php
Однако похоже, что CompositImage () допускает только два изображения. Поэтому вы должны создать маску и поместить ее в альфа-канал размытого изображения. Затем отмените маску и поместите ее в альфа-канал входного изображения. Это можно сделать с помощью CompositImage (), используя COMPOSITE_COPYOPACITY. Как только вы это сделаете, вы можете сгладить изображения () двух изображений вместе, чтобы сделать вывод. См http://us3.php.net/manual/en/imagick.flattenimages.php