1. 程式人生 > >image-orientation: 讓圖片自動旋轉

image-orientation: 讓圖片自動旋轉

提醒:本文最後更新於 1944 天前,文中所描述的資訊可能已發生改變,請謹慎使用。

晚上 ao 大哥發過來一個連結,是關於 firefox 開始支援「image-orientation」這個 css 屬性的,我用最新的 Firefox Nightly 26.0a1 做了一些測試。

我在一年半前寫過一篇《圖片自動旋轉的前端實現方案》,原理是先用 JS 從圖片二進位制中解析出 Exif 資訊,再用 canvas、css3 等方案讓圖片旋轉到正確的位置。不知道「Exif 是什麼,以及如何從 Exif 解析出圖片正確方向」的同學可以先看我之前的那篇文章。

目前只有 Firefox26 支援這個讓圖片旋轉的 css 屬性,它的語法定義如下:

Formal syntax: from-image | <angle> | [<angle>? flip]

其中「from-image」表示使用從 Exif 中獲取到的方向;也可以使用 <angle> 指定要旋轉的角度;還可以用 flip 關鍵字對圖片水平翻轉,<angle> 和 flip 結合使用時表示先旋轉,再水平翻轉。

<angle> 預設值是「0deg」,大於 0 的值表示順時針旋轉,小於 0 的值表示逆時針旋轉(注:我測試的 Firefox 26.0a1,小於 0 的角度會被忽略,沒任何效果,computed 值是 0deg。應該是實現錯誤)。<angle> 只能是 90 的整數倍,否則按最接近的 90 的倍數處理。如 44deg 會當成 0deg,45deg 會當成 90deg:

Firefox Image Orientation

需要注意的是,image-orientation 只能用於 <img> 標籤,不能用於背景圖等其它場景。另外它可以被繼承,也就是說在容器上定義的 image-orientation,對容器內所有的 <img> 圖片都有效。

如果給圖片指定了寬度或高度中的一個,旋轉後由於寬高交換,會導致另一個值發生變化,就像上面那張圖那樣。而很多實際應用中,圖片寬高是事先獲取好的,但使用 image-orientation 可能會使圖片插入到文件後寬高發生交換,這一點尤其需要注意。

總的看來,這個屬性值離實際使用還有很長一段距離。現階段要旋轉或翻轉圖片,可以用支援度更高的 transform;要根據 Exif 自動旋轉圖片,還是在後端處理更靠譜。

參考:

--EOF--

提醒:本文最後更新於 1944 天前,文中所描述的資訊可能已發生改變,請謹慎使用。

相關推薦

image-orientation: 圖片自動旋轉

提醒:本文最後更新於 1944 天前,文中所描述的資訊可能已發生改變,請謹慎使用。 晚上 ao 大哥發過來一個連結,是關於 firefox 開始支援「image-orientation」這個 css 屬性的,我用最新的 Firefox Nightly 26.0a1 做了一些測試。 我在一年半前寫過一

iOS開發技巧之:相機獲取到的圖片自動旋轉90度解決辦法

本文轉載自這裡:http://blog.csdn.net/hitwhylz/article/details/39518463 今天寫demo的時候發現, 如果把通過相機獲取到的圖片,直接進行操作, 比如裁剪, 縮放, 則會把原圖片向又旋轉90度。 剛開始覺得莫名其妙, 不知所措。 後來百度了

iOS開發- 相機 攝像頭 獲取到的圖片自動旋轉90度解決辦法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

最簡單的IjkPlayer自動旋轉帶有rotation視訊的方法

問題 在專案裡面我們使用了ijkplayer0.8.8版本去播放網路視訊,發現有一些視訊播放時被拉伸了。如下圖: 把視訊抓下來查明原因,發現是視訊metadata裡面帶了rotation資訊,而視訊的寬高被調換了。 解決方法 官方的解決方法是給一個ROTATION_CH

IOS 圖片自動旋轉

