2017-04-18 6 views
10

के साथ बनाए गए पीएनजी से अल्फा प्राप्त करें I पीएनजी के alpha प्राप्त करने का प्रयास करें। मैं इसे imagepng() के साथ कर रहा हूं। मेरे मुद्दा alpha रिटर्न है केवल 0.imagepng()

अल्फा के साथ पीएनजी बनाने के लिए मेरे कोड

$x = 1; 
$y = 1; 
$gd = imagecreatetruecolor($x, $y); 
imagesetpixel($gd, 0,0, imagecolorallocatealpha($gd, 200,200,200,1)); 
imageAlphaBlending($gd, false); 
imageSaveAlpha($gd, true); 
imagepng($gd,"test.png"); 
imagedestroy($gd); 

पीएनजी अल्फा पढ़ने के लिए मेरे कोड

$im = imagecreatefrompng("test.png"); 
$rgb = imagecolorat($im, 0, 0); 
$colors = imagecolorsforindex($im, $rgb); 
$red = (int) $colors["red"]; 
$blue = (int) $colors["blue"]; 
$green = (int) $colors["green"]; 
$alpha = (int) $colors["alpha"]; // return only 0 

मैं पता नहीं क्यों यह केवल 0 देता है और नहीं 1.

उत्तर

7

आप sh ould imagesetpixel कॉल करने से पहले imageSaveAlpha और imageSaveAlpha फोन:

imageAlphaBlending($gd, false); 
imageSaveAlpha($gd, true); 
imagesetpixel($gd, 0,0, imagecolorallocatealpha($gd, 200,200,200,1)); 
+0

अच्छा के साथ अपने हल है! धन्यवाद। यह आसान था :-) !!! –

1

फ्रैंक,

यहाँ कोड

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <title>Test</title> 

    </head> 
    <body> 

     <a href="index.php" class="navbar-brand"> 
      <?php 
      $x = 1; 
      $y = 1; 
      $gd = imagecreatetruecolor($x, $y); 
      imageAlphaBlending($gd, false); 
      imageSaveAlpha($gd, true); 
      imagesetpixel($gd, 0, 0, imagecolorallocatealpha($gd, 200, 200, 200, 1)); 
      imagepng($gd, 'img/logo.png" '); 
      imagedestroy($gd); 

      $im = imagecreatefrompng('img/logo.png'); 
      $rgb = imagecolorat($im, 0, 0); 
      $colors = imagecolorsforindex($im, $rgb); 
      $red = (int) $colors["red"]; 
      $blue = (int) $colors["blue"]; 
      $green = (int) $colors["green"]; 
      echo $alpha = (int) $colors["alpha"]; // return only 0 
      ?> 
     </a> 

    </body> 
</html> 
संबंधित मुद्दे