Một chương trình tốt để thay đổi kích thước hàng loạt hình ảnh 100.000 jpg là gì?


21

Chương trình sẽ chạy trong chế độ hàng loạt để thay đổi kích thước tất cả các tệp trong một thư mục và sau đó lưu các tệp mới vào thư mục khác. Một tùy chọn để thiết lập chất lượng jpg cũng sẽ rất tuyệt.


2
Một sự kết hợp giữa tìm và ImageMagic.
mspasov

Câu trả lời:


30

Tôi hơi ngạc nhiên khi không ai đề cập đến tùy chọn kỹ thuật dễ nhất, rẻ nhất và ít nhất:

Máy tự động

Đầu tiên, mở Automator, trong thư mục Ứng dụng của bạn.

Tiếp theo, chọn để tạo một quy trình công việc mới:

Tạo quy trình tự động hóa

Tiếp theo, thêm các bước sau vào quy trình làm việc bằng cách kéo và thả:

các bước công việc

Khi bạn chạy cái này, Automator sẽ:

  1. bật lên một cửa sổ yêu cầu bạn chọn một số tệp (bao nhiêu tùy ý)
  2. bật lên một cửa sổ khác hỏi nơi bạn muốn lưu các bản sao đã thay đổi kích thước
  3. hỏi bạn lớn như thế nào bạn muốn các bản sao thay đổi kích thước. Bạn sẽ có thể chọn kích thước cố định hoặc tỷ lệ phần trăm. Tất cả các hình ảnh sẽ được thay đổi kích thước theo kích thước đó hoặc theo tỷ lệ phần trăm đó.

(Hộp kiểm "hiển thị hành động này khi dòng công việc chạy" có nghĩa là dòng công việc sẽ tạm dừng, hiển thị tùy chọn và cho phép bạn thay đổi nó sau đó)

Một khi bạn làm điều đó, Automator sẽ khuấy động và đốt cháy, và khi nó hoàn thành, nó sẽ phát ra tiếng bíp với bạn.

Thật không may, dường như không có tùy chọn để chọn chất lượng JPEG. Tuy nhiên, với mức giá (miễn phí), nó khá tiện lợi.


Nó có thể là ít kỹ thuật nhất cho những người không sử dụng Terminal. Và có thể là dễ nhất, nhưng nó không phải là rẻ nhất trong số các câu trả lời ở đây. Sips được bao gồm trong bản dựng Unix của Mac. Và ImageMagick cũng miễn phí.
markhunte

3
Thật an toàn khi cho rằng Automator, vì mục đích của cuộc thảo luận này là miễn phí vì thật hợp lý khi cho rằng @mototribe đang chạy OS X. Một mối quan tâm của tôi là Automator sẽ xử lý 100.000 hình ảnh như thế nào, nhưng giả sử chúng không phải là tất cả một thư mục duy nhất, tôi sẽ tiếp tục cho nó ăn một thư mục tại một thời điểm cho đến khi hoàn thành. Tôi đã chạy rất nhiều công việc này với hàng trăm hình ảnh mà không gặp khó khăn. Tôi thấy không có lý do tại sao nó sẽ không hoạt động chống lại hàng ngàn người, vì mỗi hình ảnh được đẩy qua một lần, nhưng tôi sẽ tin tưởng nhưng chế độ xác minh.
jaberg

Yep Automator đã làm công việc hoàn hảo. Tôi đến đây với suy nghĩ "Tôi đã tìm thấy một tiện ích dòng lệnh sẽ thay đổi kích thước hàng loạt hình ảnh" ... Đôi khi giải pháp đơn giản nhất cũng là tốt nhất. Chúc mừng.
Silouane Gerin

19

Tôi thích sử dụng ImageMagick. sipsvà Automator (sử dụng một phương pháp thay đổi kích thước giống hệt nhau) làm cho hình ảnh trông quá mờ mà không làm sắc nét thêm theo ý kiến ​​của tôi.

Bạn có thể cài đặt ImageMagick brew install imagemagicksau khi cài đặt Homebrew hoặc sudo port install imagemagicksau khi cài đặt MacPorts . Sau đó chạy một lệnh như thế này:

mogrify -filter lanczos2 -resize '500x500>' -format jpg -quality 90 -path /tmp/ *.jpg

