Сглаживание изображения на PHP
Самый простой способ сглаживания изображения - это уменьшение размера в четное количество раз с использованием фильтрации (Бикубической, Bell, B-Spline, Lanczos).
Я не удосужился разобраться, какую фильтрацию использует функция imagecopyresampled() , но судя по официальной документации PHP и проведенным мной испытаниям, она вполне подходит для наших целей.
Все что нам нужно - это построить изображение заведомо большего размера. В примере 36 я немого модифицировал исходный код примера 30 (Рисование карты России) из урока 8.
Пример 36: Сглаживание изображения с помощью двукратного уменьшения.
<?php
// Ширина и высота изображения
$W=500*2;
$H=375*2;
// Исходный код построения карты России пропущен.
// Смотрите урок №8
$imd=imagecreatetruecolor($W/2,$H/2);
imagecopyresampled($imd,$im,0,0,0,0,$W/2,$H/2,$W,$H);
imagedestroy($im);
imagepng($imd);
imagedestroy($im);
?>
Скачать исходный код в архиве (ZIP,10Kb)
Так выглядела карта до сглаживая:
Так выглядит карта после двукратного уменьшения с помощью функции imagecopyresampled() :
Все гениальное просто!! Главное помните, что если вы рисуете увеличиную картинку, то на ней
линии должны быть толще, текст больше и т.п.
Автор: mike
Источник: www.mike.nov.ru
|