+ (UIImageView *)rotate360DegreeWithImageView:(UIImageView *)imageView{     CABasicAnimation *animation = [ CABasicAnimation          

前端把圖片轉為base64,解決手機上傳圖片自動旋轉的問題

使用這個首先要下載exif.js。jsp頁面引用這個js,下載連結:https://link.jianshu.com?t=http://code.ciaoca.com/javascript/exif-js/jsp部分:上傳圖片:<input type="file" ac

圖片自動旋轉的前端實現方案

提醒:本文最後更新於 2522 天前,文中所描述的資訊可能已發生改變,請謹慎使用。 隨著智慧手機的普及,大家已經習慣隨手拍點照片傳網上了。有時候傳上去的照片方向會不對,甚至還有腦袋朝下的情況。為此,各大微博不約而同的給照片增加左右旋轉的功能。這樣能解決問題,但我們是否能更進一步,自動選擇正確的照片方

iOS照相機獲取到的圖片自動旋轉90度解決辦法

情景再現:     iOS開發過程中,要實現用用手機攝像頭拍一張照片,經過裁剪壓縮,然後發出去。結果發出去的圖片始終是逆時針旋轉了90度的圖片。 事出有因:     相機拍照後直接取出來的UIimage(用UIImagePickerControllerOriginalIma

Android之圖片勻速旋轉效果

關於其中的屬性意義如下(紅色部分加以注意): android:fromDegrees 起始的角度度數 android:toDegrees 結束的角度度數,負數表示逆時針,正數表示順時針。如10圈則比android:fromDegrees大3600即可 android:pivotX 旋轉中心的X座標 浮點數或是

iOS拍照之後圖片自動旋轉90度解決辦法

今天開發一個拍照獲取照片的功能的時候, 發現上傳之後圖片會自動旋轉90. 測試發現, 只要是圖片大於2M, 系統就會自動翻轉照片   相機拍照後直接取出來的UIimage(用UIImagePickerControllerOriginalImage取出),它本身的im

CSS如何圖片自動縮放

由於手機開發需要面對各種不同解析度的螢幕,所以,往往需要讓圖片能夠自動調整高度或者寬度。 如果你的圖片的橫向寬度是根據父物件自動匹配的,那麼往往希望圖片的高度能自動成比例的縮放,否則圖片會變形。可以按照如下設定CSS: .img{width : 100%;height :

獲取後臺輪播圖圖片自動播放

web parse nim 默認 fun 是否 images var 斷圖 1、從後臺獲取輪播圖圖片 $(function(){  //輪播圖方法(圖片索引,對應圖片,圖片長度)   function lunImg(nums,img,imgLength) {

iOS開發 CGAffineTransform 圖片旋轉, 旋轉後獲得圖片旋轉的角度

1.讓圖片旋轉 UIImageView *imageView = [[UIImageView alloc]init]; imageView.frame = CGRectMake(50, 50

編輯文章時怎麼 遠端儲存圖片自動打勾?

後臺>系統設定>管理資料表>管理欄位>修改newstext的”輸入表單替換html程式碼” <input name="copyimg" type="checkbox" id="copyimg" value="1" checke

div背景圖片自動拉伸,而不是平鋪!超簡單!

無法拉伸! 但是可以用 background-repeat:no-repeat; 這個方法來 控制背景不會平鋪! 或者將你上面的程式碼改為 <div id="BgImg" style="height: 194px; width:100%; back

JQuery外掛圖片旋轉任意角度

jQuery.fn.rotate = function(angle,whence) { var p = this.get(0); // we store the angle inside the image tag for persistence if (!whence) { p.angle =

jQuery旋轉外掛jquery.rotate.js 圖片旋轉

演示1 直接旋轉一個角度 $('#img1').rotate(45); 演示2 滑鼠移動效果 $('#img2').rotate({      bind : {         mouseover : function(){             $(this).rotate({animateTo: 1

iOS中(相簿)攝像頭獲取的圖片上傳至伺服器被自動旋轉

今天寫專案的時候發現, 通過相機(相簿)獲取到的圖片顯示是正的,但是上傳至伺服器後下次從伺服器讀取就被莫名其妙的旋轉了,開始時候以為是伺服器的原因,最後原來是我的原因:如果把通過相機獲取到的圖片,直接進行操作, 比如裁剪, 縮放, 則會把原圖片向右旋轉90度。 上網查後

c# pictureBox1.Image的獲得圖片路徑的三種方法 winform

相對 body req () ebr art www ref clas 代碼如下:c# pictureBox1.Image的獲得圖片路徑的三種方法 winform 1.絕對路徑:this.pictureBox2.Image=Image.FromFile("D:\\00

在hibernate5中,關於hibernate自動創建表報錯的問題。

dia per div error tin 創建表 之前 dial dialect 問題描述:在讓hibernate創建自動建表時報了一下錯誤: Error executing DDL via JDBC Statement 問題解決:在hibernate.cfg.xml