问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php怎么在上传图片之前旋转90度然后在上传

发布网友 发布时间:2022-04-28 04:10

我来回答

5个回答

懂视网 时间:2022-04-28 08:31

php能旋转图片,其实现方法是:首先创建图像资源;然后使用“imagerotate()”函数按指定的角度旋转;最后通过“$imagejpeg($rotate,$filename);”方法保存旋转后的图片即可。

推荐:《PHP视频教程》

PHP图片处理之图片旋转和图片翻转

PHP图片处理之图片旋转和图片翻转使用imagerotate函数实现,自定义了多个函数来实现功能需求.

图片的旋转是按特定的角度来转动图片,图片的翻转则是将图片的内容按特定的方向对调。

图片翻转需要自己编写函数来实现,而旋转图片则可以直接借助GD库中提供的imagerotate()函数完成。

imagerotate()函数的原型如下所示:

resource imagerotate(resource src_im , floatangle, int bgd_color [,intignore_transpatrent])

该函数可以将src_im图像用给定的角度旋转,bgd_color指定了旋转后没有覆盖到的部分的颜色。旋转的中心是图像的中心,旋转后的图像会按比例缩小以适合目标图像的大小(边缘不会被剪去)。如果ignore_transpatrent被设为非零值,则透明色会被忽略(否则会被保留)。下面以JPEG格式的图片为例,声明一个可以旋转图片的函数rotate(),代码如下所示:

<?php
 //用给定角度旋转图像,以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()代码如下所示:

代码如下:

<?php
 function trun_y($filename){
 $back =imagecreatefromjpeg($filename);
 
 $width = imagesx($back);
 $height = imagesy($back);
 
 //创建一个新的图片资源,用来保存沿Y轴翻转后的图片
 $new =imagecreatetruecolor($width, $height);
 //沿y轴翻转就是将原图从右向左按一个像素宽度向新资源中逐个复制
 for($x=0 ;$x<$width; $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轴翻转,就是将原图从上向下(或从下向上)旋转,代码如下所示:

代码如下:

<?php
 function trun_x($filename){
 $back = imagecreatefromjpeg($filename);
 
 $width = imagesx($back);
 $height = imagesy($back);
 
 //创建一个新的图片资源,用来保存沿Y轴翻转后的图片
 $new =imagecreatetruecolor($width, $height);
 //沿y轴翻转就是将原图从右向左按一个像素宽度向新资源中逐个复制
 for($y=0 ;$y<$height; $y++){
  //逐条复制图片本身高度,1个像素宽度的图片到薪资源中
  imagecopy($new,$back,0, $height-$y-1, 0, $y, $width,1);
 }
 
 //保存翻转后的图片
 imagejpeg($new,$filename);
 imagedestroy($back);
 imagedestroy($new);
 }
 
 trun_x("brophp.jpg")
?>

注:

imagecopy (拷贝图像的一部分)

说明:bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int$src_x , int $src_y , int $src_w , int $src_h )

将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。

热心网友 时间:2022-04-28 05:39

PHP只能操作服务端,不能操作客户端的东西。
你可以使用普通上传之后,再使用GD库对已经上传的图片进行旋转,然后保存。
非要在客户端操作的话,可以借助Jquery。追问怎么使用GD库呢?用什么函数,麻烦能写一个例子吗?谢谢

追答怎么上传我就不说了,说一下,用GD库函数旋转图像。

热心网友 时间:2022-04-28 06:57

首先你要明白是要在上传前还是上传后,PHP是在服务器端运行的,所以如果你要用php处理,那就一定要先上传,后处理图片。
你可以这样做:首先上传到一个存放临时文件的目录,并且图片也是临时储存,上传完毕后直接对图片进行处理,使用 imagejpeg(imagerotate(php图片对象,旋转角度,0)),直接改变文件,然后你再发送图片的相对路径到前台即可。

热心网友 时间:2022-04-28 08:32

PHP是在服务器上运行的,所以不能在上传之前处理,只有把图片传到服务器上之后才能用PHP处理

热心网友 时间:2022-04-28 10:23

你这个是JS问题,不是PHP问题
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
做青红椒炒毛肚有哪些好吃的诀窍? 如何自制好吃的香辣毛肚? 穿越火线警告码SX(2,509,0)如何解决 CF sx警告码(2,770,0)什么原因 ...要求重新启动电脑 警告码是2 xxxx 0 有时重启4 5次才能玩 win7系统... 穿越火线 sx 警告码 2,994,0 怎么解决 CF出现非法模块SX警告码(2,990,0) 我为什么上CF体验服没开G有非法模块???怎么办啊 警告码(2,502,0) 穿越火线进游戏后 2分钟左右 就出来个 SX 警告码2,990,0 看到刘老师那慈祥的面庞,我感慨万分,我想到了这样几个赞美刘老师的成语... 绝地求生游戏里买不了东西,显示要开启Steam overplay什么鬼? 辐射避难所 steam overlay怎么开 steam上lsplibrary怎么用 steam+overlay 《apex》英雄steam版进不去是什么原因? steam怎么开启steamoverlay steam overlay怎么打开 pubg游戏里面商店显示请在steam设置steam overlay 怎么打开steam overlay?有什么作用 怎样开启steam overlay 玩with steam overlay enabled 老头环steam存档位置 怎么去掉百度主页后缀index.php thinkkphp url怎么去掉后面的index.php PHP接收中文参数乱码? ajax post php 乱码 php传过来的值为错乱字符怎么转码? 使用httpclient的post获取数据都是乱码 PHP echo POST的数据乱码! php post请求貌似乱码了。貌似是。我也不是百分之百确定。 phptpshop里怎样改变图片方向 PHP与透明旋转图像问题,怎么解决 php图片加字将字旋转位置 PHP做图片自动转换,如何做? 各位高手请教将图片水平、垂直翻转(上下,左右)程序 - PHP进阶讨论 怎么用php实现一个div 里面有几张图片 呈现一个滚动的效果 通过鼠标的指针控制上下左右 的触发 如何在PHP网代码中加入图片滚动的效果? php如何判断图片是否倒转 php如何让数据库中的图片在网页首页滚动显示 php codeigniter 图片水印旋转问题 thinkphp image类 缩略图为什么旋转九十度 如何利用php判断一个参数在一个数组中是否存在? php怎么判断地址栏是否有参数 PHP判断是否有Get参数的方法 php 判断url后面是否有参数 php中检查 url 链接是否已经有参数,添加 php 怎么判断一个接受到的参数是否为空 php怎么检查页面传递间是否带参数? php 没有参数 改怎么没判断 php 中 判断数组中是否有值