PHP图片处理之图片旋转和图片翻转实例,
图片的旋转和翻转也是Web项目中比较常见的功能,但这是两个不同的概念,图片的旋转是按特定的角度来转动图片,而图片的翻转则是将图片的内容按特定的方向对调。图片翻转需要自己编写函数来实现,而旋转图片则可以直接借助GD库中提供的imagerotate()函数完成。该函数的原型如下所示:
复制代码 代码如下:
resource imagerotate(resource src_im , float angle, int bgd_color [,int ignore_transpatrent])
该函数可以将src_im图像用给定的angle角度旋转,bgd_color指定了旋转后没有覆盖到的部分的颜色。旋转的中心是图像的中心,旋转后的图像会按比例缩小以适合目标图像的大小(边缘不会被剪去)。如果ignore_transpatrent被设为非零值,则透明色会被忽略(否则会被保留)。下面以JPEG格式的图片为例,声明一个可以旋转图片的函数rotate(),代码如下所示:
复制代码 代码如下:
//用给定角度旋转图像,以jpeg图像格式为例
function rotate($filename,$degrees){
//创建图像资源,以jpeg格式为例
$source = imagecreatefromjpeg($filename);
//使用imagerotate()函数按指定的角度旋转
$rotate = imagerotate($source, $degrees, 0);
//旋转后的图片保存
$imagejpeg($rotate,$filename);
}
//把一幅图像brophp.jpg旋转180度
rotate("brophp", 180);
?>
图片翻转并不能随意指定角度,只能设置两个方向:沿Y轴水平翻转或沿X轴垂直翻转。如果是沿Y轴翻转,就是将原图从右向左(或从做向右)按一个像素宽度,以图片自身高度循环复制到新资源中,保存的新资源就是沿Y轴翻转后的图片。以JPEG格式图片为例,声明一个可以沿Y轴翻转的图片函数turn_y()代码如下所示:
复制代码 代码如下:
function trun_y($filename){
$back = imagecreatefromjpeg($filename);
$width = imagesx($back);
$height = imagesy($back);
//创建一个新的图片资源,用来保存沿Y轴翻转后的图片
$new = imagecreatetruecolor($width, $height);
//沿y轴翻转就是将原图从右向左按一个像素宽度向新资源中逐个复制
for($x=0 ;$x
//逐条复制图片本身高度,1个像素宽度的图片到薪资源中
imagecopy($new, $back, $width-$x-1, 0, $x, 0, 1, $height);
}
//保存翻转后的图片
imagejpeg($new,$filename);
imagedestroy($back);
imagedestroy($new);
}
trun_y("brophp.jpg")
?>
本例声明的turn_y()函数只需要一个参数,就是要处理的图片URL。本例调用turn_y()函数将图片沿Y轴进行翻转。如果是沿X轴翻转,就是将原图从上向下(或从下向上)旋转,代码如下所示:
复制代码 代码如下:
function trun_x($filename){
$back = imagecreatefromjpeg($filename);
$width = imagesx($back);
$height = imagesy($back);
//创建一个新的图片资源,用来保存沿Y轴翻转后的图片
$new = imagecreatetruecolor($width, $height);
//沿y轴翻转就是将原图从右向左按一个像素宽度向新资源中逐个复制
for($y=0 ;$y
//逐条复制图片本身高度,1个像素宽度的图片到薪资源中
imagecopy($new, $back,0, $height-$y-1, 0, $y, $width,1);
}
//保存翻转后的图片
imagejpeg($new,$filename);
imagedestroy($back);
imagedestroy($new);
}
trun_x("brophp.jpg")
?>

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。