2010-06-14 22 views
0

J'essaie de prendre un png rectangulaire et d'ajouter de la profondeur en utilisant GD en dupliquant l'arrière-plan et en le déplaçant vers le bas 1 pixel et 1 pixel droit. J'essaie de préserver un arrière-plan transparent. J'ai un tas de problèmes à préserver la transparence.Composition PNG en utilisant GD et PHP

Toute aide serait grandement appréciée.

Merci!

$obj = imagecreatefrompng('rectangle.png'); 
    $depth = 5; 
    $obj_width = imagesx($obj); 
    $obj_height = imagesy($obj); 
    imagesavealpha($obj, true); 
     for($i=1;$i<=$depth;$i++){ 
      $layer = imagecreatefrompng('rectangle.png'); 
      imagealphablending($layer, false); 
      imagesavealpha($layer, true); 

      $new_obj = imagecreatetruecolor($obj_width+$i,$obj_height+$i); 
      $new_obj_width = imagesx($new_obj); 
      $new_obj_height = imagesy($new_obj); 
      imagealphablending($new_obj, false); 
      imagesavealpha($new_obj, true); 

      $trans_color = imagecolorallocatealpha($new_obj, 0, 0, 0, 127); 
      imagefill($new_obj, 0, 0, $trans_color); 

      imagecopyresampled($new_obj, $layer, $i, $i, 0, 0, $obj_width, $obj_height, $obj_width, $obj_height); 
      //imagesavealpha($new_obj, true); 
      //imagesavealpha($obj, true); 
     } 
    header ("Content-type: image/png"); 
    imagepng($new_obj); 
    imagedestroy($new_obj); 
+0

Quel code avez-vous essayé? – artlung

+3

Peut-être utile: http://stackoverflow.com/questions/32243/can-png-image-transparency-be-preserved-when-using-phps-gdlib-imagecopyresampled – artlung

+0

J'ai ajouté mon code actuel ci-dessus. – Dominic

Répondre