麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > PHP > 正文

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

2024-09-04 11:46:56
字體:
來源:轉載
供稿:網友

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

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

沒辦法,自己解決吧!

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

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

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

Linux推薦使用源碼安裝

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

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

提取碼:d6b4

2、編譯安裝

進入源碼的目錄

使用/usr/local/php/bin/phpize命令,生成configure(假設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,有沒有這兩個拓展

準備工作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中的值代表什么含義,我還沒查到,等查到再補充吧,歡迎大佬評論區補充

說一下遇到的坑

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久久免费精品国产小说色大师 | 龙的两根好大拔不出去h | 国产高潮好爽好大受不了了 | 国产正在播放 | 亚洲91精品 | 91亚洲精品一区二区福利 | 色淫视频| 精品国产一区二区在线 | 全黄性性激高免费视频 | 久久密 | 亚洲国产色婷婷 | 久久国产精品二区 | 国产美女一区二区在线观看 | 欧美一级毛片欧美一级成人毛片 | 日韩精品中文字幕一区二区 | 精品国产九九九 | 毛片在哪里看 | 精品国产乱码久久久久久丨区2区 | 国产精品一二区 | 一区国产在线 | 国产真实孩交 | 精国产品一区二区三区四季综 | 天天夜夜操操 | 黄色一级片免费在线观看 | 亚洲成人综合网站 | 黄色免费小视频网站 | 羞羞视频免费入口网站 | 国产一国产精品一级毛片 | 性生活视频一级 | 国产一级二级在线播放 | 一级做人爱c黑人影片 | 日韩黄色免费在线观看 | 美女视频网站黄色 | 亚洲欧洲日产v特级毛片 | 亚洲国产网址 | 中文字幕22页 | www.99久久久| 亚洲综合91| 国产成人羞羞视频在线 | 国产高清美女一级毛片久久 | 国产一区二区视频在线播放 |