下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第PHP實(shí)現(xiàn)圖片旋轉(zhuǎn)的方法詳解最近有一個(gè)需求需要將前端上傳過(guò)來(lái)的圖片進(jìn)行逆時(shí)針旋轉(zhuǎn)90,這個(gè)主要需要使用到php的imagerotate方法對(duì)于圖片進(jìn)行旋轉(zhuǎn),具體實(shí)現(xiàn)方法如下:
php
namespacecommon\traits;
useYii;
useyii\helpers\FileHelper;
*圖片旋轉(zhuǎn)處理trait
*@authorwangjian
*@since1.0
classImageRotate
*base64圖片旋轉(zhuǎn)
*@param$image需要旋轉(zhuǎn)的base64圖片
*@paramstring$rotate逆時(shí)針旋轉(zhuǎn)角度
*@paramfalse$savePath保存的圖片路徑,false返回base64格式
publicstaticfunctionbase64Rotate($image,$rotate='90',$savePath=false)
if(empty($image)){
returnfalse;
if(preg_match('/^(data:\s*image\/(\w+);base64,)/',$image,$result)){
$type=$result[2];
//設(shè)置臨時(shí)目錄
$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);//旋轉(zhuǎn)圖片
//刪除臨時(shí)文件
@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;
returnfalse;
*本地圖片旋轉(zhuǎn)
*@param$image需要旋轉(zhuǎn)的本地圖片
*@paramstring$rotate逆時(shí)針旋轉(zhuǎn)角度
*@paramfalse$savePath保存的圖片路徑,false返回替換原圖
publicstaticfunctionimageRotate($image,$rotate='90',$savePath=false)
if(empty($image)){
returnfalse;
//旋轉(zhuǎn)圖片
$newImage=self::rotateImage($image,$rotate);
ob_start();
if($savePath===false){
//替換原圖
$url=$image;
}else{
$url=$savePath;
$imageString=imagepng($newImage,$url);
ob_end_clean();
return$imageString;
*@param$file需要旋轉(zhuǎn)的圖片
*@param$rotate逆時(shí)針旋轉(zhuǎn)角度
privatestaticfunctionrotateImage($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);//逆時(shí)針旋轉(zhuǎn)
//獲取旋轉(zhuǎn)后的寬高
$srcWidth=imagesx($rotateImage);
$srcHeight=imagesy($rotateImage);
//創(chuàng)建新圖
$newImage=imagecreatetruecolor($srcWidth,$srcHeight);
//分配顏色+alpha,將顏色填充到新圖上
$alpha=imagecolorallocatealpha($newImage,0,0,0,127);
imagefill($newImage,0,0,$alpha);
//將源圖拷貝到新圖上,并設(shè)置在保存PNG圖像時(shí)保存完整的alpha通道信息
imagecopyresampled($newImage,$rotateImage,0,0,0,0,$srcWidth,$srcHeight,$srcWidth,$srcHeight);
imagesavealpha($newImage,true);
return$newImage;
具體使用:
1:base64圖片旋轉(zhuǎn)并輸出base64
ImageRotate::base64Rotate('base64圖片','旋轉(zhuǎn)角度');
2:ba
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 24276-2025通過(guò)計(jì)算進(jìn)行低壓成套開(kāi)關(guān)設(shè)備和控制設(shè)備溫升驗(yàn)證的一種方法
- 2025年中職煙草栽培與加工(煙草技術(shù)專題)試題及答案
- 2025年大學(xué)交通運(yùn)輸(物流運(yùn)輸規(guī)劃)試題及答案
- 2025年大學(xué)農(nóng)村電氣技術(shù)(農(nóng)村新能源利用)試題及答案
- 2026年生物科技(基因編輯技術(shù))試題及答案
- 2025年高職獸醫(yī)服務(wù)(服務(wù)技術(shù))試題及答案
- 2025年高職(野生動(dòng)植物資源保護(hù)與利用)野生動(dòng)物監(jiān)測(cè)試題及答案
- 2025年中職護(hù)理(老年護(hù)理)試題及答案
- 2025年高職電網(wǎng)監(jiān)控技術(shù)(電網(wǎng)監(jiān)控操作)試題及答案
- 2025年高職(中藥購(gòu)銷員)中藥銷售綜合測(cè)試題及答案
- 商超信息系統(tǒng)操作規(guī)定
- 如何做好一名護(hù)理帶教老師
- 房地產(chǎn)項(xiàng)目回款策略與現(xiàn)金流管理
- 花溪區(qū)高坡苗族鄉(xiāng)國(guó)土空間總體規(guī)劃 (2021-2035)
- 非連續(xù)性文本閱讀(中考試題20篇)-2024年中考語(yǔ)文重難點(diǎn)復(fù)習(xí)攻略(解析版)
- 專題13 三角函數(shù)中的最值模型之胡不歸模型(原卷版)
- 門(mén)診藥房西藥管理制度
- 新能源汽車生產(chǎn)代工合同
- 2025年中煤科工集團(tuán)重慶研究院有限公司招聘筆試參考題庫(kù)含答案解析
- 消防救援預(yù)防職務(wù)犯罪
- 一體化泵站安裝施工方案
評(píng)論
0/150
提交評(píng)論