Làm cách nào để xoay nhiều ảnh kỹ thuật số 180 độ trong một thao tác?


20

Tôi có vài nghìn hình ảnh được chụp bằng GoPro lộn ngược.

Tôi đang tìm kiếm một cách, một ứng dụng thực sự, có thể lật tất cả, 180 độ, trong một thao tác.

Tôi đã xem xét mọi tùy chọn trong phần mềm của GoPro, nhưng không tìm thấy tùy chọn này cho ảnh tĩnh. Bạn có thể xoay trong khi tạo video, nhưng tôi muốn giữ từng hình ảnh riêng lẻ.

Tôi đang ở trên Windows.



jpegtran là con đường để đi. nó có thể xoay và / hoặc lật JPEG một cách dễ dàng và dễ dàng gọi từ tập lệnh vì đây là ứng dụng CLI.
Sange Borsch

Câu trả lời:


31

Tôi muốn giới thiệu bất kỳ ứng dụng nào trong danh sách này tại JPEGclub.org , nơi phát triển và duy trì phần mềm cho Nhóm JPEG Độc lập. Họ có một đoạn mã miễn phí được gọi là jpegtrancó thể thực hiện một số biến đổi cơ bản (như xoay) mà không cần mã hóa lại hình ảnh.

Xoay hình ảnh theo cách "ngây thơ" (hiển thị thành bitmap, định hướng lại bitmap và lưu lại) có thể dẫn đến tăng các tạo phẩm JPEG - và các tệp lớn hơn với dữ liệu ít hữu ích hơn.

Danh sách trên có chứa phần mềm được biết là "đúng cách". Các phần mềm khác cũng có thể (có thể sử dụng một cơ sở mã khác), nhưng ImageMagick không phải là một trong số đó, thật không may. Nhưng, tính đến tháng 8 năm 2016, có 87 tùy chọn khác nhau cho nhiều nền tảng điện toán khác nhau, bao gồm cả Windows.


Lưu ý từ các bình luận: OP đã sử dụng vòng lặp này dựa trên câu trả lời này:

FOR %f IN (.\Src\*.*) DO jpegtran.exe -rotate 180 %f .\Rotated\%~nxf

với kết quả tốt.


1
Lưu ý rằng xoay không mất dữ liệu chỉ hoạt động nếu mỗi kích thước của mỗi hình ảnh là bội số của 16 pixel - 8 nếu không sử dụng mẫu phụ sắc độ. Nếu không, các pixel thừa sẽ bị mất hoặc hình ảnh sẽ được đệm bằng một đường viền. Ví dụ, 1080 không phải là bội số của 16!
Gnubie

2
Tôi thứ hai khuyến nghị của jpegtran; thậm chí tốt hơn, nếu bạn quan tâm đến việc giữ cho hình thu nhỏ và Orientationthẻ của EXIF nhất quán, bạn có thể xem xét việc exiftranvắng mặt một cách không chính xác trong danh sách JPEG, nhưng không mất mát. Lệnh của tôi (trên Linux) cho điều này sẽ là exiftran -i -1 *.jpghoặc find . -name '*.jpg' -print0 | xjobs -0 -l 10 exiftran -i -1; điều này sẽ cần thích ứng cho Windows shell.
Toby Speight

@Toby Bổ sung tốt. Nhiều (hầu hết?) Các chương trình được liệt kê cũng sẽ bảo tồn và cập nhật siêu dữ liệu, đó là một lý do tôi khuyên dùng một trong số chúng thay vì chỉ jpegtrantrực tiếp.
mattdm

Cảm ơn bạn! Tôi đã sử dụng jpegtran trên Windows. Xoay 180 là chính xác những gì tôi cần. Tôi đặt lệnh bó chính xác trong câu hỏi cho ref trong tương lai.
Johns-305

@ Johns-305 Vui mừng tôi có thể giúp đỡ. Về phần chỉnh sửa câu hỏi, hãy xem meta.photo.stackexchange.com/questions/1601/iêu
mattdm

9

Bạn có thể sử dụng ImageMagick với rotatetùy chọn :

convert image.jpg -rotate 180 result.jpg

Bạn sẽ có thể áp dụng lệnh này cho nhiều tệp, tùy thuộc vào môi trường của bạn.


