Làm cách nào tôi có thể chia tỷ lệ tất cả các hình ảnh trong một thư mục có cùng chiều rộng?


97

Tôi muốn chia tỷ lệ tất cả các hình ảnh trong một thư mục nhất định theo cùng chiều rộng (nhưng độ cao được chia tỷ lệ phù hợp khác nhau). Làm thế nào tôi có thể làm điều này bằng cách sử dụng một công cụ dòng lệnh hoặc dựa trên GUI?

Đối với điểm thưởng, có thể hạn chế hình ảnh nào được chia tỷ lệ dựa trên chiều rộng ban đầu của chúng (nghĩa là chỉ hình ảnh tỷ lệ có chiều rộng> x và / hoặc chiều rộng <y)?


avconv có thể làm điều này thông qua CLI - Xem: libav.org/avconv.html#scale-1
Elder Geek

Câu trả lời:


152

Điều này rất dễ thực hiện với fantemagick . Bạn sẽ có thể cài đặt nó trong Trung tâm phần mềm. Tôi sẽ đề nghị nó để xử lý hàng loạt hình ảnh.

Việc thay đổi kích thước hàng loạt rất đơn giản (tôi đã thử nghiệm nó với Ubuntu 11.10). Sử dụng lệnh sau để thay đổi kích thước mỗi tệp .jpg thành chiều rộng 200 pixel, giữ nguyên tỷ lệ khung hình:

$ convert '*.jpg[200x]' resized%03d.png

bạn có thể duy trì tên tệp bằng cách sử dụng tùy chọn -set. Ví dụ:

convert "images/*.jpg[250x]" -set filename:base "%[base]" "images/new_folder/%[filename:base].jpg"

Nếu bạn có nhiều tệp bạn nên sử dụng với find

find /folder -iname '*.JPG' -exec convert \{} -verbose -set filename:base "%[base]" -resize 1920x1080\> "/folder/images/%[filename:base].JPG" \;

Điều này chỉ làm trầy xước bề mặt của sức mạnh của hình ảnh. Thay đổi kích thước có thể được điều chỉnh vô tận . Để thay đổi kích thước nâng cao hơn, bạn phải sử dụng -resizetùy chọn.

Bạn có thể giới hạn thay đổi kích thước để thu nhỏ :

$ convert '*.jpg[300x>]' thumb-300-%03d.png

hoặc mở rộng :

$ convert '*.jpg[300x<]' thumb-300-%03d.png

Hãy nhìn vào tài liệu hình học để thấy nhiều lựa chọn hơn.


1
Tại sao jpg để png?
JohnyTex

3
Các phần mở rộng .jpg và .png chỉ là một ví dụ để chứng minh việc sử dụng các định dạng khác nhau.
bandi

Để biết thêm thông tin về tùy chọn -set: fantemagick.org/script/command-line-options.php ; về cơ bản, -set <property-name> <value>thiết lập một tài sản; %<one-character>%[<one-or-more-characters>]được mở rộng bởi Imagemagick đến giá trị của chúng; các thuộc tính được sử dụng để lập trình tên tệp đầu ra cần bắt đầu bằng lập trình filename:, vì vậy chúng ta cần sao chép thuộc basetính, chứa đường dẫn hình ảnh, vào thuộc filename:<something>tính.
marcotama

1
Cảm ơn đã chia sẻ thủ thuật này, tôi không biết!
marcotama

2
thuộc tính hình ảnh không xác định "% [cơ sở]"
Đăng vào

32

Đối với GUI, Phatch "một cú nhấp chuột đáng giá ngàn ảnh" là cách tốt nhất cho công việc nhanh như vậy. Nó đã có trong kho Ubuntu.

sudo apt-get install phatch
  1. Thêm quy mô và lưu mục
  2. Đặt tùy chọn tỷ lệ / thay đổi kích thước
  3. Đặt tùy chọn lưu / đầu ra
  4. Chạy
  5. Đặt thư mục đầu vào
  6. Nhấn vào để thực thi

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


2
Đối với một upvote, một ví dụ làm thế nào để thực sự hoàn thành nhiệm vụ trong câu hỏi sẽ rất hay :) Nhưng cảm ơn vì tiền boa, công cụ tuyệt vời!
jaywink

