国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP處理圖片(orientation)旋轉(zhuǎn)問題

2024-09-04 11:46:56
字體:
供稿:網(wǎng)友

在PHP日常開發(fā)中,經(jīng)常需要處理前端上傳來的圖片,最簡單的就是保存一下,有時候需要進(jìn)行一些處理,比如壓縮圖片,生成縮略圖等等。

這些還好說,更坑的是,有時候前端上傳的圖片,服務(wù)端轉(zhuǎn)存后,莫名其妙的旋轉(zhuǎn)了90度,旋轉(zhuǎn)了180度。關(guān)鍵是有的時候這些圖片在前端顯示是正常的,到服務(wù)端轉(zhuǎn)存后,就出問題了,前端的同學(xué)表示不背這鍋,這是你后端的問題

沒辦法,自己解決吧!

PHP中有處理圖片旋轉(zhuǎn)的拓展exif,要處理圖片旋轉(zhuǎn)問題,必須安裝這個拓展,exif拓展依賴php_mbstring這個拓展,所以要安裝這兩個拓展。

在phpinfo中能看到這兩個拓展,就OK了。

如果沒有安裝,就需要手動安裝一下了,只說Linux上怎么安裝,Windows上一般都用WAMP,WAMP可以一鍵安裝的。

Linux推薦使用源碼安裝

1、首先下載拓展的源碼,可以去官網(wǎng)下載,我用的php7.2,可以在這里下載:

鏈接:https://pan.baidu.com/s/1VDeJVJ5yEZZyCp8l9pNMgA

提取碼:d6b4

2、編譯安裝

進(jìn)入源碼的目錄

使用/usr/local/php/bin/phpize命令,生成configure(假設(shè)php安裝在/usr/local/php目錄下)

使用./configure --with-php-config=/usr/local/php/bin/php-config命令生成 Makefile文件

使用make && make install命令編譯安裝

去修改php.ini文件(可能在/usr/local/php/etc目錄或者/etc/php/目錄下),找到 extension 把 extension=mbstring和 extension=exif前面的;去掉沒有的加上這兩句,把extension=mbstring放在extension=exif前面,保存退出

重啟Apache或者nginx,查看phpinfo,有沒有這兩個拓展

準(zhǔn)備工作OK了,可以開始寫代碼了,只寫一下簡單的邏輯代碼吧

  1. $str = '文件路徑'
  2.  
  3.         $savePath='保存路徑'
  4.  
  5.         $image = imagecreatefromstring(file_get_contents($str)); 
  6.  
  7.         $exif = exif_read_data($str); 
  8.  
  9.  
  10.  
  11.         if (!emptyempty($exif['Orientation'])) { 
  12.  
  13.             switch ($exif['Orientation']) { 
  14.  
  15.                 case 8: 
  16.  
  17.                     $image = imagerotate($image, 90, 0); 
  18.  
  19.                     break
  20.  
  21.                 case 3: 
  22.  
  23.                     $image = imagerotate($image, 180, 0); 
  24.  
  25.                     break
  26.  
  27.                 case 6: 
  28.  
  29.                     $image = imagerotate($image, -90, 0); 
  30.  
  31.                     break
  32.  
  33.             } 
  34.  
  35.             imagejpeg($image$savePath); 
  36.  
  37.             imagedestroy($image); 
  38.  
  39.         } 

Orientation中的值代表什么含義,我還沒查到,等查到再補充吧,歡迎大佬評論區(qū)補充

說一下遇到的坑

獲取圖片信息,在php7之前,用exif_imagetype()函數(shù),在php7以后用exif_read_data()函數(shù)

一定要判斷是獲取到圖片信息的數(shù)組中否存在Orientation字段,因為很多圖片中沒有沒有這個屬性,或者屬性為空,一定要判斷!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 江都市| 长顺县| 道真| 朝阳市| 临桂县| 宁化县| 盐亭县| 松潘县| 资源县| 镇康县| 巢湖市| 盐边县| 西乌| 凤阳县| 大姚县| 青冈县| 崇左市| 通州市| 寻乌县| 古田县| 镇赉县| 台北市| 合山市| 桃园市| 枣庄市| 东港市| 中江县| 思茅市| 伊吾县| 新邵县| 广灵县| 界首市| 六安市| 金坛市| 桃园县| 郯城县| 新河县| 黄冈市| 虹口区| 丰城市| 巫山县|