10
Lưu ý rằng điều này sẽ mã hóa lại jpeg, làm giảm chất lượng.
mattdm

8

Trên Windows, bạn có thể làm điều đó mà không cần bất kỳ phần mềm bổ sung nào trong các hoạt động TWO. Chọn các tệp bạn muốn xoay trong tệp Explorer, nhấp chuột phải và thực hiện "xoay phải" (hoặc trái) hai lần. Nó sẽ được thực hiện một cách dễ dàng nếu hình ảnh cho phép (ví dụ: kích thước không "buồn cười").


Kích thước "buồn cười" là gì? Tại sao kích thước của ảnh sẽ ngăn ngừa xoay không mất?
scottbb

2
Sau khi đọc Có phải Windows Windows Photo Viewer quay không mất dữ liệu? , Giờ thì tôi đã hiểu. Cả hai kích thước cần phải là bội số của 8 để có thể xoay một cách dễ dàng.
scottbb

1
Đây là câu trả lời tốt nhất. Tôi tham gia trang web chỉ để nâng cấp điều này.
fi12

5

Bạn có thể sử dụng xnview trên windows, trong đó có một số xử lý chế độ hàng loạt và ngoài ra, để xoay hình ảnh đơn giản, có tùy chọn xoay hình ảnh dựa trên dữ liệu exif.

Chọn tất cả các hình ảnh (ngay cả những hình được định hướng chính xác! Nó sẽ biết chúng đã được định hướng tốt), "xoay dựa trên exif" và nó sẽ làm điều đó (mà không tính toán lại jpg, do đó không làm giảm chất lượng).

Giống như họ nói trên http://newsgroup.xnview.com/viewtopic.php?t=1420 :

