PHP如何做出影像銳利化效果
一般來說,當我們將圖檔縮小SIZE後,圖檔多少會有點模糊。以我用影像處理軟體在處理MSN的圖案來說,每次將照片縮成96x96後,總是會再利用像處理軟體做銳利化處理。讓縮小後的照片看起來比較清晰。
現在的網站,充斥者大量的圖片。為了頁面上整體性、或美觀,多少也會運用到即時縮小圖檔的功能。最近剛好在協助處理這類的事情,看者頁面上排者縮小後的圖檔,真是不習慣這些糊糊的圖片…不經想提升縮小後圖檔的品質…
當圖檔縮小後,怎麼使用PHP做出銳利化效果,讓縮小後的圖變的清楚呢?找了一下php GD文件,並測試了一下。
我以浮在雲海上的台北101的圖做為範例。將原圖分別做兩種處理。一個是僅做縮圖(下圖右側)、另一個是縮圖並銳利化(下圖左側)。執行的結果如下…效果還不錯…
>>點此看大圖,比較容易看出差異。
銳利化的效果怎麼做?說穿了,很簡單…利用imageconvolution() — Apply a 3x3 convolution matrix, using coefficient and offset。
附註:僅支援PHP 5.1.0以上版本
藉由設定這3x3 convolution matrix,可以達到不同影像處理效果。目前蒐集到銳利化的參數主要有兩種。
多次測試後,上述兩種參數做出的銳利化,我的眼睛看不出有明顯的差異。
後來,在GIMP的範例中看到另一組參數。但是他的銳利化效果太強了,個人覺得反而影響到影像品質。
上述所提的三種參數是針對銳利化所做。如果想要做不同的影像效果,可調整上述參數,做出模糊等等不同的效果。
如果想要自己調整參數做出其他效果,可以利用一些影像處理軟體上的功能先做測試。以我習慣使用的免費影像處理軟體GIMP來說,就有此功能(請見參考資料)。除此,找了一下,VIPBase也有這樣的功能。
最後,提一下兩件事情…
現在的網站,充斥者大量的圖片。為了頁面上整體性、或美觀,多少也會運用到即時縮小圖檔的功能。最近剛好在協助處理這類的事情,看者頁面上排者縮小後的圖檔,真是不習慣這些糊糊的圖片…不經想提升縮小後圖檔的品質…
當圖檔縮小後,怎麼使用PHP做出銳利化效果,讓縮小後的圖變的清楚呢?找了一下php GD文件,並測試了一下。
我以浮在雲海上的台北101的圖做為範例。將原圖分別做兩種處理。一個是僅做縮圖(下圖右側)、另一個是縮圖並銳利化(下圖左側)。執行的結果如下…效果還不錯…
>>點此看大圖,比較容易看出差異。
銳利化的效果怎麼做?說穿了,很簡單…利用imageconvolution() — Apply a 3x3 convolution matrix, using coefficient and offset。
附註:僅支援PHP 5.1.0以上版本
藉由設定這3x3 convolution matrix,可以達到不同影像處理效果。目前蒐集到銳利化的參數主要有兩種。
- //sharp - 1
- $matrix = array
- (
- array(-1, -1, -1),
- array(-1, 16, -1),
- array(-1, -1, -1),
- );
- //sharp - 2
- $matrix = array
- (
- array(-1.2, -1, -1.2),
- array(-1, 20, -1),
- array(-1.2, -1, -1.2)
- );
後來,在GIMP的範例中看到另一組參數。但是他的銳利化效果太強了,個人覺得反而影響到影像品質。
- //sharp - GIMP
- $matrix = array
- (
- array(-1, -1, -1),
- array(-1, 16, -1),
- array(-1, -1, -1),
- );
如果想要自己調整參數做出其他效果,可以利用一些影像處理軟體上的功能先做測試。以我習慣使用的免費影像處理軟體GIMP來說,就有此功能(請見參考資料)。除此,找了一下,VIPBase也有這樣的功能。
最後,提一下兩件事情…
- 實際應用上,圖檔來源所呈現的內容可能差異很大(如,只是單純的文字圖檔、或複雜的風景、人物)、另外,原始影像品質參差不齊。所以,參數的設定最好是保守一點。
- 圖檔縮小並做銳利化處理,和僅作縮圖的圖檔相比,有做銳利化的檔案SZIE會稍微大一些。(採相同壓縮比時)
留言