:::

EMF圖檔怎麼用?微軟專用向量圖EMF轉開放向量圖SVG教學 / How to convert EMF to SVG format

image

EMF的全名是Enhanced Metafile,翻譯做Windows增強中繼檔,這是一種微軟專用的向量圖檔案,其目的是為了取代較早期32位元的WMF格式(Windows Metafile,Windows中繼檔)。EMF在Office軟體中能以無鋸齒的向量模式運作,但是它卻很難以高解析度的模式匯出成其他格式的圖片,令人難以使用。站在支持開放格式的立場,我這篇將教你如何將微軟專用的EMF向量圖轉換成開放格式的SVG格式,以便後續再進行編輯或轉換成高解析度的PNG圖檔。這篇教學是在Windows 7環境下使用Word 2013與InkScape來完成整個轉換動作,請確定你有這些環境才能做到本篇教的EMF轉SVG喔。


EMF檔案格式怎麼來的? / Where does EMF come from?

image

就我個人所知,EMF圖檔很少獨立出現,大多都是包裹在早期的Office系列檔案中,或是可以在Power Point儲存檔案時選擇存檔類型為「Windows 增強型中繼檔(*.emf)」

我以前曾經在「將docx檔案解壓縮,抽取文件內的圖片」這篇文章中介紹如何將Microsoft Office XML格式的docx、xlsx、pptx檔案中的圖片檔案抽取出來。以docx為例,我們可以用任何壓縮軟體中的ZIP格式解壓縮docx檔案(把docx當作zip壓縮檔用),然後進入到「word/media」資料夾中,就可以看到該docx檔案中使用的所有多媒體檔案。從上圖可以看到,這份docx裡面包含了多張圖檔,但除了常見的PNG格式之外,卻包含了不知道該怎麼處理的EMF格式圖檔。

 emf

(圖片來源:Find Icons)

我從以前吳學弟的論文「基於數位閱讀標註行為探勘影響閱讀焦慮因素提升閱讀成效」中取出一個圖片作為例子,檔案如下:

如何使用EMF圖檔? / How to use EMF?

image

EMF檔案要如何使用呢?網路上大部分的教學都會跟你說,1. 開啟Word、2. 插入圖片、3. 選擇EMF檔案插入。上圖就是example.emf在Word 2013中的樣子。作為一個向量圖檔,EMF通常會以方塊、圓圈、線條等單純圖形組成。

image

因為它的圖形是以向量的方式即時運算,所以文件就算放大了,圖形看起來也依舊清晰,不會出現鋸齒或馬賽克。

word

雖然我們能在Word中用「另存成圖片」的方式將EMF存成PNG格式,但很遺憾的,它只能用72 DPI的低解析度保存。上圖就是用Word另存成圖片的PNG圖檔,縮圖看起來似乎還可以接受。

image

讓我們用圖片瀏覽器放大看看,就會發現這低解析度的圖片檔案鋸齒狀非常嚴重。事實上,72 DPI解析度在輸出成紙張印刷品的時候就是會這樣模糊,要讓圖片清晰的話,請至少要讓解析度提高到300 DPI以上

更麻煩的是,雖然EMF是向量圖格式,但它只有在Word、Power Point等Office系列軟體或LibreOffice系列軟體中插入的時候,才能正常地用向量格式運作。大部分圖片瀏覽器,像是Windows預設的EMF編輯器小畫家或是XnView MP,都只能用低解析度的點陣圖來處理EMF格式。

image

InkScape這種向量圖片編輯工具雖然可以開啟EMF,但是卻無法正常讀取圖片的格式,結果就像是上圖一樣悲劇。至於Photoshop等圖片編輯工具,它們就連EMF都無法開啟,更不用說編輯它了。

為了擺脫EMF的限制,接下來我們就來用以下的步驟,將微軟專用向量圖EMF轉換成開放的向量圖格式SVG吧。


Step 1. 準備EMF檔案 / Get a EMF file

通常我都是從「將docx檔案解壓縮,抽取文件內的圖片」取得EMF檔案,以下我們就用學弟的論文檔案作為例子吧:

emf

Step 2. 在Word中插入EMF檔案 / Insert the EMF picture in Word

image

先開啟一個空白的Word檔案。

image

選擇「插入」索引標籤中的「圖片」。

image

選擇EMF檔案,「插入」。

image

好的,我們在一份空白的Word中插入了一個EMF檔案,繼續下一步吧。

想知道Word插入圖片功能的詳細操作的話,可以參考我之前寫的教學Word的框線、亞洲文字配置與圖片編輯

Step 3. 儲存成PDF格式 / Save as PDF format

image

點選索引標籤的「檔案」。

image

左邊選擇「另存新檔」,儲存功能選擇「電腦」,儲存資料夾我先選擇為「桌面」(Desktop)吧。

image

存檔類型請選擇「PDF (*.pdf)」,然後按下「儲存」。

image

PDF儲存完之後,它應該會自動開啟PDF閱讀器,並且將轉換完成的PDF檔案打開。

image

值得注意的是,這時候PDF中的圖片也是向量格式,所以放大看起來也很清晰。

image

準備好有向量圖片的PDF之後,接下來我們就要到Inkscape中將它轉換成SVG囉。

