所以,一切工作正常。我已经调整了源PNG大小并正确定位在创建的背景上,但PNG外部的其他区域变黑。我已经通过使用imagecolortransparent使它变得透明,但是这使png边缘变得光滑。
这是我目前正在制作PNG周围的黑色条纹。请记住,我只在这里处理PNG图像。
// TARGET IMAGE
$target = imagecreatetruecolor($this->request['width'], $this->request['height']);
imagealphablending($target, false);
imagesavealpha($target, true);
// SOURCE IMAGE
$source = imagecreatefrompng($this->src_image);
// RESAMPLING
imagecopyresampled($target, $source, $offsetX, $offsetY, 0, 0, $tnWidth, $tnHeight, $this->src_width, $this->src_height);
// FINAL IMAGE
imagepng($target, $source, $quality);
// MEMORY CLEAN UP
imagedestroy($source);
imagedestroy($target);
// PRODUCES SOMETHING LIKE THIS
+--------------------------------+
| BLACK AREA |
+--------------------------------+
| |
| RESIZED PNG |
| WITH TRANSPARENCY |
| |
+--------------------------------+
| BLACK AREA |
+--------------------------------+
// WHERE IT SHOULD HAVE THE BLACK AREAS TRANSPARENT AS WELL
+--------------------------------+
| TRANSPARENT |
+--------------------------------+
| |
| RESIZED PNG |
| WITH TRANSPARENCY |
| |
+--------------------------------+
| TRANSPARENT |
+--------------------------------+希望有人有这方面的经验,因为我发现在线的所有示例都只是谈论在透明BG上调整PNG的大小,这很容易。
TIA