2010-06-15 53 views
4

在PHP中複製圖像變量的最簡單方法是什麼?複製圖像變量GD庫

通常你可以簡單地做$varnew = $varold

但是,如果我做了上述操作並且編輯了$ varnew,那麼使用GD庫變量,那麼$ varold也會生效。

很明顯,一種方法是重新打開文件或製作新圖像並將其複製到其中。有更容易的方法嗎?

回答

4

的原因,你的嘗試沒有成功是因爲該變量只存儲一個句柄(內存指針)的GD圖像。 $varnew$varold將仍然存儲相同的指針,從而指向內存中完全相同的圖像。您必須使用imagecopy,或者更糟糕的是,可以再次從文件打開圖像。

2

使用:

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; 

    }