500x500>làm cho hình ảnh rộng hơn hoặc cao hơn 500px vừa với 500x500px. 500xsẽ luôn thay đổi chiều rộng thành 500 px và 500x500^sẽ tạo ra tất cả các hình ảnh ít nhất 500x500px. -path /tmp/lưu các tệp đầu ra /tmp/thay vì sửa đổi các tệp tại chỗ.

Lanczos2hoặc Lanczos 2 thùy rất giống với Catrom. So với Lanczos( Lanczos3), chúng kém sắc hơn một chút, tạo ra các tạo tác vòng ít hơn và tạo ra nhiều mẫu Moiré hơn. Theo tôi, bộ lọc mặc định để làm cho hình ảnh nhỏ hơn Triangle, thường làm cho hình ảnh quá mờ theo ý kiến ​​của tôi.

-quality 100tạo các tệp lớn gấp đôi -quality 95, tạo ra các tệp lớn gấp đôi -quality 88.

Thêm thông tin:

http://www.imagemagick.org/Usage/resize/
http://www.imagemagick.org/Usage/filter/
http://lri.me/shell1.txt

Đây là một lệnh tương tự sử dụng sips:

for f in *.jpg; do sips -Z 500 -s format jpeg -s formatOptions 80 "$f" /tmp/; done

-Z 500giống như 500x500>trong ImageMagick.

Nếu những người khác có ít hơn 100.000 hình ảnh, bạn cũng có thể sử dụng Xem trước:

Xem trước được sử dụng để sử dụng cùng một phương pháp thay đổi kích thước như sipsvà Automator, nhưng nó đã sử dụng một phương pháp khác kể từ 10.7. Tôi thích ImageMagick hơn Lanczos2mặc dù.

Tôi đã tải lên một so sánh các tùy chọn khác nhau để http://19a5b0.s3-website-us-west-2.amazonaws.com/imagemagick-osx-resizing/index.html .


1
Tôi muốn cảnh báo bạn sử dụng mogrify: điều này chuyển đổi các tệp tại chỗ, ghi đè lên các tệp gốc! Nếu bất cứ điều gì sai, bạn đã mất các tập tin của bạn! Sử dụng tốt hơn convert(cũng từ ImageMagick).
Kurt Pfeifle

1
@KurtPfeifle Không có nếu bạn chỉ định -pathtùy chọn ( converthiện không có).
Lri

Nếu bạn đang đi cho tốc độ thì sipscó lẽ là sự lựa chọn tốt hơn. Trong bài kiểm tra nhanh với 1.000 JPG á ~ 5 MB thay đổi kích thước thành chiều rộng 800px mất ~ 1 phút. với sipsvà ~ 8 phút. với mogrify(với bộ đệm đĩa được thanh lọc, sử dụng GNU Parallel trên một lõi tứ).
Stefan Schmidt

13

ImageMagick là một chương trình giao diện dòng lệnh và được thực hiện cho mục đích này. Việc sử dụng và cài đặt ImageMagick có thể đáng sợ, nhưng gói thao tác hình ảnh này là mạnh mẽ nhất mà tôi đã gặp cho đến nay. Vì việc cài đặt từ nguồn có thể gây rắc rối cho người dùng OS X gốc, tôi khuyên bạn nên sử dụng Homebrew .

Để cài đặt ImageMagick bằng Homebrew, hãy chạy oneliner này trong thiết bị đầu cuối của bạn:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

Homebrew hiện đã được cài đặt, nên làm theo các đề xuất của người cài đặt sau khi cài đặt. Bây giờ chúng tôi cài đặt ImageMagick bằng cách sử dụng brew.

brew install imagemagick

ImageMagick hiện đã được cài đặt và convertchương trình này có thể được sử dụng cho mục đích của bạn. Để chuyển đổi hình ảnh jpg lớn sang hình ảnh png nhỏ hơn, bạn có thể chạy

convert input.jpg -geometry 800x600 output.png

Để trả lời câu hỏi của bạn "Cách thay đổi kích thước tất cả các tệp trong một thư mục và lưu chúng vào một thư mục khác", bạn có thể chạy đoạn mã sau.

# create output dir
mkdir -p "../resized"

# Convert all .jpg files in the current folder
for image in *.jpg; do
    convert $x -geometry 800x600 resized/$x
done

ImageMagick có thể chuyển đổi hơn 100 định dạng hình ảnh khác nhau và hầu như tất cả các thủ thuật bạn có thể làm với Photoshop bạn có thể làm với ImageMagick.


