加载图片优化(先用一张小图片做高斯模糊, 再加载大图)

http://www.jackpu.com/medium-shi-ru-he-zuo-tu-pian-jia-zai-de/

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style>
        .placeholder {
            background-color: #f6f6f6;
            background-size: cover;
            background-repeat: no-repeat;
            position: relative;
            overflow: hidden;
        }

        .placeholder img {
            position: absolute;
            opacity: 0;
            top: 0;
            left: 0;
            width: 100%;
            transition: opacity 1s linear;
        }

        .placeholder img.loaded {
            opacity: 1;
        }

        .img-small {
            filter: blur(50px);
            /* this is needed so Safari keeps sharp edges */
            transform: scale(1);
        }
    </style>
</head>
<body>

<div class="placeholder" data-large="https://cdn-images-1.medium.com/max/1800/1*sg-uLNm73whmdOgKlrQdZA.jpeg">
    <img src="https://cdn-images-1.medium.com/freeze/max/27/1*sg-uLNm73whmdOgKlrQdZA.jpeg?q=20" class="img-small">
    <div style="padding-bottom: 66.6%;"></div>
</div>

<script>
    window.onload = function() {

        var placeholder = document.querySelector(‘.placeholder‘),
                small = placeholder.querySelector(‘.img-small‘)

        // 1: load small image and show it
        var img = new Image();
        img.src = small.src;
        img.onload = function () {
            small.classList.add(‘loaded‘);
        };

        // 2: load large image
        var imgLarge = new Image();
        imgLarge.src = placeholder.dataset.large;
        imgLarge.onload = function () {
            imgLarge.classList.add(‘loaded‘);
        };
        placeholder.appendChild(imgLarge);
    }
</script>
</body>
</html>
时间: 2024-08-05 19:49:56

加载图片优化(先用一张小图片做高斯模糊, 再加载大图)的相关文章

Atitit 判断判断一张图片是否包含另一张小图片

1. keyword1 2.  模板匹配是在图像中寻找目标的方法之一(切割+图像相似度计算)1 3. 匹配效果2 4. 图片相似度的算法(感知哈希算法”(Perceptual hash algorithm)2 5. 性能结果2 6. 如何提升性能3 6.1. 可以采用简化的算法.二次匹配法,先大概确定区域3 6.2. 切割图片设置一个step3 7. 参考资料3 8. ------code3 1. keyword 图像匹配 图片是否另外一张图片的一部分 如果是标准图片,模板匹配就好 2.  模板

还原TexturePacker plist 文件以及图片的方法 (切开各小图片)

原地址:http://blog.csdn.net/linuxchen/article/details/16865645 Python 脚本:(来自网络) unpack_plist.py 命令行: python unpack_plist.py  plist文件名称 例子: python unpack_plist.py  common      ## plist文件全名为 common.plist [python] view plaincopy #!python import os,sys from

WPF 图片抗锯齿,尤其是小图片更为严重

原文:WPF 图片抗锯齿,尤其是小图片更为严重 UseLayoutRounding="True" 搞定,就是这么给力,分享给大家 原文地址:https://www.cnblogs.com/lonelyxmas/p/12034563.html

02 createJS中关于图片优化的问题(推荐一个图片优化的网站)

昨天做了个个人网站,运行一会风扇就开始呼呼呼呼的扇,初步判断肯定是图片需要优化. 说到优化首先要注意: 1.在animate中尽量或者不适用矢量图形和矢量动画.(如果注重项目加载速度时多用矢量 注重项目体验与动画流畅时多用位图,现因为国产旧手机多对矢量支持不好,特别是安卓,还是多用位图吧,png用工具优化,推荐使用https://tinypng.com/,如果硬要用矢量,或者滤镜,或者叠加模式,可以使用SpriteSheetBuilder类优化,详细教程点击这里)(括号中是我查的资料的原话) a

Android 将图片平均切割成多张小片

public class ImageSplitter { /** * 将图片切成 , piece *piece * * @param bitmap * @param piece * @return */ public static List<ImagePiece> split(Bitmap bitmap, int piece) { List<ImagePiece> pieces = new ArrayList<ImagePiece>(piece * piece); in

RecyclerView使用 及 滑动时加载图片优化方案

RecyclerView使用 及 滑动时加载图片优化方案 简述 本篇博文主要给大家分享关于RecyclerView控件的使用及通过继承RecyclerView来实现滑动时加载图片的优化方案,也同样能解决防止图片乱序的问题,之前有在网上有看到大神对Android中ListView异步加载图片乱序问题进行过分析,并深入剖析原理后分别给出了3种对应的解决方案:一 .使用findViewWithTag.二.使用弱引用关联.三.使用Volley框架提供的NetworkImageView. 看了之后思索了很

Android APP内存优化之图片优化

网上有很多大拿分享的关于Android性能优化的文章,主要是通过各种工具分析,使用合理的技巧优化APP的体验,提升APP的流畅度,但关于内存优化的文章很少有看到.在Android设备内存动不动就上G的情况下,的确没有必要去太在意APP对Android系统内存的消耗,但在实际工作中我做的是教育类的小学APP,APP中的按钮.背景.动画变换基本上全是图片,在2K屏上(分辨率2048*1536)一张背景图片就会占用内存12M,来回切换几次内存占用就会增涨到上百兆,为了在不影响APP的视觉效果的前提下,

图片优化调研之理论篇

前言 内容较多,理论部分比较基础.对于新人而言,从浅入深,比较好理解:对于老手而言,可跳过,可直接看实践部分. 总之,希望对大家有所帮助. 1. 收益 为了提升网站性能,保持网站处于“节食”状态非常重要——确保所有新引入的资源都是最精简的,图像优化就是这样一项工作. 大家不妨猜猜图片流量占总流量的百分比.简单对知名网站中图片在整个页面大小中所占比例做了一个调研. 计算其平均值:44.94%. 不一定绝对精确, 但是非常接近.当然,这里的数据主要以首屏时间段采集数据. 从这个数据可以看出,对于图像

cocos2dx中如何从一张图片中切割一部分显示成小图片

1.通常我们拿到的资源中,通常都是许多张小图片压缩到一张图片里了,我们如何在使用的时候把它切割出来呢? 2.例如我们要把上面这张图片按组分隔开来 CCSprite* newGameNormal = CCSprite::create(s_menu, CCRectMake(0, 0, 126, 33)); CCSprite* newGameSelected = CCSprite::create(s_menu, CCRectMake(0, 33, 126, 33)); CCSprite* newGam