2013-01-14 44 views
0

我想從手機上傳一些照片使用jQuery的移動和PHP,但上傳後,我的照片總是在橫向格式,即使我的照片是在我的iphone上的肖像格式!jquery移動定位上傳照片

所以我不知道哪一個必須旋轉或沒有。

謝謝

回答

0

我有同樣的問題。我的解決方案有點快而骯髒,但在這裏你去:

編寫一個函數,當圖像加載時調用,檢查圖像是否要在橫向渲染。

$(".imgTile").load(function(){  
    if(this.width>this.height){ 
     $(this).css("transform","rotate(90deg)"); 
     $(this).css("top",".7em"); 
     $(this).css("left","-.5em"); 
     } 
    } 

一對夫婦的筆記:我發現我不得不做一些重新定位,以獲得旋轉的圖像正確裝入列表視圖(頂部和左側的屬性,因此設置),所以你可能需要調整這個爲您的需求。其次,不同的瀏覽器有不同的CSS「變換」屬性,因此您可能需要設置每個屬性以支持跨瀏覽器。這裏是關於這些屬性的指南http://www.w3schools.com/cssref/css3_pr_transform.asp

編輯:我花了一些時間,想出了一個更穩固的解決方案。

首先,使用PHP讀取EXIF標籤:

$exif=exif_read_data("uploads/$fileExtension.jpg",0,true); 
$orient=$exif["IFD0"]["Orientation"]; 

一些研究到EXIF標準顯示,這三個案件iPhone將產生如下:

1--不需要旋轉 3--需要180度。旋轉 6--要求90度。旋轉

然後使用PHP的了shell_exec運行下面的shell腳本,它使用imagemagick破壞EXIF頭和身體旋轉圖像指定金額:現在

#!/bin/bash                  
    for i in $[filename] 
      do convert -rotate $[number of degrees] $i $i 
    done 

mogrify -strip $[filename] 

,圖像將被正確導向無處不在,並且讀取EXIF標頭的瀏覽器不會以任何不同的方式顯示它。

剩下要做的唯一事情就是根據標記值使用正確的參數執行腳本。

希望這會有所幫助!