cảm ơn, đó là những gì tôi đã sử dụng - tuy nhiên tôi đã cài đặt nó trên Drupal vì tôi đang nhập hình ảnh vào Drupal.
uwe

@the_karel, tôi vừa nâng cao bài viết trước của bạn. Tôi hy vọng bạn không phiền.
CousinCocaine

7

Một số người đã đề cập đến ImageMagick. Đây là một công thức: Để đơn giản, giả sử tất cả các tệp nằm trong một thư mục (và thư mục không chứa gì khác). Mở một cửa sổ đầu cuối, cd vào thư mục này, sau đó chạy

mkdir ../resized
for x in *.jpg; do convert -geometry 800x600 $x ../resized/$x

nơi bạn thay thế 800x600 bằng bất kỳ kích thước nào bạn muốn.

Các ưu điểm bao gồm rất nhiều tính linh hoạt trong ImageMagick convert, chẳng hạn như khả năng chọn các cài đặt chất lượng khác nhau cho hình ảnh mục tiêu hoặc đặt tùy chọn thay đổi kích thước theo tỷ lệ phần trăm. Hoặc bạn có thể sử dụng -geometry 800x800, trong trường hợp đó, tỷ lệ khung hình sẽ được giữ nguyên, nhưng tối đa chiều rộng và chiều cao sẽ là 800 pixel.

Nhược điểm là những điều hiển nhiên: Nó đòi hỏi một sự quen thuộc nhất định với dòng lệnh, cộng với sự sẵn sàng để cày qua các tùy chọn dòng lệnh convertcho các cài đặt bạn muốn. Đây không phải là một nhiệm vụ cho người yếu tim.


4

Tôi thứ hai GraphicConverter . Tôi đã là người dùng đã đăng ký được 16 năm. Mục đích chính của nó là xử lý hàng loạt chỉnh sửa ảnh và nó có giao diện người dùng tốt để thiết kế quy trình công việc tùy chỉnh và lưu chúng.

Bạn cũng có thể sử dụng nó cùng với Automator, nhưng có lẽ bạn sẽ không cần.

Dưới đây là một số thông tin từ trang của GraphicConverter giải thích các chức năng chỉnh sửa ảnh hàng loạt của họ .

Chuyển đổi hàng loạt với các chức năng bổ sung

GraphicConverter cung cấp cho bạn xử lý hàng loạt tinh vi tự động hóa hoàn toàn các tác vụ lặp đi lặp lại được áp dụng cho một lựa chọn các hình ảnh:

  • Chuyển đổi tất cả các hình ảnh nguồn được chọn một cách dễ dàng và nhanh chóng sang một định dạng mới - bất kể có 5 hay 5.000 tệp hình ảnh; bạn chỉ cần xác định loại chuyển đổi và đặt chi tiết
  • Trong quá trình chuyển đổi, bạn có thể áp dụng tối đa 60 chức năng hàng loạt bổ sung như xoay, thay đổi kích thước, thay đổi độ phân giải, v.v.
  • Tự động loại bỏ Mac OS Ressourcefork trước khi tài liệu được tải lên nếu có vấn đề tương thích khi các tệp hình ảnh được đặt trong internet
  • Tạo các danh mục ở định dạng HTML để xuất bản trên internet và điều chỉnh màu sắc, kích thước, v.v. theo yêu cầu riêng của bạn (xem ví dụ)
  • Đổi tên một lựa chọn các tài liệu theo tiêu chí đặc biệt một cách nhanh chóng và dễ dàng
  • Nối các hình ảnh lại với nhau (ví dụ: đối với QuickTime VR)
  • Chèn hoặc trích xuất thông tin IPTC vào hoặc ra khỏi nhiều định dạng tài liệu
  • và nhiều hơn nữa ...

nhập mô tả hình ảnh ở đây


4

Đây là một kịch bản thay đổi kích thước hình ảnh hàng loạt đơn giản, sạch sẽ và hiệu quả. Nếu bạn đang xử lý đồ họa và các độ phân giải khác nhau rất nhiều, bạn có thể sử dụng tập lệnh này và lưu nó với các giá trị khác nhau để sử dụng không thường xuyên.

Làm như vậy, bằng cách thay đổi giá trị target_width 120 này theo nhu cầu của bạn và lưu tập lệnh. Bây giờ hãy kéo (các) hình ảnh của bạn vào tệp tập lệnh đã lưu để bắt đầu thay đổi kích thước (các) hình ảnh của bạn.