2
Điều này không hoạt động trên máy của tôi (Ubuntu Mate 16.04). Ứng dụng đã bị kẹt trên màn hình khởi động
Gunith D

1
@GunithDevasurendra, hãy thử nó từ dòng lệnh để kiểm tra lỗi. nếu bạn không thể giải quyết nó, xin vui lòng viết một câu hỏi khác và bao gồm đầu ra đó.
user.dz

1
Công cụ tuyệt vời, tôi đã sử dụng nó trong nhiều năm. Thật không may, nó không rõ ràng và không hoạt động trong các phiên bản Ubuntu hiện tại. Hy vọng ai đó có thể fork mã để sửa nó.
Diego V

Trên Fedora, nó không giống như trên và không có chức năng như vậy
Vlad

29

Thử đi:

sudo apt-get install gimp-plugin-registry

Sau đó, mở Gimp và mở plugin Batch được tìm thấy trong Filters > Batch > Batch Process.

Chọn hình ảnh của bạn trong Inputtab và xác định thao tác Thay đổi kích thước trong Resizetab được đặt tên đáng ngạc nhiên .

Thêm thông tin có thể được tìm thấy ở đây .


21

Hãy thử mogrifylệnh từ các công cụ ImageMagick.

  • đưa ra một đường dẫn để tách đầu ra khỏi bản gốc
  • đưa ra chiều rộng hoặc chiều cao hình thu nhỏ mong muốn, bên dưới một ví dụ về chiều rộng
  • Bằng cách này, bạn giữ tên tệp gốc :-)

Thí dụ:

$ mogrify -path small/ -auto-orient -thumbnail 300x *.jpg

1
Đây là câu trả lời tốt nhất theo ý kiến ​​của tôi!
Tom

2
$ mogrify -path small / -resize 300x * .jpg
Iurie Malai

+1 và bạn có thể thay đổi kích thước cạnh dài nhất cho dù đó là hình ảnh xoay theo chiều dọc hay ngang: stackoverflow.com/a/5694903/227926
trị liệu


8

Đã trả lời và chấp nhận (và tôi sử dụng ImageMagick) nhưng để hoàn thiện ... Tôi có một ông chủ phi kỹ thuật muốn có một trình xem đơn giản với một số công cụ cơ bản và nó phải là GUI. Tôi quyết định gThumb cho anh ta.

Trong hình thu nhỏ, bạn ...

  • Chọn bất kỳ hình ảnh bạn muốn thay đổi kích thước
  • Bắt đầu chức năng thay đổi kích thước (nhấp vào biểu tượng Cờ lê> Thay đổi kích thước hình ảnh ..)
  • Đặt kích thước mới dựa trên pixel hoặc tỷ lệ phần trăm
  • Chọn một thư mục đầu ra, và bạn đi.

Để thay đổi kích thước, đây là một giải pháp thay thế phù hợp cho Phatch cho đến khi nó được sửa trong 16.04.
Hastig Zusammenstellen

3

Để thay đổi kích thước hình ảnh hàng loạt, tôi đã xem xét nhiều gói và cuối cùng tìm thấy một gói có giao diện có thể sử dụng - converseen . Khi bạn phát hiện ra rằng các cài đặt quan trọng có phần bị ẩn trên khung bên trái có thể cuộn, tất cả đều ổn.
Không chắc chắn nếu điều này đáp ứng tất cả các trường hợp sử dụng OP, nhưng bạn có thể không phải nhìn vào các giao diện người dùng kỳ quặc của hình ảnh hoặc phatch.
Điều kỳ lạ là các gói quản lý ảnh như digikam, f-spot, fotoxx hoặc shotwell dường như không nhận ra nhu cầu sao chép / thay đổi kích thước các lô hình ảnh trước khi tải lên các dịch vụ trực tuyến như photobucket hoặc (gag) flickr. Các dịch vụ này muốn chúng tôi làm mọi thứ theo cách của họ chỉ vì vậy tôi không tin tưởng họ để sao lưu bản gốc.

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.