我想取一個各種尺寸的圖像文件夾,並將它們裁剪成一個600x600的網格正方形,從圖像的中間切出。是否有一個程序可以自動調整大小和裁剪到這些尺寸,然後輸出為壓縮的.png文件?對於小於600x600的圖像,我希望程序將圖像的尺寸增加到該尺寸。
我想取一個各種尺寸的圖像文件夾,並將它們裁剪成一個600x600的網格正方形,從圖像的中間切出。是否有一個程序可以自動調整大小和裁剪到這些尺寸,然後輸出為壓縮的.png文件?對於小於600x600的圖像,我希望程序將圖像的尺寸增加到該尺寸。
Photoshop的Batch命令可以做到這一點。本質上,您將“錄製”自己執行一次裁剪等操作,然後在所需的所有文件上運行錄製。如果要自動調整較小圖像的大小,則必須做一些腳本編寫。
Irfanview還具有完善的圖像批處理處理器,但可能需要進行一些實驗才能獲得所需的結果。
ImageMagick讓我們在Windows命令窗口中運行命令。您需要習慣於創建Dos批處理文件。
有關示例,請參見本討論中的最後一篇文章: http://www.imagemagick.org/discourse-server/viewtopic.php? f = 1&t = 21112
此論壇帖子的相關示例:
@echo offcd C:\ Users \ user \ Desktop \ New \ New folderconvert * .jpg -fuzz 10 %% -trim -write %% 02d_trim.png -scale“ x1!” txt:轉換* _trim.png -crop 209x329 + 0 + 0 -fuzz 10 %% -trim + repage %% 02d_left.png轉換* _trim.png -crop 173x336 + 227 + 0 -fuzz 10 %% -trim + repage %% 02d_right.png@pause
首先,我認為您想調整批量大小,許多程序可以做到這一點。但是後來我意識到,您需要將調整大小和裁剪結合起來,並且希望計算機計算如何從圖像中動態地最好地切出600x600像素。
這是因為它不是“一個真正的解決方案”這類任務,通常是人為判斷,即如何裁剪圖像,因此只能通過引導某些條件來完成。例如,查看長寬比,並始終將最短尺寸調整為X和裁切Y(居中/向右/向左)像素。如果我正確閱讀了您的聲明,則如果兩個尺寸均為600或更大,則您希望從兩個尺寸的X和Y中心裁剪600個像素。如果尺寸小於600,僅將尺寸調整為600?
我很想在我的程序“ Image View Plus More”中添加一個這樣的功能,我想功能設置應該是這樣的:-裁剪尺寸:wx h-對齊寬度:center / left / right-對齊高度:居中/ left / right-調整大小:否/是否小於/大於/都
您還需要其他設置嗎?
更新:現在我已經將此功能編程到Image View Plus More 2.4中:
http://www.sequoiagrove.dk/tools.php
如何-至:安裝,將要裁剪的圖像拖放到其中,“全部保存到新文件夾”,並為其指定基本名稱或%以使用原始文件名,然後在下一個對話框中選擇“自動裁剪”並填寫寬度和高度的框,並選擇對齊方式“中心”作為高度和寬度,然後選中“如果較小則調整大小”。
我做了一個教程,怎麼做:
OP問題的解決方案: http://www.youtube.com/watch?v=wBc1s6zuDJM
如果您喜歡編程,則可以使用 Python(計算機語言),並且一個很好的庫知道 PIL可以裁剪,調整大小,繪製直方圖,獲取單個像素程式碼等。因此,您可以輕鬆編寫一個簡單的腳本來查找文件夾中的所有圖像並執行操作。
此代碼應完全滿足您的要求,並根據圖像大小每秒處理幾張圖片:
#Python 2.7,PIL 1.1.7import Imageimport globimport os#用於調整圖像大小的函數,保留寬高比def resizeAspect(im,size):w,h = im.size Aspect = min(size [ 0] / float(w),size [1] / float(h))返回im.resize((int(w * aspect),int(h * aspect)),Image.ANTIALIAS)imgList = glob.glob(' C:/ icons / *。png')#在imgList中查找img列表中的所有png圖像:#遍歷所有找到的圖像im = Image.open(img)#打開圖像打印“調整大小:”,os.path。 basename(img)w,h = im.size#如果min(w,h)則獲取圖像的寬度和高度<600:#檢查任一尺寸是否小於600 im = resizeAspect(im,(600,600)) #調整圖像尺寸w,h = im.size#更新圖像尺寸center = [int(w / 2.0),int(h / 2.0)]#計算中心框=(center [0] -300,center [1] -300,center [0] +300,center [1] +300)#定義一個要裁剪的框裁切的裁剪Im = im.crop(box)#裁剪圖像#croppedIm.show()#顯示裁剪的裁切圖片文件名,fileExtension = os.path.splitext(img)croppedIm.save(fileName +'_ crop.png',“ PNG”)#保存裁剪後的圖片
編程級別,那麼天空就是極限!甚至可以檢測到面部並在面部周圍裁剪,從而使您可以智能裁剪數千張照片...
[2012年9月12日更新]
Sizzlepig.com是一個易於操作的在線工具,您可以將“藍圖”大小設置為600x600,然後將其裁剪為所有圖像的中心。
對於“對於小於600x600的圖片,我希望程序將圖片的尺寸增加到該尺寸。”我強烈建議您不要嘗試放大圖像,而是嘗試找到更高質量的信號源。我知道這並不總是可能的,但是與嘗試升級相比,它將產生更高的質量輸出。
(我為sizzlepig工作,但它仍然是一個很好的工具)
ThumbsPlus可以滿足您的要求。在圖像菜單上,選擇批處理或按F12鍵並回答交互式提示。您可以將多個操作添加到集合中並保存以供立即使用和將來使用。將來,只需訪問先前配置的設置名稱即可在目錄或照片選擇甚至整個目錄樹上自動運行它。
構建該設置時,將為您提供示例圖片說明您已添加到操作中的選項。
在構建集合時要小心,因為操作的順序很重要。
Irfanview可以滿足您的要求。它的批處理模式有很多選項。
這是一個小教程鏈接: http://gd.tuwien.ac.at/graphics/irfantut/batchcon.html
Irfanview可以執行此操作,但需要進行一些設置。
使用“批量轉換”選項。選擇“ PNG”作為輸出格式。單擊輸出格式旁邊的“選項”按鈕,然後選擇所需的壓縮,然後單擊“確定”。
選中“使用高級選項”框,然後單擊“高級”按鈕
您將看到此窗口
設置最短邊600的調整大小。請確保選中“保留”寬高比”和“使用重採樣功能”。取消選中“不要放大較小的圖像”
如果您要大幅減小原始圖像的大小,則可能需要在“銳化”框上打鉤並添加一個值。我的要求是150x150尺寸的圖像,我發現它們需要大約20的銳化值,以匹配我從photoshop獲得的圖像質量。對於您的600x600圖像,您可能不需要銳化值-因此您可以取消選中該選項。
代替使用“裁剪”,請使用“畫布大小”設置-確保選中該選項
單擊畫布大小選項旁邊的“設置”按鈕。您將看到此窗口
選擇方法2,寬度和高度為600。為錨點選擇“中心”選項
畫布顏色無關緊要,因為它實際上不會添加圖像邊框
現在,在高級屏幕上,再次選中“自定義處理順序”旁邊的複選框,並確保首先顯示“調整大小”列表-即,以便在裁剪之前完成調整大小。
單擊“確定”
確保已選擇要轉換的文件,設置輸出目錄,然後點擊“開始批處理”
尋找Phatch(Linux,Mac,Windows),它正是您所需要的: http://photobatch.stani.be/download/index.html
在 http://pixresizer.software.informer.com/
上有一個具有多個選項的實用程序,這是一個很好的軟件。好的手段,易於使用並且工作更快。在進行攝影時,我正在使用它來批量處理圖像。很多時候,我需要減少圖片的大小,以便通過互聯網共享它們。我也嘗試過其他軟件,但發現它很好。 (我與這家公司沒有關係。)
我不知道為什麼沒人提它,但是我最喜歡的是 multipleimageresizer.net。它可以讓您做很多事情,例如裁剪,更改格式,大小,添加文本,水印等。
這是一個實時保護程序。.我建議!