附帶一提,如果想知道Word列印功能的其他細節,請看我寫的「Word長文件中的列印、分隔設定與範本」。

Step 4. 在Inkscape中匯入PDF / Import PDF in Inkscape

接下來的操作,我們會在Inkscape中進行。如果你的電腦還沒有Inkscape,請看「工具:Inkscape」這邊下載。

image

讓我們開啟Inkscape,預設它應該會給我們一個空白的檔案。

image

選擇選單列的「File」,開啟「Import」匯入功能。

image

選擇剛剛存好的PDF檔案,按下「Open」開啟。

image

這時候會跳出PDF Import Settings對話視窗,我們採用預設值即可,直接按下右下角的「OK」繼續。

image

原本空白的Inkscape畫布上出現了圖片。

image

不僅如此,這時候它也是以向量格式繪製,就算放大看也不會有鋸齒狀呢。

不過到這裡還沒結束,畫布旁邊還留了一堆空白,我們還需要為它做些調整。

Step 5. 畫布尺寸調整為圖片大小 / Resize page to content

image

雖然這張圖已經是向量圖了,但是整個繪圖畫布旁邊的空白處實在是太多了,讓我們先把畫布尺寸調整一下吧。

image

選擇選單列的「File」,開啟「Document Properties」文件屬性功能。

image

Inkscape預設畫布儲存是A4,這邊我們要自訂畫布的儲存,請按下Custom size中的「Resize page to content」。

image

這時候會跳出自訂邊界的操作表單,我們要找的是「Resize page to drawing or selection」按鈕,按下它吧。

image

這時候Inkscape的畫布會自動調整到繪圖物件的大小,就不會有太多白邊了。這一招非常好用,也是Inkscape的熱門問題。

image

請關閉Documment Properties對話視窗,讓我們繼續下一步,把它儲存成SVG檔案吧。

Step 6. 儲存成SVG檔案 / Save as a SVG file

image

這步就很簡單了,選擇選單列的「File」,開啟「Save」儲存功能。

image

找個資料夾並且寫好檔名,按下「Save」,就可以儲存成SVG檔案了。

image

這樣子,我們就把EMF檔案轉換成SVG開放向量圖檔囉。


下一步:轉換成高解析度的PNG圖檔 / Next: Export to high-resolution PNG image

image

有了SVG向量圖之後,我們不僅能夠輕易地使用Inkscape編輯它,還能將它轉換成高解析度的PNG圖檔。這部分的操作就請看我之前寫的「將向量圖檔SVG轉換成高解析度的PNG圖檔:Inkscape教學」囉。

g9432

這張就是以300 DPI輸出的高解析度檔案,檔案大小為126 KB,尺寸為971 x 1406。而前面使用Word另存成圖片的檔案大小僅有20 KB,尺寸為333 x 485。兩者是不是差別很大呢?


結語 / In closing

我跟EMF格式之間的戰鬥並不是從最近才有的事情。事實上,早在2010年時我在寫DSpace的書籍時,我就被EMF格式打敗過好幾次。在撰寫該書的時候,我們主要使用Word來編輯內容與畫圖。因為Word的快取圖案與繪圖畫布可以畫出向量圖檔,所以我就很理所當然地用Word製作大量圖表。沒想到,將Word傳送給出版社編輯的時候,這些圖片竟然通通都變成了超低解析度。

那時候編輯的意見是,他不要Word檔案,希望能給他圖片檔案。於是我從docx中抽取EMF檔案,想說這也是個向量圖片,就這樣直接傳給編輯。但因為EMF是個微軟Office之外大家都無法處理的格式,結果又被編輯打了回票。

最後我用其他的方式重新繪製書中的圖片,而這個經驗讓深深地體會到使用封閉的專門格式是如何的痛苦,還不如一開始就使用開放格式來做這些事情。

事隔多年,最近又得要處理EMF格式,這次索性認真研究一下有沒有比較好的處理方法。雖然這篇看起來做法挺簡單的,不過這可是我試過各種做法後,最後才找到的解決方案。我從一開始使用Inkscape開啟、線上轉換檔案、試著用LibreOffice處理、列印成PDF,但這些方案都只會把EMF轉換成點陣圖來處理。試到最後都快放棄了,才發現唯有用Word另存成PDF格式,才能完整保存EMF的向量特性,最後總算能順利將EMF轉換成SVG,再輸出成高解析度的PNG圖檔。

雖然夜已深了,但還是想趕快把這個做法整理到blog上,希望對大家有幫助。

這篇EMF轉換成SVG的教學就到此為止了。你有看過EMF格式的檔案嗎?你都怎麼處理它呢?除了我這篇介紹的使用Word將之轉換成PDF、再用Inkscape將PDF轉換成SVG做法之外,你還有其他的建議嗎?如果你也跟我一樣遭受EMF格式之苦,希望這篇能對你有些幫助。如果你覺得我整理的不錯的話,請幫我在AddThis分享工具按讚、將這篇分享到Facebook等社群媒體吧!感謝你的耐心閱讀,讓我們下一篇見。

總共4 則留言 ( 我要發問 , 隱藏留言 顯示留言 )