1. 程式人生 > >獲取圖片真實大小

獲取圖片真實大小

lightbox類效果為了讓圖片居中顯示而使用預載入,需要等待完全載入完畢才能顯示,體驗不佳(如filick相簿的全屏效果)。javascript無法獲取img檔案頭資料,真的是這樣嗎?本文通過一個巧妙的方法讓javascript獲取它。

這是大部分人使用預載入獲取圖片大小的例子:

01 var imgLoad = function (url, callback) {
02 var img = new Image();
03
04
img.src = url;
05 if (img.complete) {
06 callback(img.width, img.height);
07 else {
08 img.onload = function () {
09 callback(img.width, img.height);
10 img.onload = 
null;
11 };
12 };
13
14 };

可以看到上面必須等待圖片載入完畢才能獲取尺寸,其速度不敢恭維,我們需要改進。

web應用程式區別於桌面應用程式,響應速度才是最好的使用者體驗。如果想要速度與優雅兼得,那就必須提前獲得圖片尺寸,如何在圖片沒有載入完畢就能獲取圖片尺寸?

十多年的上網經驗告訴我:瀏覽器在載入圖片的時候你會看到圖片會先佔用一塊地然後才慢慢載入完畢,並且不需要預設width與height屬性,因為瀏覽器能夠獲取圖片的頭部資料。基於此,只需要使用javascript定時偵測圖片的尺寸狀態便可得知圖片尺寸就緒的狀態。

當然實際中會有一些相容陷阱,如width與height檢測各個瀏覽器的不一致,還有webkit new Image()建立的圖片會受以處在載入程序中同url圖片影響,經過反覆測試後的最佳處理方式:

相關推薦

獲取圖片真實大小

lightbox類效果為了讓圖片居中顯示而使用預載入,需要等待完全載入完畢才能顯示,體驗不佳(如filick相簿的全屏效果)。javascript無法獲取img檔案頭資料,真的是這樣嗎?本文通過一個巧妙的方法讓javascript獲取它。 這是大部分人使用預載入獲取圖片大小的例子:

js和jquery如何獲取圖片真實的寬度和高度_javascript技巧

寬高 clas 獲取 deb 問題 網頁 log css www. 在做pc網頁的時候,有時候會考慮按照插入的圖片的尺寸來判斷圖片是橫圖還是豎圖。然後判斷過後給予不同的展示方式! 另外一種就是在手機頁面上,在新聞頁插入的圖片往往都是按照圖片的原尺寸來展示,如果手機屏幕太小,

php獲取圖片真實後綴的兩種方法

php獲取圖片真實後綴的兩種方法一、getimagesize(支持base64): 代碼: <?php /* @desc:獲取圖片真實後綴 @param name 文件名 @return suffix 文件後綴 */ function getimgsuffix($name) { $

iOS 非同步載入網路圖片獲取圖片真實尺寸

專案需求: 在網路上載入一組圖片的資料,並且這組圖片要按照比例展示出來 做法分析: (1)首頁介面上要是使用的圖片控制元件的建立,這裡的高度是用設定的高度,這部分需要在主執行緒完成; (2)第二部部分是獲取圖片的實際尺寸,這部分線上程中完成; (3)然後需要在主執行緒重新整

base64_decode() 獲取圖片大小

$img_info = getimagesize('64點陣圖片字串'); print_r($img_info); Array ( [0] => 198 [1] => 198 [2] =

java基礎—java獲取圖片大小和尺寸(本地& 伺服器)

java獲取圖片的大小和尺寸,有兩種獲取的源,一種是讀取本地的圖片獲取大小和尺寸,一種是通過伺服器上圖片的地址獲取圖片的尺寸!下面整理出這兩種方式的簡易程式碼,希望幫助的大家和自己! 我使用的Juin

如何使用jquery獲取圖片真實寬高

link 取圖 whole 緩存 使用 ref https image() 沒有 jQuery有沒有獲取圖片實際尺寸的方法? 就是圖片文件的實際尺寸,而不是添加了css樣式之後的尺寸。 //code from https://www.chinaobd2.com/wh

jquery獲取圖片真實大小

樣式 所有 clas 取圖 src 希望 var als eight 在前端中有許多時候希望顯示圖片的的真實大小的場景(如果圖片預覽這樣的場景),如果直接用選擇器把html中的img元素選擇出來然後輸出他的width()和height()的話,如果對img元素有做樣式限定的

獲取圖片真實寬高

body fse 裏的 on() alt 渲染 iss b2c data 獲取圖片高度,jq 用的是height() 獲取 寬度。jq用的是width()。 只是這個是渲染後的寬高,也就是css設置後的寬高 javascript 是offsetWidth of

js 獲取圖片寬高 和 圖片大小

src 查看 nts 執行 input java image 創建 wid         獲取要查看大小的img   varimg_url = ‘http://img5.imgtn.bdimg.com/it/u=4267222417,1017407570&fm=

JQuery獲取圖片大小並控制圖片文件上傳大小以及上圖片文件時如何預覽圖片

jpg ast error mod 大於 index jquer 圖片 賦值 首先我們來看效果圖: 點擊上傳之後如下: 在這裏我獲取到文件的大小,並且如果超出我設定的大小,則禁止上傳! 不多說,上代碼:先看div布局:                       

php獲取文件真實大小(支持遠程文件)

php獲取文件真實大小(支持遠程文件)代碼: <?php /* @desc:獲取文件大小 @author <lee> [<[email protected]>] @param name 文件名 @return size 文件大小 byte */ function getfilesiz

獲取圖片大小

pan spa open int bsp 圖片 import ima 獲取 from PIL import Image import sys img=Image.open("A8.jpg") width=img.size[0] height=img.size[1] pri

通過url動態獲取圖片大小方法總結

很多時候再專案中,我們往往需要先獲取圖片的大小再載入圖片,但是某些特定場景,如用過cocos2d-js的人都知道,在它那裡只能按比例縮放大小,是無法設定指定大小的圖片的,這就是cocos2d-js 的坑了,我們必須先獲取圖片大小,計算比例再對圖片進行縮放。 查閱資料,我總結了兩種通過url獲取圖片大小的方法

獲取圖片寬高、大小圖片型別

直接貼程式碼 public static void main(String[] args) { String picUrl = "http://placeimg.com/640/480/any.jpg"; ByteArra

JS 獲取連結(link)圖片大小or體積

最近PD小姐姐又有了新的需求,是獲取圖片的大小,不能超過1M可是我查遍了全網的都是講獲取寬高的,寬高我知道,直接onload就可以獲取了,那麼體積怎麼獲取吶?後來,搜到一個英文問題,解決了體積的問題,但是感覺不是特別準確~記錄下獲取體積或者叫大小: function

Imageloader-獲取圖片需要顯示的大小

說一下通過執行緒載入圖片的過程: 首先根據ImageView獲得適當的壓縮的寬和高 然後計算inSampleSize,用於壓縮圖片 接著將圖片新增到快取 最後mUIHandler傳

IOS -- 獲取本地圖片和網路圖片大小size

// 獲取圖片的size CGSize size = [UIImage imageNamed:@"regStep2_sex"].size;  獲取網路圖片的尺寸: // 根據圖片url獲取圖片尺寸 +(CGSize)getImageSizeWithURL:

android圖片縮放(指定大小) drawable獲取圖片後怎麼設定圖片大小

http://gqdy365.iteye.com/blog/1125037 android圖片縮放(指定大小) private Drawable zoomDrawable(Drawable drawable, int w, int h) { in

webpack獲取圖片真實路徑

HTML標籤裡的圖片url 我們經常遇見的一種情況是: 需要通過foo.js動態新增一個DOM,這個DOM裡含有一個有圖片路徑的東西(比如是img標籤); 假如foo.js在abc資料夾下,圖片bar.png也在abc資料夾下; 那麼我們想當然的在img的