為什麼你儲存的JPG 圖片檔案大得離譜? - ITW01

文章推薦指數: 80 %
投票人數:10人

連從UI 培訓學校剛畢業的實習生小妹都知道,一張圖片的檔案大小,和它的尺寸、解析度、格式、質量、顏色內容等都有關係。

如果你經常用到 PhotoShop ... ITW01 數碼 技術 安全 科技 設計 ZFreetCHeung 2017-10-2409:26:16 頻道:Photoshop 文章摘要:所以問題與格式無關多餘資料屬於檔案本身的某種後設資料會跟隨某些操作被帶到其它檔案中存為PNG格式一定是小檔案就會被記錄到當前文件的XMP資料中 科技. Invoke-PSImage:將PS指令碼隱藏進PNG畫素中並用一行​指令​去執行它 科技. Invoke-PSImage:將PS指令碼隱藏進PNG畫素中並用一行指令去執行它 雲端計算. 物件儲存、塊儲存、檔案儲存的區別 連從UI培訓學校剛畢業的實習生小妹都知道,一張圖片的檔案大小,和它的尺寸、解析度、格式、質量、顏色內容等都有關係。

如果你經常用到 PhotoShop處理圖片,基本對儲存的每張圖片檔案大小都心裏有譜。

不過,隨時著我們的P圖生涯越來越長,經常會碰到PS界三大詭異現象之一:本以為存的圖片很小,結果儲存出來卻大得離譜! 這裏舉個栗子,一張256px*256px且顏色簡單的jpg圖片檔案能有多大?正常情況下有幾百 KB就很了不得了。

但是下面左側這張樣圖卻有 6.23MB!不是KB而是MB!肉眼可分辨的視覺效果與右側樣圖卻一模一樣(示例檔案在文末可下載)。

作為P圖老司機,我有一百種方法來減小圖片的檔案大小,比如「儲存為」PNG格式、使用「儲存為Web所用格式」儲存、使用其它軟體轉存壓縮等等常用方法。

但只要使用「Ctrl+S儲存為」來儲存JPG圖片,檔案就會大得離譜。

除此以外,還必然會伴隨著另一個現象,對應的PSD檔案也會大得離譜,上面左側樣圖對應的PSD檔案就有7.96MB。

所以想深究一下造成檔案大得離譜的原因是什麼?而不是每次都繞道而行。

前面已知使用不同的儲存方式,或不同的圖片格式,就會導致圖片大小的明顯差異。

初步判斷是,檔案過大一定是包含了一些多餘資料沒有被精簡掉,於是繼續嘗試了一些常見操作,再存為JPG和 PNG格式,看能不能排除定位出問題的範圍,見下表。

常見的PS操作 JPG格式 PNG格式 Ctrl+S>PNG格式 大 小 Ctrl+S>JPG格式 小 小 Shift+Ctrl+S>不同的「後設資料」選項: 無 小 小 版權 小 小 版權和聯絡資訊 小 小 除相機資訊外的全部 大 大 全部 大 大 新建一個原尺寸空白畫布,最後Ctrl+S: 拖動複製所有圖層到新畫布 小 小 用選單命令複製所有圖層到新畫布 小 小 所有圖層轉為「智慧物件」,拖動複製到新畫布 大 小 所有圖層轉為「智慧物件」,用選單命令複製到新畫布 小 小 拖動複製一個圖層到新畫布 大 小 用選單命令複製一個圖層到新畫布 小 小 一個圖層轉為「智慧物件」,拖動複製到新畫布 大 小 一個圖層轉為「智慧物件」,用選單命令複製到新畫布 小 小 通過上面的操作與現象,大致有以下結論: 不同的複製方式都會影響檔案大小,所以問題與圖層無關 JPG和PNG格式都有可能變成大檔案,所以問題與格式無關 多餘資料屬於檔案本身的某種後設資料,會跟隨某些操作被帶到其它檔案中 存為PNG格式一定是小檔案,是因為多餘後設資料會被預設精簡,除非手動保留 接下來就是要看看檔案中的這些多餘後設資料是什麼了,可以使用 PhotoShop中的「檔案簡介Alt+Shift+Ctrl+I」來檢視,挨着翻一遍,切換到「原始資料」標籤頁時,這一大堆東西什麼鬼就特別顯眼,沒有什麼語義一看就很異常冗餘。

