linux圖片壓縮
用tar壓縮
壓縮格式和工具有bzip2和gzip,你可以單獨使用,也可以配合tar使用
tar的主要的功能有
-t 列印歸檔中的所用文件,並以列表的形式顯示
-c 歸檔壓縮
-x 打開歸檔和解開壓縮
壓縮命令選項有:
-j 選擇bzip2壓縮,壓縮後的歸檔文件為 ***.tar.bz2
-z 選擇gzip壓縮,壓縮後的文件為***.tar.gz
其他壓縮選項:
-f 指定 歸檔文件
-v 列印操作過程中的相信信息
舉例1:
tar -cvzf 1.tar.gz 1.txt 2.txt 2.txt
將1.txt 2.txt 3.txt 壓縮歸檔為1.tar.gz, 如果你想壓縮成bzip2,將z換成j即可
舉例2:
tar -xvzf 1.tar.gz
將1.tar.gz解壓,如果文件是1.tar.bz2, 則將z換成j。
上述命令中 v選項可以去掉,v只是顯示操作過程中的信息
舉例3:
tar -tvzf 1.tar.gz
顯示1.tar.gz中的文件信息,但不解壓,如果是 1.tar.bz2, 你知道該怎麼辦了嗎?
其中 bzip2 和gzip以單獨對命令也可以使用,與tar類似,你可以用 man bzip2 和man gzip命令查看具體的說明。
就壓縮而已,文本文件的壓縮率很高,網上給出的參數是10%~15%,我本人感覺差不多是這樣,二進制文件的壓縮率不高。
『貳』 linux中打包和壓縮有什麼區別
打包就是把若干文件或文件夾放到一個tar文件中,但是不會壓縮文件大小。
壓縮就是在打包的基礎上壓縮文件的大小。
『叄』 png圖片怎麼通過代碼實現壓縮到指定的文件大小,比如5M壓縮到200KB,比如用pngquant或imageMagick
先用命令行形式進行 PNG 壓縮。
1,下載 windows安裝包 或者 mac 和 linux 版本的安裝包。
2,命令行輸入 pngquant 就可以使用了;
3,為了使用方便,可以配置環境變數(後面如果和 picom 集成在了一起再去掉 )。
快速使用 pngquant
pngquant 圖片名稱.png
對於一些可選參數的說明:
1,--skip-if-larger pngquant 有時候壓縮的文件會比源文件大。這個選項會判斷,如果大就取消執行。強烈建議加上
2,--quality 0-100 圖片質量。對於顏色沒有特別要求的可以縮減到 10, 但是越小壓縮率越低,通常不需要設置。
3,--force 強制執行,pngquant 會判斷,如果有一個已經壓縮的同名文件在當前文件夾,就不會執行。這個選項會覆蓋原來的文件。
4,--output file 指定輸入文件的名稱。 可以指定為 jpg 格式,但是圖片不會變得更小。
5,--speed 執行速度
使用 subprocess 調用 pngquant 命令行
對應的程序:
import subprocess
subprocess.run('pngquant elephant.png')
如果想獲取程序運行時屏幕上顯示的內容,可以使用 check_output 方法,在這里不需要。
接下來使用 subprocess 封裝對應的壓縮函數:
def pngquant_compress(fp, force=False, quality=None):
"""壓縮函數.
參數:
fp: 文件名稱
force: 如果存在同名文件,是否覆蓋
quality: 壓縮質量。 10-40, or 10
"""
force_command = '-f' if force else ''
quality_command = ''
if quality and isinstance(quality, int):
quality_command = f'--quality {quality}'
if quality and isinstance(quality, str):
quality_command = f'--quality {quality}'
command = f'pngquant {fp} --skip-if-larger {force_command} {quality_command}'
subprocess.run(command)
if __name__ == "__main__":
pngquant_compress('elephant.png
『肆』 linux打包壓縮命令gzip
打開linux客戶端,如下圖所示
『伍』 linux 如何壓縮JPG圖片
回復 1# 的帖子 這個應該是可以直接在通過discuz上傳的時候就可以處理成指定的尺寸。如果是上傳後可能就得需要寫個php的腳本批量處理。
『陸』 linux下怎樣壓縮文件和解壓縮
Linux系統壓縮和解壓文件都可以用tar命令,需要在壓縮文件時指定壓縮參數,解壓縮時指定解壓參數。
tar命令主要參數解釋:
-z參數:表示要解壓或壓縮的是tar.gz文件(如果是tar.bz2就是-j)
-x參數:表示是執行解壓縮操作而不是打包操作
-v參數:表示列出解壓時的詳細消息
-f參數:指定要解壓的文件名,或者指定新建的打包文件的名字
tar命令解壓時還可以指定解壓的目標目錄,也就是把壓縮文件的內容解壓到哪個文件夾內,這個參數是-C(大寫的C),例子:
解壓tar.gz文件:tar -zxv -f test.tar.gz -C /home/user/target
解壓tar.bz2文件: tar -jxv -f test.tar.bz2 -C /home/user/target
如果是zip文件就無法用tar命令解壓了,需要用unzip命令,unzip命令常用的參數是指定解壓縮的目標目錄的-d參數,例子:
unzip test.zip -d /home/user/target
下面說一下壓縮文件,Linux上最常用的壓縮格式一般是bzip2格式(常用bz2後綴)和gzip格式(常用gz後綴),因為它倆的壓縮比比較高而且沒有使用授權費用。壓縮命令也是用tar命令,只不過是把上面的解壓tar命令中的-x參數換成-c參數,-c參數表示新建打包文件,在配合上-j或-z參數就能用指定的格式壓縮文件了。不過注意,當壓縮文件時,-f參數後面跟的是新建的壓縮包的名字,壓縮包文件名後面還要跟將要壓縮的文件或文件夾(這就不需要-C參數了)。不多說,直接看例子就明白了:
tar -jcv -f newfile.tar.bz2 要壓縮的文件或目錄
tar -zcv -f newfile.tar.gz 要壓縮的文件或目錄
『柒』 linux下將很多文件按要求壓縮成zip包
tar -zcvf xxx.tar.gz xxx | split -b 20M -d -a 1 - xxx.tar.gz.
一條命令搞定