Самый простой способ дублировать переменную изображения в PHP.
Обычно вы можете просто выполнить $varnew = $varold
.
Но с переменной библиотеки GD, если бы я сделал выше, а затем отредактировал $ varnew, тогда будет выполнен и $ varold.
Очевидно, одним из способов было бы открыть файл или создать новое изображение и скопировать его в него. Есть ли более простой способ?
Причина, по которой ваша попытка не срабатывала, заключается в том, что переменная хранит только дескриптор (указатель памяти) для изображения GD. Оба $varnew
и $varold
будут хранить один и тот же указатель, указывая на то же самое изображение в памяти. Вы должны использовать imagecopy или, может быть, еще хуже, снова открыть изображение из файла.
Вы можете использовать imagecopy
Использовать это:
function cloneImg($img){ //get dimensions $w = imagesx($img); $h = imagesy($img); //copy process $copy = imagecreatetruecolor($w, $h); imagecopy($copy, $img, 0, 0, 0, 0, $w, $h); return $copy; }