對(duì)于數(shù)據(jù)可視化而言,我們?cè)谑褂密浖梢暬鰣D之后,還要把圖片進(jìn)行保存。所以對(duì)于圖片的格式就需要有一些認(rèn)識(shí)。
就作者而言,目前偏好是將pdf用于高質(zhì)量保存的文件,同時(shí)將png作為進(jìn)行在線使用的圖片格式。如果png文件太大,則會(huì)使用jpeg格式。在下文中,我將解釋這些文件格式之間的主要區(qū)別以及它們各自的優(yōu)點(diǎn)和缺點(diǎn)。
位圖和矢量圖形
各種圖形格式之間最重要的區(qū)別是它們是位圖還是矢量。位圖(Bitmaps)或光柵圖形將圖像存儲(chǔ)為單個(gè)點(diǎn)(稱為像素)的網(wǎng)格,每個(gè)點(diǎn)都有指定的顏色。相反,矢量圖(vector)存儲(chǔ)圖像中各個(gè)圖形元素的幾何排列。
首字母縮寫(xiě)全稱類型應(yīng)用
pdfPortable Document Format矢量圖普遍使用
epsEncapsulated PostScript矢量圖普遍用途,已被pdf取代
svgScalable Vector Graphics矢量圖在線使用
pngPortable Network Graphics位圖針對(duì)線條繪制進(jìn)行了優(yōu)化
jpegJoint Photographic Experts Group位圖針對(duì)攝影圖像進(jìn)行了優(yōu)化
tiffTagged Image File Format位圖印刷生產(chǎn),色彩還原準(zhǔn)確
rawRaw Image File位圖數(shù)碼攝影,需要后處理
gifGraphics Interchange Format位圖動(dòng)態(tài)圖片
矢量圖形也稱為“與分辨率無(wú)關(guān)(resolution-independent)”,因?yàn)樗鼈兛梢苑糯蟮饺我獯笮《粫?huì)丟失細(xì)節(jié)或清晰度。有關(guān)演示,請(qǐng)參見(jiàn)圖??
?
雖然矢量圖可以無(wú)限倍數(shù)的放大。但是也是有兩個(gè)缺點(diǎn)的。
首先,由于矢量圖在打開(kāi)的時(shí)候相當(dāng)于使用圖片查看工具重新繪制圖形。因此如果在兩個(gè)不同的軟件或者兩個(gè)不同的電腦上打開(kāi)同一個(gè)圖形的話,其圖形的外拐可能有所不同。例如,如果一個(gè)軟件沒(méi)有矢量圖想要呈現(xiàn)的字體。那么就會(huì)替換成其他的字體。這個(gè)問(wèn)題是最經(jīng)常發(fā)生的。相比之下,位圖圖像將始終看起來(lái)相同。
其次,對(duì)于非常大和/或復(fù)雜的圖形,矢量圖形可能會(huì)增長(zhǎng)文件大小,并且渲染速度很慢。例如,數(shù)百萬(wàn)個(gè)數(shù)據(jù)點(diǎn)的散點(diǎn)圖將包含每個(gè)單獨(dú)點(diǎn)的x和y坐標(biāo),并且即使在點(diǎn)重疊和/或被其他圖形元素隱藏的情況下,在渲染圖像時(shí)也需要繪制每個(gè)點(diǎn)。結(jié)果,該文件的大小可能會(huì)很大。
位圖圖形的無(wú)損壓縮
大多數(shù)位圖文件格式采用某種形式的數(shù)據(jù)壓縮,以使文件變小。壓縮有兩種基本類型:無(wú)損和有損。無(wú)損壓縮可確保壓縮后的圖像與原始圖像像素相同,而有損壓縮則對(duì)一些圖像進(jìn)行降級(jí),以換取較小的文件尺寸。
為了了解何時(shí)使用無(wú)損壓縮或有損壓縮是適當(dāng)?shù)模瑢?duì)這些不同的壓縮算法如何工作有一個(gè)基本的了解是有幫助的。首先考慮無(wú)損壓縮。想象一下具有黑色背景的圖像,其中圖像的大區(qū)域?yàn)榧兒谏虼嗽S多黑色像素彼此相鄰出現(xiàn)。對(duì)于每個(gè)黑色像素在RGB當(dāng)中,我們可以使用用三個(gè)零連續(xù)表示:0,0,0
在RGB顏色當(dāng)中,只需要指定R(紅色), G(綠色)以及B(藍(lán)色)的數(shù)值,就可以組合成不同的顏色
因此,圖像中黑色背景的區(qū)域?qū)?yīng)于圖像文件中的數(shù)千個(gè)零。現(xiàn)在假設(shè)圖像中有1000個(gè)連續(xù)的黑色像素,那么就對(duì)應(yīng)于3000個(gè)零。無(wú)需寫(xiě)出所有這些零,我們就可以簡(jiǎn)單地存儲(chǔ)所需的零總數(shù),例如通過(guò)寫(xiě)入30000。這樣,我們僅用兩個(gè)數(shù)字(計(jì)數(shù)(此處為3000)和值(此處為0))傳達(dá)了完全相同的信息。多年來(lái),沿這方面發(fā)展了許多巧妙的技巧,以至于現(xiàn)代的無(wú)損圖像格式(例如png)可以以令人印象深刻的效率存儲(chǔ)位圖數(shù)據(jù)。但是,只有在圖像具有大面積的均勻顏色時(shí),無(wú)損壓縮算法才能表現(xiàn)的好。
攝影圖像很少具有彼此相鄰的相同顏色和亮度。取而代之的是,圖片在許多不同的比例上具有漸變和其他某種規(guī)則的模式。因此,對(duì)這些圖像進(jìn)行無(wú)損壓縮通常效果不佳,因此,有損壓縮就成了替代方案。有損壓縮的關(guān)鍵思想是如果圖像的某些細(xì)節(jié)對(duì)于人眼識(shí)別而言十分的微妙,那么久可以丟棄這些細(xì)節(jié)進(jìn)而不會(huì)明顯降低圖像質(zhì)量。例如,有一個(gè)1000像素的漸變,每個(gè)像素的顏色值都略有不同。但是人眼可能識(shí)別不了這么準(zhǔn)確。所以可以使用200種不同的顏色繪制漸變,并且每五個(gè)相鄰像素以完全相同的顏色進(jìn)行著色,這樣漸變看起來(lái)其實(shí)也是一樣的。
最廣泛使用的有損圖像格式是jpeg,實(shí)際上許多數(shù)碼相機(jī)默認(rèn)都將圖像輸出為jpeg。Jpeg壓縮對(duì)于攝影圖像效果非常好,并且通常可以在不降低圖像質(zhì)量的情況下大幅減小文件大小。但是,當(dāng)圖像包含尖銳的邊緣(如由線條圖或文本創(chuàng)建的圖像)時(shí),jpeg壓縮將失敗。在這些情況下,jpeg壓縮會(huì)導(dǎo)致非常明顯的偽像。
即使jpeg偽像足夠微妙,以至于肉眼無(wú)法立即看到它們,它們也可能會(huì)造成麻煩,例如在印刷生產(chǎn)中。因此,最好避免使用jpeg格式。特別是對(duì)于包含線條圖或文本的圖像,應(yīng)避免使用它,對(duì)于數(shù)據(jù)可視化或屏幕截圖來(lái)說(shuō),應(yīng)避免這種情況。這些圖像的適當(dāng)格式是png或tiff。jpeg格式可以用于攝影圖像。并且,如果圖像同時(shí)包含攝影元素和線條圖或文字,則仍應(yīng)使用png或tiff。這些文件格式的最壞情況是圖像文件變大,而jpeg的最壞情況是最終產(chǎn)品看起來(lái)很丑。
在圖像格式之間轉(zhuǎn)換
通常可以將任何圖像格式轉(zhuǎn)換為任何其他圖像格式。例如,在Mac上,您可以使用“預(yù)覽”打開(kāi)圖像,然后導(dǎo)出為多種不同格式。但是,在此過(guò)程中,重要的信息可能會(huì)丟失,并且信息永遠(yuǎn)都不會(huì)丟失。例如,將矢量圖形保存為位圖格式后,例如 pdf文件轉(zhuǎn)換為jpeg格式,作為矢量圖形的關(guān)鍵特征的分辨率獨(dú)立性已丟失。相反,將jpeg圖像保存為pdf文件并不能神奇地將圖像轉(zhuǎn)換為矢量圖形。該圖像將仍然是位圖圖像,僅存儲(chǔ)在pdf文件中。同樣,將jpeg文件轉(zhuǎn)換為png文件不會(huì)刪除jpeg壓縮算法可能引入的任何偽像。
因此,保存圖片的很好的經(jīng)驗(yàn)法則就是始終以保持最大分辨率,準(zhǔn)確性和靈活性的格式存儲(chǔ)原始圖像。因此,對(duì)于數(shù)據(jù)可視化,要么將圖形儲(chǔ)存為pdf,然后在必要時(shí)將其轉(zhuǎn)換為png或jpg,或者將其存儲(chǔ)為高分辨率png。如果僅可作為位圖使用的圖像(例如數(shù)碼照片),請(qǐng)以不使用有損壓縮的格式進(jìn)行存儲(chǔ),如果無(wú)法做到無(wú)損壓縮,則將其壓縮程度盡可能減少。同樣,以盡可能高的分辨率存儲(chǔ)圖像,并在需要時(shí)縮小圖像。