我尝试获取 PNG 的alpha
。我正在使用imagepng()
执行此操作。
我的问题是alpha
只返回0。
我使用alpha进行PNG的代码
$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);
我的阅读PNG alpha代码
$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。
答案 0 :(得分:7)
在致电imageSaveAlpha
之前,您应致电imageSaveAlpha
和imagesetpixel
:
imageAlphaBlending($gd, false);
imageSaveAlpha($gd, true);
imagesetpixel($gd, 0,0, imagecolorallocatealpha($gd, 200,200,200,1));
答案 1 :(得分: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>