為什么要開發這個程式?
我在制作隨機壁紙API時,需要將大量圖片壓縮到指定尺寸和指定大小,但是現有的軟體都是根據畫質來壓縮圖片的,大圖片在壓縮之后仍然很大,而小圖片越壓縮越模糊,所以我一直都是使用Photoshop一張一張將圖片壓縮到200KB以下,當時只有幾十張壁紙,而最近下載了一個包含4500張圖片的壓縮包,不可能再手動壓縮了,因此萌發想法制作一個可以把圖片壓縮到指定KB的壓縮軟體
如果你想要盡快獲得該程式,請前往Gitee下載最新發行版
專案介紹
PicSizer是一款圖片批量壓縮軟體,解決了傳統壓縮軟體只能指定壓縮比,而不能指定壓縮后的大小的問題,
程式原理與相關演算法將會在之后的文章中解釋
使用截圖



下載與使用
PicSizer發行版
適用場合
撰寫PicSizer的最初目的是用來制作網頁圖片,因為網頁圖片需要盡可能占用更少的帶寬,盲目使用畫質作為唯一標準來壓縮圖片的后果是大圖片壓縮后仍然較大,而小圖片越壓縮越模糊,PicSizer可以在盡可能保證圖片質量的情況下,將圖片壓縮到指定的大小,例如200KB,對大圖片降低畫質,對小圖片僅轉碼而不改變畫質,可以滿足大部分需求,
功能說明
批量增刪圖片
PicSizer支持每次打開同一目錄下的圖片檔案,并將生成的圖片保存至指定目錄,如果指定的目錄不存在,會自動生成;如果目錄中已經有檔案,則同名檔案將會被直接替換而不事先警告,
增加圖片時會自動將地址與串列中的地址比對,如果已存在,則會跳過,并在添加完成后提示有幾張圖片被跳過,
使用 SHIFT 或 CTRL 來輔助多選,可以批量洗掉串列中的圖片,
支持多種格式
PicSizer支持的格式有 *.jpg , *.png , *.bmp , *.tiff
尺寸修正
PicSizer可以把圖片按比例縮放(也可以選擇不縮放),但是不支持破壞原圖的比例,修正共有3種模式: 無修正,不小于限定值, 不大于限定值,
無修正
將圖片按照原圖尺寸輸出,
不小于限定值
在保持寬度和高度不小于給定值的情況下,盡可能按比例縮小圖片,例如,給定 400×300 的尺寸,而圖片的尺寸為 800×800 ,則修正后的尺寸為 400×400,
如果圖片的寬或高已經小于給定尺寸,則圖片不會被修正,
不大于限定值
在保持寬度和高度不大于給定值的情況下,盡可能按比例放大圖片,例如,給定 400×300 的尺寸,而圖片的尺寸為 100×100 ,則修正后的尺寸為 300×300,
如果圖片的寬或高已經大于給定尺寸,則圖片不會被修正,
壓縮方式
指定畫質
PicSizer將畫質劃分為101個等級,從 0 到 100,數字越小表示畫質越低,
對同一張圖來說,畫質通常和壓縮率成正比,即畫質越低,壓縮率越低,圖片越小,但是對不同圖片來說,相同的畫質可能會有不同的壓縮率,
大圖片在壓縮后仍然可能占用較大空間,小圖片雖然畫質已經很低,但是仍然會被壓縮,導致畫質更低,
指定大小
在盡可能確保圖片質量的情況下,將圖片壓縮到不超過指定大小的大小,
例如,限定大小為200KB,則壓縮后的圖片可能是200KB,也可能是196KB,PicSizer通過二分查找的方法,在所有畫質中尋找符合條件的最高畫質,因此你不必擔心圖片畫質過低,
命名方式
命名方式可以決定輸出后的圖片檔案名,注意命名和后綴是分開考慮的,例如圖片原名為 pic.png,選擇的命名方式為“原名”,但是指定格式為“TIFF”,則最終輸出的檔案名是 “pic.tiff”,
數字
使用數字來命名輸出后的檔案,如 1.jpg, 2.jpg … n.jpg
你可以指定下標的起始位置,如果其中一張圖片生成失敗,則下標不會增加,
例如,在生成 1.jpg 后,第二張圖片生成失敗,則第三張圖片將會被,命名成 2.jpg,
原名
使用原名來命名檔案名,注意原名不包括后綴,你可以只修改后綴而不修改原名,
混合方式
混合方式提供了自定義的方法來決定檔案名,檔案名將會使用你指定的字串來生成,但是字串其中必須存在 “{0}” ,它將會被替換成數字,你可以修改它的起始下標,
例如,指定字串為 “a0{0}a1”,指定起始下標為 -5,則生成的檔案名將會是 “a0-5a1.jpg”,“a0-4a1.jpg”…“a04a1.jpg”,“a05a1.jpg”,
如果出現了多個“{0}”,則所有的“{0}”都會被替換掉,
注意不要使用不能作為檔案名的字符,例如“\”,否則將會生成失敗,
例外處理
目前PicSizer不提供自定義處理例外的方式,遇到例外時,將會被跳過,且下標不會增加,也不會提示具體哪個檔案出錯,只會在壓縮完成后提示生成失敗的圖片個數,
后序計劃
- 自定義檔案名
- 允許強制修正尺寸
- 動態添加和洗掉檔案或檔案夾
- 完善例外提示資訊
- 自定義遇到例外時的處理方式
- 對生成后的圖片做簡易的圖形處理(例如:變暗)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/376050.html
標籤:其他
