shell技巧2 - 圖片旋轉(zhuǎn)縮放轉(zhuǎn)換格式等

1锣吼、前言

在macOS下选浑,如果對(duì)大量圖片進(jìn)行處理或數(shù)據(jù)收集,查找了一下玄叠,通過使用 sips 命令古徒,可以進(jìn)行圖片的大部分操作處理,如果使用 shell读恃,就可以靈活和自動(dòng)化的批量操作圖片隧膘!

2、sips 用法

常用的用法可以參考: 利器: Mac自帶的圖片工具Sips寺惫,全部的用法可以參考:sips MAN page Man Page - macOS - SS64.com

以下就是引用 利器: Mac自帶的圖片工具Sips 內(nèi)容:

1.裁剪時(shí)固定圖片寬度舀寓,高度自適應(yīng)

```shell
sips -Z 320 iamge_file_name
```

2.裁剪時(shí)指定圖片寬與高

```shell
# 裁剪圖片為400x300大小
sips -z 400 300 iamge_file_name 
```

注:需要注意的是這里的參數(shù)是小寫的z,并且圖片縮放方式不是鎖定圖片比例的肌蜻,即如果圖片本身是16:9,則會(huì)導(dǎo)致圖片被擠壓必尼。

3.旋轉(zhuǎn)圖片

```shell
sips -r 90 image_file_name
```

注:上面的命令將圖片順時(shí)針旋轉(zhuǎn)90度蒋搜,相信機(jī)智的你已經(jīng)想到逆時(shí)針90度應(yīng)該是-90了。沒錯(cuò)判莉,順時(shí)針用正數(shù)表示豆挽,逆時(shí)針可以用負(fù)數(shù)表示。你可以進(jìn)行任意角度和方向的旋轉(zhuǎn)券盅。

4.翻轉(zhuǎn)圖片

```shell
sips -f horizontal image_file_name
```
注:上面命令可以對(duì)圖片進(jìn)行水平翻轉(zhuǎn)帮哈,-f支持水平和垂直兩種翻轉(zhuǎn),水平(horizontal)锰镀,垂直(vertical)娘侍。

5.修改圖片格式

```shell
sips -s format jpeg input.png -o output.jpg
```
注:使用-s參數(shù)可以修改圖片格式為指定值咖刃,sips支持jpeg | tiff | png | gif | jp2 | pict | bmp | qtif | psd | sgi | tga共11種格式。并且-s除了能修改文件格式外憾筏,還能修改圖片的其它meta數(shù)據(jù)嚎杨,具體可以通過man sips查看。

6.獲取圖片meta信息

```shell
sips -g pixelWidth -g pixelHeight image_file_name
```
注:上面命令可以獲取圖片的長(zhǎng)寬高信息氧腰,與-s參數(shù)一樣枫浙,-g也支持更多的meta值,可以參見man sips的信息古拴,這里就不做贅述了箩帚。

3、shell 編程

通過使用 sips 命令進(jìn)行圖片處理黄痪,本來計(jì)劃做一個(gè)功能庫(kù)紧帕,但是想想還是沒有必要,簡(jiǎn)單的寫了一個(gè)圖片旋轉(zhuǎn)的示例满力,希望大家能舉一反三焕参,這都是授魚不如授漁!

4油额、圖片旋轉(zhuǎn)代碼實(shí)現(xiàn)

具體的代碼叠纷,可參考我的Github代碼:

#!/bin/bash

# 定義用到的變量
imagePath=""
angle=""

# 定義讀取輸入字符的函數(shù)

getImagePath() {
    echo "\n================================================"
    # 監(jiān)聽輸入并且賦值給變量
    read -p "Enter image path: " imagePath
    # 如果為空值涩嚣,從新監(jiān)聽,否則執(zhí)行旋轉(zhuǎn)函數(shù)
    if  test -z "$imagePath"; then
         getImagePath
    else
        rotationImage
    fi
}


rotationImage() {
    echo "\n================================================"
    read -p "Enter angle(default 90°): " angle
    # 如果為空值掂僵,默認(rèn)設(shè)置為90度
    if test -z "$angle"; then
        angle="90"
    fi

    # 使用 sips 命令進(jìn)行圖片旋轉(zhuǎn)
    sips -r "${angle}" "${imagePath}"
        
    echo "\n rotation $angle ° finished!"
        
    # 重新調(diào)用旋轉(zhuǎn)函數(shù)航厚,方便多次旋轉(zhuǎn)操作
    rotationImage
    
}

# 首先執(zhí)行函數(shù),給變量賦值
getImagePath

5锰蓬、總結(jié)

比如圖片批量格式轉(zhuǎn)換幔睬,圖片尺寸批量獲取等,通過 ship 命令芹扭,然后結(jié)合 sehll 腳本麻顶,效率和自動(dòng)化不是夢(mèng)!

關(guān)于sips的更多使用場(chǎng)景舱卡,可以看看這篇文章 使用sips命令自動(dòng)縮減圖片尺寸

下一節(jié)辅肾,結(jié)合剛需,打算寫一個(gè)從一張1024的圖片轮锥,自動(dòng)生成Xcode所需要的全部圖標(biāo)矫钓,這應(yīng)該是一個(gè)不錯(cuò)的想法!期待吧~

參考


  • 如有疑問,歡迎在評(píng)論區(qū)一起討論新娜!
  • 如有不正確的地方赵辕,歡迎指導(dǎo)!


注:本文首發(fā)于 iHTCboy's blog杯活,如若轉(zhuǎn)載匆帚,請(qǐng)注來源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市旁钧,隨后出現(xiàn)的幾起案子吸重,更是在濱河造成了極大的恐慌,老刑警劉巖歪今,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嚎幸,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡寄猩,警方通過查閱死者的電腦和手機(jī)嫉晶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來田篇,“玉大人替废,你說我怎么就攤上這事〔醇恚” “怎么了椎镣?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)兽赁。 經(jīng)常有香客問我状答,道長(zhǎng),這世上最難降的妖魔是什么刀崖? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任惊科,我火速辦了婚禮,結(jié)果婚禮上亮钦,老公的妹妹穿的比我還像新娘馆截。我一直安慰自己,他們只是感情好蜂莉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布孙咪。 她就那樣靜靜地躺著,像睡著了一般巡语。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上淮菠,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天男公,我揣著相機(jī)與錄音,去河邊找鬼。 笑死枢赔,一個(gè)胖子當(dāng)著我的面吹牛澄阳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播踏拜,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼碎赢,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了速梗?” 一聲冷哼從身側(cè)響起肮塞,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎姻锁,沒想到半個(gè)月后枕赵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡位隶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年拷窜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涧黄。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡篮昧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出笋妥,到底是詐尸還是另有隱情懊昨,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布挽鞠,位于F島的核電站疚颊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏信认。R本人自食惡果不足惜材义,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嫁赏。 院中可真熱鬧其掂,春花似錦、人聲如沸潦蝇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽攘乒。三九已至贤牛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間则酝,已是汗流浹背殉簸。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人般卑。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓武鲁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蝠检。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沐鼠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354