Сглаживание изображения
Автор: mike (www.codenet.ru)
Самый простой способ сглаживания изображения - это уменьшение
размера в четное количество раз с использованием фильтрации
(Бикубической, Bell, B-Spline, Lanczos).
Я не удосужился разобраться, какую фильтрацию использует функция imagecopyresampled()
, но судя по официальной
документации PHP и проведенным мной испытаниям, она вполне подходит
для наших целей.
Все что нам нужно - это построить изображение заведомо большего
размера. В примере 36 я немого модифицировал исходный код примера 30
(Рисование карты России) из урока
8.
Пример 1: Сглаживание изображения с помощью двукратного
уменьшения.
<?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()
:
Все гениальное просто!! Главное помните, что если вы рисуете
увеличиную картинку, то на ней линии должны быть толще, текст больше
и т.п.
Ссылки по теме