PHP如何实现图片旋转效果的实例代码(imagecreatefrompng)

分类:PHP_Python| 发布:佚名| 查看: | 发表时间:2014/12/10

PHP对图像的旋转

<div>
<h4>旋转之前</h4>
<img src="1.png" style="border:1px solid red;">
</div>
<?php
header("content-type","text/html;charset=utf-8");

/*
*图片沿y轴旋转,以png格式为例 @郑州网建
*@param string $filename 图片的url
*/
function turn_y($filename)
{
/*创建图片资源*/
$backy = imagecreatefrompng($filename);

/*获取大小*/
$widthy = imagesx($backy);
$heighty = imagesy($backy);

/*创建新的图片资源,保存翻转后的图片*/
$newy = imagecreatetruecolor($widthy, $heighty);

/*沿着y轴翻转,就是将原图从右向左按一个像素宽度向新资源中逐个复制*/
for ($i=0; $i < $widthy; $i++) {
imagecopy($newy,$backy,$widthy-$i-1,0,$i,0,1,$heighty);
}

/*保存翻转后的图片@郑州网建*/
imagepng($newy,'test3.png');

/*释放资源*/
imagedestroy($backy);
imagedestroy($newy);
}

/*
*图片沿x轴旋转,以png格式为例
*@param string $filename 图片的url
*/
function turn_x($filename)
{
/*创建图片资源*/
$backx = imagecreatefrompng($filename);

/*获取大小*/
$widthx = imagesx($backx);
$heightx = imagesy($backx);

/*创建新的图片资源,保存翻转后的图片*/
$newx = imagecreatetruecolor($widthx, $heightx);

/*沿着x轴翻转,就是将原图从上到下按一个像素宽度向新资源中逐个复制*/
for ($i=0; $i < $heightx; $i++) {
imagecopy($newx,$backx,0,$heightx-$i-1,0,$i,$widthx,1);
}

/*保存翻转后的图片@camnpr*/
imagepng($newx,'test4.png');

/*释放资源*/
imagedestroy($backx);
imagedestroy($newx);
}
/*调用函数@郑州网建*/
turn_y('1.png');
turn_x('1.png');
?>
<div style="float:left">
<h4>沿着y轴旋转</h4>
<img src="test3.png" style="border:1px solid red;">
</div>
<div style="float:left">
<h4>沿着x轴旋转</h4>
<img src="test4.png" style="border:1px solid red;">
</div>
365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/php-python/1797.html