广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP实现图片旋转的方法详解
  • 847
分享到

PHP实现图片旋转的方法详解

PHP图片旋转方法PHP图片旋转PHP旋转 2022-11-13 19:11:06 847人浏览 八月长安
摘要

最近有一个需求需要将前端上传过来的图片进行逆时针旋转90°,这个主要需要使用到PHP的imagerotate方法对于图片进行旋转,具体实现方法如下: <?php n

最近有一个需求需要将前端上传过来的图片进行逆时针旋转90°,这个主要需要使用到PHP的imagerotate方法对于图片进行旋转,具体实现方法如下:

<?php
 
namespace common\traits;
 
use Yii;
use yii\helpers\FileHelper;
 

class ImageRotate
{
 
    
    public static function base64Rotate($image, $rotate = '90', $savePath = false)
    {
        if (empty($image)) {
            return false;
        }
        if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $image, $result)) {
            $type = $result[2];
            //设置临时目录
            $temporaryPath = '/tmp/';
            $temporaryPath = dirname(Yii::getAlias('@common')) . '/WEB' . $temporaryPath;
            FileHelper::createDirectory($temporaryPath);
 
            //将原图保存到零食目录
            $temporaryImage = date('YmdHis') . rand(1000, 9999) . '.' . $type;
            if (file_put_contents($temporaryPath . $temporaryImage, base64_decode(str_replace($result[1], '', $image)))) {
                $newImage = self::rotateImage($temporaryPath . $temporaryImage, $rotate); //旋转图片
                //删除临时文件
                @unlink($temporaryPath . $temporaryImage);
 
                ob_start();
                if ($savePath === false) { //返回base
                    imagepng($newImage);
                    $imageString = $result[1] . base64_encode(ob_get_contents());
                    @unlink($newImage);
                } else {
                    $imageString = imagepng($newImage, $savePath);
                }
                ob_end_clean();
 
                return $imageString;
            }
        }
 
        return false;
    }
 
    
    public static function imageRotate($image, $rotate = '90', $savePath = false)
    {
        if (empty($image)) {
            return false;
        }
        //旋转图片
        $newImage = self::rotateImage($image, $rotate);
        ob_start();
        if ($savePath === false) {
            //替换原图
            $url = $image;
        } else {
            $url = $savePath;
        }
        $imageString = imagepng($newImage, $url);
        ob_end_clean();
        return $imageString;
    }
 
    
    private static function rotateImage($file, $rotate)
    {
        $imageSize = getimagesize($file);
        $imageSize = explode('/', $imageSize['mime']);
        $type = $imageSize[1];
 
        switch ($type) {
            case "png":
                $image = imagecreatefrompng($file);
                break;
            case "jpeg":
                $image = imagecreatefromjpeg($file);
                break;
            case "jpg":
                $image = imagecreatefromjpeg($file);
                break;
            case "gif":
                $image = imagecreatefromgif($file);
                break;
        }
        $rotateImage = imagerotate($image, $rotate, 0); //逆时针旋转
        //获取旋转后的宽高
        $srcWidth = imagesx($rotateImage);
        $srcHeight = imagesy($rotateImage);
        //创建新图
        $newImage = imagecreatetruecolor($srcWidth, $srcHeight);
        //分配颜色 + alpha,将颜色填充到新图上
        $alpha = imagecolorallocatealpha($newImage, 0, 0, 0, 127);
        imagefill($newImage, 0, 0, $alpha);
        //将源图拷贝到新图上,并设置在保存 PNG 图像时保存完整的 alpha 通道信息
        imagecopyresampled($newImage, $rotateImage, 0, 0, 0, 0, $srcWidth, $srcHeight, $srcWidth, $srcHeight);
        imagesavealpha($newImage, true);
 
        return $newImage;
    }
 
}

具体使用:

1:base64图片旋转并输出base64

ImageRotate::base64Rotate('base64图片', '旋转角度');

2:base64图片旋转并保存

ImageRotate::base64Rotate('base64图片', '旋转角度', '保存地址');

3:本地图片旋转

ImageRotate::imageRotate('本地图片地址', '旋转角度', '保存地址');

根据上面的方法我们就可以实现图片的旋转功能了

到此这篇关于PHP实现图片旋转的方法详解的文章就介绍到这了,更多相关PHP图片旋转内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: PHP实现图片旋转的方法详解

