Мой простой способ понять это ...
var var1 = 13;
var var2 = { prop: 2 };
//13 and var2's content (reference) are being passed here
foo(var1, var2);
inVar1
и inVar2
получают переданное содержимое. function foo(inVar1, inVar2){
//changing contents of inVar1 and inVar2 won't affect variables outside
inVar1 = 20;
inVar2 = { prop: 7 };
}
inVar2
получил ссылку { prop: 2 }
, вы можете изменить значение свойства объекта. function foo(inVar1, inVar2){
inVar2.prop = 7;
}
Для этого я использую timthumb . Просто давая еще один вариант;)
Попробуйте вместо этого использовать imagecopyresampled . Это интерполяция, которая сделает вещи намного приятнее.
Начиная с PHP 5.5 вы можете использовать функцию imageetinterpolation, чтобы определить способ интерполяции изображений во время преобразований (как правило, масштабирование и повторная выборка , но также вращения, и т. д.).
См. http://php.net/manual/en/function.imagesetinterpolation.php
Для понижающей дискретизации изображения вы, вероятно, захотите использовать IMG_SINC алгоритм, он имеет тенденцию давать более четкие результаты. Для вращения также.
Для повышения дискретизации, IMG_BICUBIC_FIXED, IMG_GENERALIZED_CUBIC и IMG_QUADRATIC могут дать лучшие результаты. В конечном итоге вам придется протестировать их: как можно скорее установите этот параметр на вновь созданные ресурсы изображения, объедините его с флагом высокого качества при сохранении jpegs, и вы должны быть свободны от артефактов при использовании GD.