這是什麼? 於是又到了求助 Google的環節,這是什麼東西?從Adobe的XMP官方文件可以找到如下說明(第32頁): photoshop:DocumentAncestors Ifthesourcedocumentforacopy-and-pasteorplaceoperationhasadocumentID,thatIDisaddedtothislistinthedestinationdocument’sXMP. 當你進行復制貼上、拖入、匯入新檔案等操作時,如果這些內容來源有文件ID,就會被記錄到當前文件的XMP資料中,並且這些記錄是不斷累加的,所以特別是那些反覆編輯的文件,就會慢慢累計越來越多的「文件來源」資料。

官方解釋比較模糊,其它帖子也沒說明白「文件ID」到底是怎麼記錄的,有什麼用途。

檔案的XMP資料可以匯出,上面示例檔案就包含了11萬多條的「文件來源」資料,裏面又分為幾種不同的標籤內容,這麼海量的來源資料真不知道都它在記錄些什麼(匯出的XMP資料在文末可下載)。

該怎麼辦? 遺憾的是這些資料完全是軟體自動記錄,沒辦法禁用這種記錄行為。

因為XMP 資料的開放性與可編輯性,需要想辦法直接清理掉檔案中的冗餘資料,而不是匯出圖片的時候再清理,不然還會繼續存在於PSD檔案中。

當然,這麼淺顯的解決思路一定有大神已經實現了,利用 PhotoShop的指令碼事件功能,就能自動清理檔案中的「文件來源」資料: 將下面這段程式碼存為.jsx格式(也有現成的在文末可下載) functiondeleteDocumentAncestorsMetadata(){ whatApp=String(app.name); if(whatApp.search("Photoshop")>0){ if(!documents.length){ alert("Therearenoopendocuments.Pleaseopenafiletorunthisscript.") return; } if(ExternalObject.AdobeXMPScript==undefined)ExternalObject.AdobeXMPScript=newExternalObject("lib:AdobeXMPScript"); varxmp=newXMPMeta(activeDocument.xmpMetadata.rawData); xmp.deleteProperty(XMPConst.NS_PHOTOSHOP,"DocumentAncestors"); app.activeDocument.xmpMetadata.rawData=xmp.serialize(); } } deleteDocumentAncestorsMetadata(); 在 PhotoShop中開啟「檔案>指令碼>指令碼事件管理器」視窗,照著下圖設定 這種方法的效果就是,PhotoShop每次開啟檔案,都會先自動清理掉冗餘的「文件來源」資料,然後你就可以開心地隨意儲存圖片了,並且對應的PSD檔案都不會大得離譜。

如果檔案依然很大,那就是它本來就應該那麼大,這是UI培訓學校剛畢業的實習生小妹都知道的那些原因。

文章來源:ZFreetCHeung 相關頻道:Photoshop 分享到Facebook 相關文章 特殊記憶打動廣大市民-《知青圖片檔案展》觀看人數逾萬 PS製做會動的二維碼圖片 提取主題中的桌布圖片 最後一招!教你一鍵抹去圖片中的水印 這次是我們想要的變形金剛電影嗎?「大黃蜂外傳」無劇透觀後感 使用DataTransfer物件拖放上傳圖片檔案 這些纔是國內真正待你「到此一遊」的冷門地! 倪妮與井柏然分手-她在蘑菇屋的這一段看得我想哭 最熱門文章 最新文章 搜尋



請為這篇文章評分?