2009年3月19日 星期四

ghostscript + imagemagick

之前我一直在用 magickwand 或是 iMagick 在做轉檔的動作
但是 這兩個方式在轉 eps 或是 pdf 這類向量檔的時候卻是力有未逮
東試西試 終於在我的server上面搞定了 把eps 轉成 png 可以很漂量很平順
但是 顏色就不見得準了 (這牽涉到另一個問題)

我花了很長的時間研究 imagemagick到底在處理EPS的時候是否需要 ghostscript
甚至在 imagemagick 的討論版上都有人提到為什麼轉出來的畫質如此之差
但是並沒有人真正提出解決方式
基本上 如果你不挑剔畫質 那麼 單就處理EPS這種檔案的時候是不需要 ghostscript 的
其結果就像這樣 (圖一)












因為EPS在存檔的時候就已經預存了一段預視檔
用來提供給不能處理向量圖檔的電腦使用
譬如 一般的文書處理電腦也可以在WORD裡貼入EPS檔
或者即使電腦可以處理向量圖檔 也可以減輕電腦壓力
所以 即使不賦予電腦有處理向量圖檔的能力 ( 安裝 ghostscript ) imagemagick 也可以輕鬆把預視檔讀出來
安裝了 ghostscript 之後 imagemagick 就可以把實際的向量內容讀出(也才能轉檔)
所以 這關鍵在於 該電腦有沒有處理向量圖檔的能力
(圖二)













依樣畫葫蘆的 在我工作的電腦上 也安裝了 ghostscript 與 imagemagick
但是很神奇的是 好像這兩個軟體突然之間不認識了
也就是轉出來(PHP的 EXEC() 或是 我另外的轉檔程式)的結果都跟圖一一樣
但是 卻可以在CMD下轉出同樣的畫質 (圖二)
花了好幾天的時間安安裝裝 裝裝安安 當然還是有吃飯睡覺
我思我想我判斷是~~~~
我的工作電腦有安裝 illustrator 所以 檔案的關聯被關連到 illustrator
以至於 imagemagick即使是裝了 ghostscript 這義肢 卻還是跛腳

到這幾天 我更新了我的SERVER
在新機器上 ghostscript 與 imagemagick 又好像不認識了
安安裝裝 裝裝安安了好幾次 還是不行
當然 SERVER 是不可能平白無故裝 illustrator
這下可就沒有推卸責任的理由了
於是 我只好讓兩台機器立正站好 看看有什麼不同

一樣的 IIS 6
PHP 5.26
MySQL 5............ 媽的 跟 MySQL 有什麼關係

重點來了
舊機器是 imagemagick 6.3.6-10-Q16 + ghostscript 8.53
新機器是 imagemagick 6.4.9-2-Q16 + ghostscript 8.53

那就在新機器上改用舊版的試試看吧
重裝之後重新開機
ㄟ~~~~~ 可以了耶
不信邪
我又翻了一下我工作機 沒錯也是 imagemagick 6.4.9-2-Q16
但是 ghostscript 是 8.63

好吧 也請舊版的來好了
換上舊版 (6.3.6-10-Q16) ㄟ 可以了
所以 是什麼問題呢
我覺得應該是有版本搭配上的問題
但是為什麼新版的 imagemagick 抓不到舊版的東西呢
我的程式都是一樣的 都是使用 imagemagick class 來處理
(因為當時想要跟 imagick 使用同樣的操作介面 所以捨棄使用 exec() )

(圖三)












至於顏色的問題
這三張轉出來的結果 其實都是同一個EPS所轉的
都是CMYK的色彩模式
但是 圖三的顏色為什麼差這麼多
那就是少了 -colorspace RGB 這個設定
但是更保險的方式其實應該是要先把EPS轉為PDF 並且改為 RGB模式
再把PDF轉為 JPG或是PNG
當然 如果你需要的是 CMYK模式的JPG 那麼 就可以忽略掉這設定
但是呢 在一拉屎 10 之前的存檔................
應該怎麼說呢
一拉屎10 之前的版本 所存的檔案 其實 顏色沒有那麼的精準
或者說 他單純只考慮了 CMYK的模式 並未考慮到 RGB的顯示
因為在一拉屎 9 的階段對於網頁圖片的支援是非常差的
所以 即使是 EPS >> PDF >> PNG 或是下 colorspace 都是沒什麼太大的用處

問我為什麼只提到一拉屎??? CoralDRAW 也只能匯出 一拉屎7的格式 所以就~~~~~~~~
Quark也可以出EPS阿?? 但是 有多少人看過 用過 Quark的EPS 大概只有印刷廠的人吧
indesign呢?? 他跟一拉屎是一家人 還會有多少差別 更何況 現在會使用indesign的人都是出PDF輸出了 誰還會出EPS去自找麻煩

囉囉唆唆講了一堆 重點是 ghostscript + imagemagick 並不是什麼版本拿來裝了都可以的
但是 這僅限於我的電腦 我經手的電腦 歡迎各位做參考
不要認為你的電腦也同樣可以 因為 我甚至不知道你的機箱是黑的還是白的

沒有留言: