製作背景透明的PNG&在IE 6底下顯示

 image

最近開始想要來裝飾一下門面,雖然說敝人向來走儉樸路線,不過偶爾穿穿新衣服,順便換個好心情,也是不錯的。

於是開始著手,因為本身對網頁製作幾乎一竅不通,所以首先遇到的難題是──如何顯示圖片。查了一些網路上的教學,大致了解CSS和HTML的關係與使用方法。經過思量後,選擇用設置成背景圖片的方式呈現,因為header這個區塊的原始背景圖的長度固定,所以無法拉長,而背景圖片若超過區塊,邏輯上來講超出的部分應該會被遮蓋住(不過直接貼圖是不是也這樣我就不曉得了,改天再試試),所以便選擇了它。

接下來的問題來了,該放什麼圖,又怎樣放才會比較好看些?直覺告訴我,背景透明的圖片一定比較好,背景透明的圖片有PNG和GIF,PNG可以顯示全彩,GIF只有二五六色,不過PNG在IE 6.0以下版本顯示有些問題,這部分下面會談。但不論是PNG或GIF,都要自己處理背景透明的問題。又上網查了一下,找到PhotoShop讓JPG轉PNG時,背景如何修成透明的方法,詳細如下:

1.啟動PhotoShop,開啟一張JPG圖檔。

2.注意右邊的浮動工具列,圖層裡面有一個背景,雙擊左鍵進入選單。

image

3.點選確定,這樣背景便轉換為PhotoShop專屬的背景格式。

image

4.從左邊繪圖工具列中,選擇魔棒工具。

image

5.當畫筆為魔棒工具時,滑鼠移往圖片,在背景處單擊左鍵,會自動出現該切割的背景邊框虛線,按鍵盤Ctrl + x剪下。

image

6.背景被移除後,會長這麼模樣。

image

7.Menu –> 幫助 –> 弄出透明圖像。

image

8.選我的圖像已經在透明背景上,按下一步。

image

9.轉換成GIF或PNG,再按下一步即可儲存。

image

10.選擇檔名和儲存位置,製作完成!

 

好,圖片的部分已經弄得差不多了,接下來的問題比較瑣碎,因為前面說過,PNG圖檔在IE 6.0以下版本中透明色的顯示會有些問題。我又拜見了GOOGLE大神,似乎有如下三個可行方案:

1. png -> gif

2. png24 -> png8

3. 套用外部js檔

第一種方法,應該是最直接的,雖然畫質降低,顏色範圍緊縮,但至少可以保證在各種瀏覽器底下看起來都一樣,這是沒有辦法中的辦法。

第二種方法,png8雖然也只有256色,但基本與png24看起來差不多;只是問題在於雖然在IE底下可行,但半透明會變全透明,所以有的圖顯示起來會怪怪的,不是很美觀。

這是其他瀏覽器的顯示

image

這是IE 6.0底下的顯示

image

是不是差很多?不過或許並不是所有圖片都這樣。如要使用這個方案,因為我一時間找不到PhotoShop要怎麼轉png8,所以用了兩個非視窗軟體pngnqpngout,需搭配指令:

使用pngnq先把PNG檔轉成256色,指令如下:

pngnq -n 256 image.png

再用pngout轉成png8的格式,指令如下:

pngout -c3 -d8 2.png pngout.png

第三種方法,目前似乎還沒有完整的解決之道,主要是背景的部分支援很差,不是不能重覆,就是不能更改位置,這部分可能跟瀏覽器的核心有關,所以改來改去總是改不完整,不建議用這個方法(研究了兩個小時後的結論)。

恩,大致就這樣,美化的第一步,雖然不算很穩健,但至少看得到改變,改造第一課──成功!

 

No response to “製作背景透明的PNG&在IE 6底下顯示” ;

張貼留言