Иногда так бывает, что из года в год постоянно пользуешься чем-то не тем. Ну или тем, но не так. Подсмотрел где-то не совсем корректный пример. Перенял чужой опыт, опять же не совсем корректный. А подумать забыл. И понеслось.
Собственно, о резайзе картинок средствами библиотечки GD. В ней для ресайза доступны две функции: imagecopyresized()
и imagecopyresampled()
, с одинаковыми аргументами и возвращаемым значением.
И в подавляющем большинстве случаев для ресайза изображений надо использовать именно вторую функцию. Да, она работает сильно медленней, но и алгоритмы использует сложней (smoothly interpolating pixel values ... retains a great deal of clarity ... blah-blah-blah). За что и любим.
А imagecopyresized() выдает изображения зачастую с неприемлемо низким качеством. На вскидку даже не придумать, где использование данной функции было бы уместным. И вот именно ее я почему-то повсеместно и применял последние n лет, даже не задумываясь о наличии альтернативы.