Để thực hiện việc này, bạn chọn tất cả các hình ảnh của mình và chọn "Công cụ> Định dạng không mất dữ liệu JPG" (hoặc danh sách thả xuống của biểu tượng 'Biến đổi không mất dữ liệu' trên thanh công cụ). Trong hộp thoại kiểm tra nút có "EXIF" trên đó và sau đó nhấn "Đi". XnView sẽ xoay vĩnh viễn các hình ảnh dựa trên cờ định hướng EXIF.`

Và cho lần tiếp theo, nếu bạn có một gopro đủ gần đây, bạn cũng có thể muốn kiểm tra tính năng của nó: https://gopro.com/support/articles/what-is-auto-image-rotation


GoPro có thực sự lưu dữ liệu định hướng EXIF ​​chính xác không? Hero4 / Phiên có cảm biến định hướng, nhưng tôi không nghĩ bất kỳ mẫu nào cũ hơn.
vclaw

4

Giả sử ảnh của bạn ở định dạng JPEG, tôi hoàn toàn là một phần của JPEGCrops , một công cụ đơn giản và miễn phí để xử lý hàng loạt hình ảnh.

Bạn có thể cắt theo tỷ lệ khung hình cụ thể và / hoặc xoay.


4

Tôi có thể đề xuất chế độ hàng loạt của Irfanview, chỉ chạy trên Windows. Irfanview cũng tốt cho các chỉnh sửa đơn giản, nhưng nó không phải là GIMP.

Sau khi cài đặt, chọn "Chuyển đổi / Đổi tên tệp". Từ đó có một chút khó khăn, bạn cần chọn tất cả các tệp, bạn cần chỉ định thư mục đích và bạn cần nhấp vào nút Nâng cao để xem Tùy chọn nâng cao. Nó có thể xoay +/- 90 °, nhưng để thực hiện 180 °, bạn sẽ cần chọn xoay tốt ở phía bên phải và nhập vào 180 °. Lưu ý rằng bạn cũng có thể thay đổi kích thước chúng, thay đổi chất lượng JPEG và đổi tên chúng.

Bạn cũng có thể làm điều đó khá nhanh bằng cách ở trong GUI và sử dụng bàn phím. Mở bất kỳ tập tin trong thư mục của hình ảnh. Nhấn 'R' hai lần để xoay hai lần. Sau đó nhấn Ctrl-S để lưu. Hai cửa sổ sẽ hiển thị, một hộp thoại tệp điển hình của bạn và cửa sổ thứ hai để nén JPEG (nếu định dạng mặc định của GoPro là JPEG). Tôi chắc chắn rằng Yếu tố chất lượng ít nhất là 90%. Sau đó lưu tệp; bạn có thể nhấn phím Tab hoặc Alt-S để lưu. Hộp thoại loại "Bạn có chắc chắn" có thể xuất hiện (có thể tắt nó đi). Sau đó, chỉ cần nhấn thanh Space để chuyển sang tệp tiếp theo trong thư mục. Nếu bạn có hơn 50 tệp, lô có thể nhanh hơn. Mười tập tin, tôi chỉ làm như trên.

Điều quan trọng đối với Irfanview là nó giống như Blender, nó không hỏi bạn có muốn Lưu nếu bạn sửa đổi hình ảnh.


3
Điều đó sẽ thực hiện một vòng quay mất mát - vì nó xoay chúng, sau đó lưu lại JPEG, do đó bạn đang mất chất lượng. Trong IrfanView, tốt hơn là sử dụng tính năng "Xoay không mất JPEG" (Shift + J). Lưu ý bạn có thể sử dụng chế độ xem hình thu nhỏ để chọn tất cả các hình ảnh của mình, sau đó xoay tất cả chúng cùng một lúc.
vclaw

1
@RocketFeathers - Irfanview là công cụ đơn giản nhất để thực hiện việc này một cách dễ dàng trong môi trường Windows. Nhưng như vclaw nói, tốt hơn hết là sử dụng "Xoay vòng không mất JPEG" để thực hiện. Chỉnh sửa câu trả lời của bạn để phản ánh điều đó và tôi sẽ nâng cao nó.
Michael C

"nó không hỏi bạn nếu bạn muốn Lưu nếu bạn sửa đổi hình ảnh." - Điều này có thể được thay đổi trong Tùy chọn> Thuộc tính / Cài đặt ...> Yêu cầu lưu thay đổi khi thoát chương trình.
MrWhite

3

FSViewer là một chương trình hữu ích có thể làm điều đó.

Mở thư mục chứa hình ảnh, chọn tất cả những gì bạn muốn xoay, nhấn F4 và chuyển đến tab 'Batch Convert' trong cửa sổ mở ra. Nhấp vào 'Tùy chọn nâng cao' ở dưới cùng bên phải, chuyển đến tab 'Xoay'. Kiểm tra 'Lật / Xoay', sau đó 'Xoay', sau đó chọn '180' bên dưới và nhấn OK. Đặt nơi bạn muốn lưu chúng và nhấn 'Chuyển đổi'.

Chỉnh sửa: một cách nhanh hơn và không đau hơn là chỉ cần chọn tất cả các hình ảnh bạn muốn và nhấn hai lần 'Xoay phải và lưu' trên thanh công cụ. Không nên phá hủy đối với JPEG.


3

Với các cửa sổ, bạn có thể đánh dấu tất cả nếu chúng trong trình thám hiểm, sau đó nhấp chuột phải và chọn xoay theo chiều kim đồng hồ. Làm điều này hai lần và hình ảnh của bạn bây giờ được định hướng đúng.


2

Bạn có biết GIMP? Có một plugin có tên BIMP cho phép bạn thực hiện thao tác tương tự trên một bộ ảnh, sử dụng giao diện đồ họa. Bạn có thể dễ dàng cài đặt nó bằng trình cài đặt chính thức cho Windows.

Bạn cũng có thể lưu lại chúng ở định dạng khác hoặc với tỷ lệ nén khác nhau để tránh mất chất lượng lớn.

Mẹo chuyên nghiệp: Tôi đã thực hiện: D


2
Tôi nghĩ bạn có ý muốn nói "Tuyên bố từ chối" chứ không phải là "Pro tip": p Nhưng phần mềm tuyệt vời! Tôi đã cần các hoạt động hàng loạt trên GIMP một lần trong một thời gian và sử dụng để viết mã MATLAB thay thế. Tôi sẽ ghi nhớ công cụ của bạn cho lần tới :)
Tasos Papastylianou

1

ImageMagick là một tập hợp các công cụ dòng lệnh hoạt động trên hình ảnh và bạn có thể kết hợp các công cụ đó với các lệnh shell Unix cơ bản để áp dụng cùng một lệnh cho một tập hợp các tệp. Có rất nhiều ví dụ hay tại Làm thế nào để xoay tất cả các hình ảnh trong một thư mục bằng hình ảnh? .


Ừm ... và nếu OP có trên Windows và không sử dụng Cygwin ...? :) Có thể muốn thêm "và các tệp bó Windows" hoặc mở rộng câu trả lời để cho biết ImageMagick không nhất thiết phải là giải pháp chỉ dành cho UNIX, chỉ là một dòng lệnh.
inkista

1
Sẽ thử nó chiều nay. Có nhị phân Windows có sẵn.
Johns-305

1

Cá nhân tôi sử dụng Adobe Lightroom. Hình ảnh có thể dễ dàng được xoay và chỉnh sửa hàng loạt, chỉ cần chọn hình ảnh bạn muốn xoay, nhấp chuột phải và chọn tùy chọn để chuyển đổi hình ảnh bằng cách xoay 180 độ.

Nếu bạn luôn làm việc với hàng ngàn hình ảnh yêu cầu xử lý hàng loạt, đặc biệt nếu nó phức tạp hơn xoay - như điều chỉnh màu sắc hoặc phơi sáng, thì có lẽ đây là một khoản đầu tư lớn.

Tôi không thích rằng Lightroom là nguồn đóng, tốn tiền và sẽ không chạy trên các hệ thống Linux. Tuy nhiên, tôi đã thấy rằng các tính năng vượt xa những gì có sẵn miễn phí.


0

Bạn có thể sử dụng LiveBlox và xây dựng một đường ống dẫn để cho phép xoay hình ảnh. Phiên bản demo trên http://liveblox.org có khối xoay nên sẽ cho phép thực hiện việc này.

Có một hướng dẫn https://www.youtube.com/watch?v=kY0e5msQuiU cho biết cách tạo bộ chỉnh lại hình ảnh hàng loạt, bạn chỉ cần thay đổi kích thước cố định thay đổi kích thước bằng công cụ quay để thực hiện xoay.

Điều này sẽ cho phép bạn làm việc trên mỗi hình ảnh với một cú nhấp chuột.


-1

$ cho F trong * jpg; thực hiện chuyển đổi -rotate 180 $ F "$ (tên cơ sở $ F .jpg) _R.jpg" && echo "Xong $ F"; làm xong

Giải thích: * cho F trong phần .jpg của lệnh gán tên tệp cho một biến, có thể được gọi lại sau để đổi tên tệp thành [tên tệp gốc} _R.jpg

các "làm convert Xoay 180" cho máy tính mà bạn muốn hình ảnh của bạn chuyển đổi, bởi con người xoay 180 độ.

Phần "$ (tên cơ sở $ F .jpg) _R.jpg" của lệnh cho biết tên tệp mới.

Các && cho máy tính hơn là một lệnh bổ sung đang đến, nhưng mà máy tính chỉ được phép thực hiện lệnh nếu trước đó (xoay và đổi tên) lệnh đã thành công.

echo "Xong $ F" cho máy tính báo cho bạn ("echo" cho bạn) rằng mỗi tệp đã được xoay thành công. Phần phụ $ F của lệnh đang gọi lại biến tên tệp ban đầu, do đó, đầu ra có thể sẽ nói điều gì đó với tác động của "Done file1.jpg"

Và, người ta cần sh / csh / bash để tác phẩm này hoạt động.


5
Điều đó có thể làm việc, nhưng không có lời giải thích, đó không phải là một câu trả lời tốt. Hãy giải thích trong bối cảnh giải pháp này nếu áp dụng.
null

1
Đây có phải là bản mở rộng của câu trả lời null bằng ImageMagick không?
MikeW

Điều này không hoạt động như mong đợi nếu đã có *_R.jpgtệp trong thư mục.
pts

Cảm ơn bạn đã làm rõ, tôi không chắc việc cài đặt shell UNIX trên windows có phải là một cách tiếp cận thực tế hay không, nhưng nó là một cách tiếp cận không hơn không kém.
null

pts, bạn có thể thay đổi _R.jpg thành bất cứ điều gì bạn muốn (như "_rotated.jpg"). Bạn đúng rằng điều này sẽ có vấn đề nếu bạn đã có tệp _R.jpg trong thư mục.
Tiến sĩ SB
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.