图片相关

Posted travellingkite

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图片相关相关的知识,希望对你有一定的参考价值。

获取图片的原始尺寸

  1. 老旧浏览器
function getNaturalSize(img) {
    var image = new Image();
    var naturalSize = {};
    image.src = img.src;
    naturalSize.width = image.width;
    naturalSize.height = image.height;
    return naturalSize
}

var img = document.getElementsByTagName(‘img‘)[0]
getNaturalSize(img); // 返回原始尺寸

分析: 新建一个 image 对象,将当前图片的 src 赋值给 image.src, 此时 image 会发起网络请求从网络下载该图片。此时 image 的宽高就是所求图片的原始尺寸。

  1. html5:

htlm 5 提供了一个直接获取图片原始宽高的 API —— naturalWidth / naturalHeight:

function getNaturalSize(img) {
    var naturalSize = {};
    naturalSize.width = img.naturalWidth;
    naturalSize.height = img.naturalHeight;
    return naturalSize;
}

var img = document.getElementsByTagName(‘img‘)[0]
getNaturalSize(img); // 返回原始尺寸

兼容 ie 6/7/8 和现代浏览器的写法:

function getNaturalSize(img, callback) {
  var naturalSize = {};
  if (img.naturalWidth) {
      naturalSize.width = img.naturalWidth;
      naturalSize.height = img.naturalHeight;
      callback(naturalSize);
  } else {
      var image = new Image();
        image.onload = function () {
            naturalSize.width = image.width;
            naturalSize.height = image.height;
            callback(naturalSize);
        }
        image.src = img.src;
    }
}

var img = document.getElementsByTagName(‘img‘)[0]

getNaturalSize(img, function (dimensions) {
    // 图片处理代码
});

判断图片是否加载完成

  1. onload 事件
  2. onreadyStatechange 事件
  3. complate 属性

以上是关于图片相关的主要内容,如果未能解决你的问题,请参考以下文章

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

AJAX相关JS代码片段和部分浏览器模型

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段

Android - 应用程序启动时片段 onCreate 崩溃

Jekyll 偏移代码片段高亮的初始行