Если вы хотите сохранить пикселизацию во время изменения размера, вы захотите сделать что-то вроде этого, используя библиотеку GD:
<?php
// create GD image resource from source image file
$src = imagecreatefromgif('test.gif');
// create new GD image resource with indexed color
$dest = imagecreate(64, 64);
// copy/resize image without resampling
imagecopyresized($dest, $src, 0, 0, 0, 0, 64, 64, 16, 16);
// output result
header('Content-type: image/gif');
imagegif($dest);
?>
Я проверил код, и пикселизация остается в такте.Вам придется адаптировать код так, чтобы он также принимал файлы png в качестве входных данных, что должно быть довольно просто, поскольку каждая из функций GD GIF также имеет соответствующие функции png.Надеюсь, это поможет.