2016-11-07 26 views
7

Tôi đang tìm một số trợ giúp bằng cách viết tập lệnh theo lô để thay đổi kích thước một loạt hình ảnh .jpg.Tập lệnh Batch Để đổi kích thước hình ảnh

Tôi không có nhiều kinh nghiệm với các tập lệnh theo lô. Nhưng nhiệm vụ này sẽ được tạo sẵn trên máy cửa sổ & vì vậy tôi nghĩ rằng một tập lệnh batch có thể là một cách tốt để đi.

Tôi luôn quan tâm đến việc nghe ý tưởng thay thế & phương pháp tiếp cận hoặc được biết về các yếu tố mà tôi chưa từng nghĩ đến.

Dưới đây tôi đã liệt kê các bước cơ bản/nhu cầu của kịch bản:

1) The images are located in a folder & are all(or should be) 500 x 
500. 

2) I need copy & past the images to a new folder, where they will be 
resized to 250 x 250. 

3) I then need to repeat step 2 but this time resize to 125 x 125. 
+1

Có thể hữu ích http://askubuntu.com/questions/135477/how-can-i-scale-all-images-in-a-folder-to-the-same-width –

Trả lời

6

Nếu bạn muốn làm điều đó trên lệnh dòng cụ thể, có lẽ vì vậy bạn có thể tự động hóa nó, không có lệnh cụ thể trong hàng loạt được thực hiện cho hình ảnh mani pulation. Bạn có thể mã hóa một cái gì đó trong một JScript hoặc ngôn ngữ khác và chạy nó từ dòng lệnh, nhưng tại sao làm điều đó khi có các công cụ trưởng thành đã có sẵn cho nhiệm vụ này?

Tôi khuyên bạn nên ImageMagick.

Lấy nhị phân Windows di động, sau đó bạn có thể sử dụng magick.exe để thực hiện những gì bạn muốn khá dễ dàng. Ví dụ, để thay đổi kích thước (một nửa) tất cả các hình ảnh png trong thư mục từ 1 tới thư mục 2:

@echo off 
if not exist 2 md 2 
for %%a in (1\*.png) do "path\to\magick.exe" -resize 50x50% "1\%~nxa" "2\%~nxa" 
+1

Vì câu trả lời này đã được đăng, Image exe của ImageMagick giờ được gọi là 'magick.exe' không phải là' convert.exe'. –

+0

Thay đổi chuyển đổi thành magick – soja

+0

Vì bạn sử dụng ImageMagick, có thể khôn ngoan hơn khi sử dụng quy trình thay đổi kích thước chính xác ... https://www.imagemagick.org/Usage/resize/#resize_colorspace có nghĩa là sử dụng: cho %% a in (1 \ *. Png) làm "path \ to \ magick.exe" 1 \% ~ nxa "-colorspace RGB -resize 50x50% -colorspace sRGB" 2 \% ~ nxa " – FarO

6

Khi bạn cài đặt ImageMagick for Windows, bạn có thể sử dụng magick command-line tool, ví dụ

magick.exe mogrify -resize 250x250 -path 250x250/ *.png *.jpg 
magick.exe mogrify -resize 125x125 -path 125x125/ *.png *.jpg 

Lưu ý: Hãy chắc chắn rằng lệnh magick.exe của bạn là trong biến hệ thống PATH của bạn và bạn đang trỏ đến hiện tại hoặc tạo ra các thư mục định mệnh (ví dụ mkdir 250x250/ 125x125/ trong trường hợp trên).

Đối với Linux/Ubuntu, xem: How to easily resize images via command-line?

+2

Chỉ cần đảm bảo rằng thư mục tồn tại trước khi bạn chạy nó – Jeff

+0

Trước khi chạy, hãy chạy 'mkdir 250x250' và' mkdir 125x125' –

3

bạn có thể kiểm tra scale.bat mà có thể thay đổi kích thước hình ảnh mà không cần cài đặt phần mềm bổ sung - nó chỉ sử dụng các cửa sổ tích hợp khả năng:

@echo off 
set "source_folder=c:\images" 
set "result_folder_1=c:\res1" 
set "result_folder_2=c:\res2" 

for %%a in ("%source_folder%\*jpg") do (
    call scale.bat -source "%%~fa" -target "%result_folder_1%\%%~nxa" -max-height 250 -max-width 250 -keep-ratio no -force yes 
) 

for %%a in ("%source_folder%\*jpg") do (
    call scale.bat -source "%%~fa" -target "%result_folder_2%\%%~nxa" -max-height 125 -max-width 125 -keep-ratio no -force yes 
) 

Kiểm tra cũng this.

+2

Tôi thích giải pháp này tốt nhất.Nó là đơn giản, sử dụng những gì đã có trên hệ thống và cũng cung cấp ví dụ tốt về cách giao diện với hệ thống để mở rộng hoặc làm một cái gì đó khác. Làm tốt lắm! – Tiris

Các vấn đề liên quan