我想旋转来自数据库的PNG图像,然后再次更新回mysql。

$DataImage=$rs[0]['file_image']; // image from DB as base 64


我的旋转功能

ob_start();
header( 'Content-Type: image/png' );
$destImage = imagerotate($DataImage, 90, 0) ;
imagepng($destImage);
$image_thumb =mysql_real_escape_string(ob_get_contents());
$imageDV=$image_thumb;
ob_end_clean();


我得到的是

我的PNG图片显示为黑色背景。而且旋转根本没有发生。
谢谢

最佳答案

您需要创建一个透明层。
您将在这里找到解决方案:

ob_start();
header( 'Content-Type: image/png' );
$transp = imagecolorallocatealpha($DataImage,0,0,0,127 );
$destImage  = imagerotate($DataImage, 90, $transp, 1);
imagealphablending($destImage, false );
imagesavealpha($destImage, true );
imagepng($destImage);
ob_end_clean();


真诚的
马修

10-06 02:53