Mở Script Editor và tạo tập lệnh mới sau đây:

-- save in Script Editor as Application
-- drag files to its icon in Finder

on open some_items
  repeat with this_item in some_items
    try
      rescale_and_save(this_item)
    end try
  end repeat
end open


to rescale_and_save(this_item)
  tell application "Image Events"
    launch
    set the target_width to 120
    -- open the image file
    set this_image to open this_item

    set typ to this_image's file type

    copy dimensions of this_image to {current_width, current_height}
    if current_width is greater than current_height then
      scale this_image to size target_width
    else
      -- figure out new height
      -- y2 = (y1 * x2) / x1
      set the new_height to (current_height * target_width) / current_width
      scale this_image to size new_height
    end if

    tell application "Finder" to set new_item to ¬
    (container of this_item as string) & "scaled." & (name of this_item)
    save this_image in new_item as typ

  end tell
end rescale_and_save

ban đầu nguồn


3

Xem trước chắc chắn là một giải pháp tốt cho một số thay đổi kích thước thường xuyên. Ngoài ra còn có các tùy chọn miễn phí tốt đẹp khác, chẳng hạn như ImageMagic (tiện ích dòng lệnh), Xem trước hoặc một cái gì khác cộng với Automator, v.v.

Tuy nhiên, nếu đây là một phần công việc của bạn và bạn cần một sự linh hoạt thực sự, một ứng dụng cho mục đích đặc biệt sẽ giúp bạn tiết kiệm rất nhiều thời gian và cung cấp nhiều cơ hội hơn. Nhiều người dùng đã chọn Resize Sense kích thước hình ảnh hàng loạt của chúng tôi ( http://veprit.com/resizesense ) vì tính linh hoạt và tiện lợi vượt trội của nó.

Tuyên bố miễn trừ trách nhiệm: Tôi là nhà phát triển. Bạn tốt hơn nên đánh giá Resize Sense chính mình. Video giới thiệu trên trang web của sản phẩm sẽ cho bạn biết chính xác điều gì đặc biệt trong Resize Sense. Có phiên bản demo miễn phí.



1

Tôi thường nhập tất cả các hình ảnh vào iPhoto và sau đó xuất chúng sang các kích cỡ khác nhau. Tôi đã thực hiện nó trên lô 300 hình ảnh hoặc hơn, nhưng không bao giờ trên quy mô bạn muốn. Tuy nhiên, nó có thể là một lựa chọn.


1

Không ai nhắc đến Apple Aperture.

Mặc dù không có nghĩa là rẻ nhất, nó đi kèm với rất nhiều thứ khác mà bạn có thể thấy hữu ích. Về cơ bản, nó thay thế iPhoto và sau đó một số. Nó thực hiện 95% những gì các nhiếp ảnh gia thường sử dụng Photoshop cho. (Nó sẽ không làm văn bản rực lửa. :-)

Nhưng trừ khi bạn cần những thứ khác mà Aperture mang lại cho bạn, tôi thứ hai cả cách tiếp cận ImageMagick - nếu bạn không bị đe dọa bằng cách tải xuống, cài đặt và chạy các chương trình dòng lệnh và phương pháp Automator, mặc dù yêu cầu của @ markhunte, đều miễn phí .


-1

Tôi sử dụng rượu vang (và XQuartz ) và IrfanView . Tất nhiên bạn cũng có thể sử dụng ImageMagick từ dòng lệnh. Đối với rượu vang và hình ảnh, tôi muốn giới thiệu Homebrew .

irfanview trong rượu vang trên OS X


Tôi đã sử dụng Irfanview hơn 10 năm trên PC và yêu thích nó. Nhưng họ không có phiên bản Mac?
uwe

1
Tôi nghi ngờ họ có nghĩa là họ chạy IrFranView dưới rượu. Wine cho phép bạn chạy phần mềm Windows trên các hệ điều hành khác. Với Wine, bạn có thể cài đặt và chạy các ứng dụng này giống như trong Windows. Ảnh chụp màn hình hiển thị rõ ràng các cửa sổ loại Mac (các nút ở trên cùng) với PC Window GUI
markhunte

5
Sử dụng Wine với ứng dụng Windows thực sự là một việc quá mức cần thiết cho những thứ mà bạn có thể làm một cách tự nhiên.
Matteo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.