【学习笔记】Web技术常用图片特点及使用

一、图片特性介绍

 

1. JPG

    JPGJoint Photographic Experts Group(联合图像专家组)的缩写。损压缩,会造成图像画面失真,不过压缩之后的体积很小,而且还比较清晰。所以比较适合在网页中应用。

    此格式适合用于摄影或者连续色调的高级格式,因为JPG文件可以包含数百万种颜色。随着JPG文件质量的提高,文件的大小和下载时间也会随之增加。通常可以通过压缩JPG文件在图像质量和文件大小之间达到良好的平衡。制作软件有:PhotoshopHyperSnape等。

 

2. GIF网页中使用最广泛最普遍的图像格式。

    GIFGraphics Interchange Format(图像交换格式)的缩写无损压缩,支持256色,体积小,支持透明,支持帧动画(最打的特点)制作软件有:PhotoshopGIF Construction Set等。

 

3. PNG

    PNGPortable Network Graphic Format(流行网络图形格式)的缩写。位图,无损压缩,高保真,透明性,体积较小PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。

 

4. SWF

    SWF Shock Wave Flash的缩写,是多媒体图像动画,可用比较小的体积表现丰富的多媒体形式。可以边传输边观看,故特别适合网络传输,特别是在传输路率不佳的情况下,也能取得较好的效果。SWF格式是基于矢量技术制作的,无论即将画面放大多少倍,不会有任何失真。SWF的缺点是,制作起来非常耗时制作软件有:FlashSWFtext等。

 

5. BMP

    BMPBitmap(位图)的缩写。在Windows操作系统中用的比较多,可以用任何颜色深度(从黑白到24为)存储单个光栅图像,与其他Windows兼容。不支持文件压缩,占用磁盘大,不适用于Web制作软件有:PhotoShopWindows自带的“画图”软件等。

 

 

二、使用总结web应用中,最普片的三种图片格式分别是:GIF、JPG、PNG,其中PNG又分为PNG-8和PNG-24。

 

1、透明问题

实际情况:

1)支持透明的有GIF和PNG格式。

2)GIF只支持像素的全透明,对与半透明像素,会以相近颜色代替,这就得不到想要的透明效果了。因此,有时GIF图片在透明和不透明的边界上会出现丑陋的锯齿毛边。

3)PNG没有GIF毛边的问题,但是新的问题来了,IE6不支持PNG格式图片,其透明部分会全部以白色代替。

 

解决方案:

1)网上找一段JS代码,使得IE支持PNG图片。网上类似代码很多,这里贴出一段自己使用过的:

 

 

<script language="javascript">

    function correctPNG() 

    {

        for(var i=0; i<document.images.length; i++)

        {

            var img = document.images[i]

            var imgName = img.src.toUpperCase()

            if (imgName.substring(imgName.length-3, imgName.length) == "PNG")

            {

                var imgID = (img.id) ? "id='" + img.id + "' " : ""

                var imgClass = (img.className) ? "class='" + img.className + "' " : ""

                var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "

                var imgStyle = "display:inline-block;" + img.style.cssText 

                if (img.align == "left") imgStyle = "float:left;" + imgStyle

                if (img.align == "right") imgStyle = "float:right;" + imgStyle

                if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle  

                var strNewHTML = "<span " + imgID + imgClass + imgTitle

                + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"

                + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"

                + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 

                img.outerHTML = strNewHTML

                i = i-1

            }

        }

    }

    window.attachEvent("onload", correctPNG);

</script> 

 

 

 

2)有时受到开发平台和技术的限制,网上找的JS代码已经解决不了问题了,下面这个委屈求全的方法就有用了:

   同时制作一张GIF和PNG的图片,在写样式时,PNG作为常规使用,GIF用于针对IE6编写hike。这样在非IE下,效果是完美的,只在IE6下的小瑕疵就无视吧。注意,IE6的hike应当位于常规样式之下才能被正确解析。

   eg:假设有一个div,背景图片是一张透明图。样式为{background:url(#); _background:url(#);}

3)如果图片只是纯色,使用滤镜就OK了,滤镜的兼容性问题也要注意哦!~

 

2、图片质量和大小的取舍问题

     在切图时,一般优先选择保存为gif格式。因为在图片质量能保证的情况下,图片规格一定时,gif格式所占空间最小,加载较快。当然,由于gif格式只有256色,这就导致当图片色域较广时,图片质量差,失真严重。这时候就需要选择存为JPG格式了,可以通过调整图像的品质在80左右,来减小因为提高一点点质量而付出的高昂空间代价。个人不推荐使用png格式,因为png-8格式的大小和jpg格式差不多,但是质量却不如jpg格式,而png-24格式质量和jpg格式差不多,但会大出很多。

 

注:透明问题,没考虑IE6以下版本的浏览器,要是还有人用那些个版本,我也米办法了~

      归纳的不好或不完整的地方,后期学习中慢慢补充。

               

posted on 2013-02-28 19:49  又见雪落  阅读(298)  评论(0)    收藏  举报