本文链接: https://www.lsjlt.com/news/170696.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP实现图片旋转的方法详解
    最近有一个需求需要将前端上传过来的图片进行逆时针旋转90°,这个主要需要使用到php的imagerotate方法对于图片进行旋转,具体实现方法如下: <php na...
    99+
    2022-11-13
    PHP图片旋转方法 PHP图片旋转 PHP 旋转
  • PHP实现PDF转图片的方法详解
    目录一、开启 Imagick 扩展二、安装imagemagick三、安装Ghostscript软件四、实例Windows环境下 一、开启 Imagick 扩展 1、安装PHP扩展:I...
    99+
    2022-12-21
    PHP PDF转图片 PHP PDF 图片
  • Android 图片缩放与旋转的实现详解
    本文使用Matrix实现Android实现图片缩放与旋转。示例代码如下: 代码如下:package com.android.matrix;import android.app....
    99+
    2022-06-06
    图片 Android
  • Android实现旋转,放大,缩小图片的方法
    本文实例讲述了Android实现旋转,放大,缩小图片的方法。分享给大家供大家参考,具体如下: 项目中需要做到一个预览图片的功能 最初设想自定义个一个view,在onDraw中用...
    99+
    2022-06-06
    小图 方法 图片 Android
  • Exif.js图片旋转修正的方法
    本文实例为大家分享了Exif.js图片旋转修正的具体方法,供大家参考,具体内容如下 上传后图片旋转修正 测试流程 上传 -> base64展示 -> 获取旋转值 ->...
    99+
    2022-11-13
  • PHP如何实现旋转图片验证
    这篇文章主要介绍了PHP如何实现旋转图片验证的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP如何实现旋转图片验证文章都会有所收获,下面我们一起来看看吧。安装composer require&nbs...
    99+
    2023-07-04
  • python opencv旋转图片的使用方法
    目录背景原始图像:opencv函数numpy函数旋转90度参考背景 在图像处理中,有的时候会有对图片进行角度旋转的处理,尤其是在计算机视觉中对于图像扩充,旋转角度扩充图片是一种常见的...
    99+
    2022-11-12
  • C++实现旋转图像的方法
    这篇文章主要讲解了“C++实现旋转图像的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++实现旋转图像的方法”吧!Rotate Image 旋转图像You are given an&n...
    99+
    2023-06-20
  • 怎么使用php代码实现图片旋转方向
    这篇文章主要讲解了“怎么使用php代码实现图片旋转方向”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用php代码实现图片旋转方向”吧!php实现图片旋转方向的代码方法是:1、创建一个p...
    99+
    2023-07-04
  • css怎么实现图片的旋转
    这篇文章主要介绍了css怎么实现图片的旋转,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   1、构建图像轮播框架   首先是HTML。...
    99+
    2022-10-19
  • VB.NET中心旋转图像的实现方法
    这篇文章主要讲解了“VB.NET中心旋转图像的实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VB.NET中心旋转图像的实现方法”吧!我们在学习一门编程语言的时候,需要通过不断的实践去...
    99+
    2023-06-17
  • Android开发之图片旋转功能实现方法【基于Matrix】
    本文实例讲述了Android开发之图片旋转功能实现方法。分享给大家供大家参考,具体如下:在Android中进行图像旋转需要使用Matrix,它包含了一个3*3的矩阵,专门用于进行图像变换匹配。Matrix ,中文里叫矩阵,高等数学里有介绍,...
    99+
    2023-05-30
    android 图片 旋转
  • Java实现将PDF转为图片格式的方法详解
    目录代码编译环境将整个 PDF 文档转换为多个图片完整代码效果图将指定 PDF 页面转换为图片完整代码效果图PDF文件和图片文件,这是两种完全不一样的格式,可是有的时候这两种格式却是...
    99+
    2023-03-23
    Java实现PDF转图片 Java PDF转图片 Java PDF 图片
  • iOS中大尺寸图片的旋转与缩放实例详解
    前言 由于iPhone的硬件性能限制,直到iPhone 6s开始,才将最大内存拓展到2G。 可即使是如此,也不代表一个应用可使用的空间是2G。 一张10000 x 10000的图...
    99+
    2022-05-24
    ios 旋转 缩放
  • html5怎么实现图片的3D旋转效果
    本篇内容主要讲解“html5怎么实现图片的3D旋转效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5怎么实现图片的3D旋转效果”吧!   完整代码如...
    99+
    2022-10-19
  • 如何使用CSS实现图片的旋转效果
    如何使用CSS实现图片的旋转效果CSS(Cascading Style Sheets)是一种用于设置网页样式和布局的标记语言。通过CSS,我们可以实现许多吸引人的网页效果,其中包括图片的旋转效果。在本文中,我们将讨论如何使用CSS来实现图片...
    99+
    2023-11-21
    CSS 图片 旋转
  • opencv图片的任意角度旋转实现示例
    目录一 旋转角度坐标的计算二 旋转任意角度的步骤三 实现一 旋转角度坐标的计算 1.如果O点为圆心,则点P绕点O旋转redian弧度之后,点P的坐标变换为点Q的计算公式为: Q.x=...
    99+
    2022-11-12
  • Android开发实现图片平移、缩放、倒影及旋转功能的方法
    本文实例讲述了Android开发实现图片平移、缩放、倒影及旋转功能的方法。分享给大家供大家参考,具体如下:解析:1)根据原来的图片创建新的图片Bitmap modBm = Bitmap.createBitmap(bm.getWidth()+...
    99+
    2023-05-30
    android 图片 roi
  • 实现微信小程序中的图片旋转效果
    实现微信小程序中的图片旋转效果,需要具体代码示例微信小程序是一种轻量级的应用程序,为用户提供了丰富的功能和良好的用户体验。在小程序中,开发者可以利用各种组件和API来实现各种效果。其中,图片旋转效果是一种常见的动画效果,可以为小程序增添趣味...
    99+
    2023-11-21
    微信小程序 实现 图片旋转
  • Canvas如何实现图片的平移及旋转变化
    这篇文章主要介绍了Canvas如何实现图片的平移及旋转变化,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 平移变换translate() ...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作