Jetpack的Photon圖片壓縮畫質不好?試試看關閉Zoom功能

日前從別的筆電看部落格時,發現圖片畫質很差,但只要關閉Jetpack的Photon畫質就會變好。

原圖與 Jetpack Photon Zoom 後比較

我上網查了一下,果然也有人反應1在Jetpack的外掛頁面有兩篇文章反應:Photons messes up image qualityPhoton – Quality too low,但官方表示Photon壓縮圖片的方法是採無損的演算法,所以希望對方進一步提供資訊,此後便無下文。我回家檢查了一下自己的圖片,發現畫質並沒有變差,唯獨使用那台筆電才會變差,最後發現是在某些設備檢視時,Photon會判斷需要放大、縮小圖片,所以使用了Zoom,我們只要關閉就好了。

發現的過程

一開始我就將問題鎖定在Photon,但上網都找不到解法,所以我嘗試換了佈景主題,情況仍未改善,所以我繼續找原因,接著便發現若把Photon網址後面的zoom或resize參數刪除,圖片就會便清晰,比對後發現是photon把圖片縮小後(此時畫質已經略差),又被我設定的長寬放大,所以畫質才變(非常)差。

當時的圖片都如下方一樣有兩個參數。

https://i1.wp.com/img.aquirede.net/2017/03-1098/Haikyuu_OP5_01.jpg?zoom=1.25&resize=760%2C428

zoom是用來放大縮小,因為Retina之類的螢幕需要更大張的圖。
resize雖然也是放大縮小,但他還包含了裁切。

非常奇怪的是zoom設定1.25應該要放大1.25倍吧?但他卻是縮小成0.95倍!雖然resize本身也會變糊,但本次的情形是resize維持原本尺寸,所以我判斷是zoom造成的,再加上resize在其他地方仍然很好用,就上網搜尋了一下……我們來關閉zoom吧!

解決辦法

在佈景主題的function.php檔案中加入這段語法。

wp_dequeue_script( 'devicepx' );

如果是子佈景主題(Child Theme)的話,就是在子佈景主題的function.php中加上這段語法。

function remove_devicepx() {
    wp_dequeue_script( 'devicepx' );
}
add_action( 'wp_enqueue_scripts', 'remove_devicepx' );

這樣Jetpack就不會在圖片後面加上zoom的參數啦!

Retina什麼的就之後再說吧。

You may also like

備註

備註
1 在Jetpack的外掛頁面有兩篇文章反應:Photons messes up image qualityPhoton – Quality too low

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.