<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 101,  comments - 29,  trackbacks - 0

    你有沒有想過:為了壓縮js文件,把js文件轉化成PNG圖像,然后用 canvas 控件中的 getImageData() 函數將圖像再重新讀成js文件。我昨天在這里發表的JS文件快速加載的文章中提到了這一方法,有網友對這個做法很感興趣,于是今天詳細解讀一下。

    這樣可以做到很高的壓縮比,到底有多高,下面會提到。這種方法用到了 canvas 控件,這也意味著只有支持 canvas 控件的瀏覽器下才有效。

    現在你可以看到,上面的圖像類似一個噪聲圖像,但它實際上是一個由124K的 prototype 框架代碼轉化成的30K的8位PNG圖像(壓縮比還不錯吧)。

    其實,要將代碼轉化為圖像的格式存儲,可以轉化成GIF和PNG格式。PNG格式的圖像有24位和8位,用24位的RGB圖像,每個像素可以存儲3字節的數據,如果是用8位的RGB圖像,每個像素可以存儲1字節的數據。

    在PHOTOSHOP中做測試發現:一個300x100的純色雜點8位圖像可以壓縮到5K,而同樣的純色雜點圖像,如果是100x100的24位圖像只能壓縮到20K。如果是同樣圖案的8位GIF圖像,壓縮效果比PNG要差一些。所以,我們選擇用8位的PNG圖像作為壓縮和解壓縮的存儲格式。

    現在,我們就需要開始壓縮圖像了,下面是用PHP寫的壓縮文件地址。
    http://www.cleanthem.com/code/20120620/js-to-png.txt

    它讀取JS文件并創建一個PNG圖像,圖像中的每個像素中是一個0-255之間的值,而這個值對應的是JS字符的ascII的值。

    當然,除了壓縮,還要有解壓縮,也就是將圖像讀取為JS文件的過程。這個函數是用JS寫的,可以從下面的位置下載這個文件。
    http://www.cleanthem.com/code/20120620/pngdata.txt

    最后給出在線測試地址,在這個網頁上,您可以在列表中選擇一個PNG圖像文件,點擊 load file 按鈕可以在網頁上看到這個圖像,在圖像的下面是由這個圖像所讀出來的代碼文件。

    http://www.nihilogic.dk/labs/canvascompress/

     

    注:轉載請注明出處,覺得有用就推薦一下吧~

    posted on 2012-08-05 01:26 mixer-a 閱讀(2326) 評論(4)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久精品熟女亚洲av麻豆| 精品亚洲成a人片在线观看| 亚洲色丰满少妇高潮18p| 日本三级2019在线观看免费| 亚洲视频国产精品| 真人做A免费观看| 久久乐国产综合亚洲精品| 我要看免费的毛片| 亚洲日韩精品A∨片无码加勒比| 性感美女视频在线观看免费精品 | 最新亚洲人成无码网站| 日韩免费观看一级毛片看看| 国产天堂亚洲精品| 亚洲人成人无码网www国产| 国产成人1024精品免费| 亚洲成a人片在线观看中文动漫| 人妻丰满熟妇无码区免费| 亚洲国产成人资源在线软件| 四虎永久在线精品免费网址 | 亚洲国产精品免费在线观看| 亚洲欧洲日韩综合| 好吊妞998视频免费观看在线| 精品国产日韩亚洲一区91| 国产亚洲色视频在线| 久久不见久久见免费视频7 | 日本一区二区三区免费高清在线| 亚洲一区视频在线播放| 2022久久国产精品免费热麻豆| 国产成人精品日本亚洲18图| 日韩精品免费一区二区三区| 国产精品1024在线永久免费 | 最近中文字幕国语免费完整| 亚洲成A人片在线播放器| 国产成人亚洲综合无码| 亚洲免费精彩视频在线观看| 亚洲精品国产综合久久久久紧 | 亚洲国产亚洲综合在线尤物| 精品免费久久久久久成人影院| 中文字幕av免费专区| 精品国产日韩久久亚洲| 国产亚洲成人久久|