Из Вашего вопроса абсолютно не понятно как Вы используете этот код и что подразумевается под вопросами "теряется качество".
Если Вы сохраняете jpeg, то у функции imagejpeg есть 3й параметр quality по умолчанию равный 75.
Замените его хотя бы на 90 и радуйтесь.