Thu nhỏ và xoay hình ảnh mà không phụ thuộc vào dữ liệu EXIF?


10

Có một thứ như trình chỉnh sửa hình ảnh đơn giản cho Linux, cho phép thu nhỏ và xoay hình ảnh mà không cần sử dụng dữ liệu EXIF ​​để chia tỷ lệ và xoay?

Cho đến nay tôi đã thử EOG , ShotwellGIMP và khi tôi xoay hình ảnh, họ lưu trữ nó trong tiêu đề EXIF. Điều này tôi không muốn.

Ngay cả khi GIMP có thể làm điều đó, nó vẫn tốn quá nhiều thời gian vì nó đòi hỏi hàng tấn nhấp chuột khi xử lý các tệp JPEG.


2
Vì vậy, về cơ bản, nếu bạn xoay một hình ảnh 90 độ sang trái, bạn muốn chính hình ảnh đó được xoay trong dữ liệu 90 độ sang trái? Không thông qua thông tin được lưu trữ trong dữ liệu EXIF, đúng không?
JakeGould

Chính xác. Tôi cần điều đó bởi vì các tệp Github README.md không hiểu EXIF.
Jasmine Lognnes

Chơi lô tô! Tôi đã đăng một câu trả lời đầy đủ hơn, nhưng tôi tin rằng vấn đề bạn đang gặp phải là sự khác biệt cơ bản giữa việc lưu hình ảnh trong một chương trình chỉnh sửa hình ảnh hiện đại so với xuất hình ảnh. Câu trả lời của tôi đi sâu vào chi tiết hơn, nhưng tôi tin rằng nếu bạn xuất JPEG qua GIMP, bạn sẽ nhận được kết quả chính xác mà bạn muốn mà không phải xử lý dữ liệu EXIF ​​được ưu tiên cho các biến đổi như chia tỷ lệ và xoay.
JakeGould 31/08/2015

Sử dụng xuất GIMP trên một jpeg tước exif đã thêm một cái mới.
Jasmine Lognnes

Có, nó có thể đã thêm dữ liệu EXIF ​​mới, nhưng dữ liệu hình ảnh thực tế có thay đổi để phù hợp với định hướng như câu hỏi của bạn không?
JakeGould

Câu trả lời:


15

Có một thứ như trình chỉnh sửa hình ảnh đơn giản cho Linux, cho phép thu nhỏ và xoay hình ảnh mà không cần sử dụng dữ liệu EXIF ​​để chia tỷ lệ và xoay?

Tiết kiệm xuất khẩu Versus

Tôi biết bạn nói rằng bạn không thực sự muốn làm điều này trong GIMP, nhưng theo kinh nghiệm của tôi, vấn đề là bạn đang chạy vào phần mềm có lợi cho dữ liệu định hướng EXIF ​​trên các pixel thực sự biến đổi sự khác biệt giữa việc xuất hình ảnh và lưu một hình ảnh.

Trước đây, 100% tất cả các trình chỉnh sửa hình ảnh trên thế giới sẽ thực sự biến đổi / sửa đổi pixel khi xử lý các biến đổi định hướng đơn giản. Gần đây chỉ có các chương trình chỉnh sửa hình ảnh mới sử dụng dữ liệu EXIF ​​để lưu trữ một số dữ liệu chuyển đổi vật lý.

Tại sao? Dễ dàng. Vì định dạng JPEG là định dạng mất dữ liệu ngay cả khi chất lượng được đặt ở mức 100% cho phép xử lý JPEG đối với những điều đơn giản như xoay hình ảnh sẽ làm chậm dữ liệu. Ngược lại bằng cách lưu trữ dữ liệu đó dưới dạng thông tin EXIF, hình ảnh JPEG thô không bị ảnh hưởng nhưng dữ liệu chuyển đổi được truyền qua để bạn có thể thấy hình ảnh được xoay mà không làm giảm hình ảnh trong quá trình.

Đây là nơi mà khái niệm xuất khẩu đi vào chơi. Nhiều chương trình chỉnh sửa hình ảnh như GIMP cho phép một người xuất một hình ảnh về cơ bản có nghĩa là tự sửa đổi dữ liệu hình ảnh và tối ưu hóa nó để sử dụng trong phần mềm chỉnh sửa hình ảnh.

Vì vậy, trong khi có thể có các công cụ phần mềm khác sửa đổi rõ ràng dữ liệu hình ảnh cho các tác vụ như xoay vòng ngoài kia, thì có thể quá mức cần thiết để cài đặt và sử dụng chúng. Thay vào đó, tôi khuyên bạn chỉ nên thử nghiệm chức năng xuất trong bất kỳ phần mềm chỉnh sửa ảnh nào bạn đang sử dụng; cho dù đó là GIMP, Photoshop hay cái gì khác.

Xử lý hàng loạt

Tất cả những gì đã nói, bạn có đề cập đến việc GIMP có thể quá tốn thời gian cho nhu cầu của bạn. Không rõ quy trình làm việc chính xác của bạn là gì, nhưng nếu bạn có một thư mục / thư mục chứa đầy JPEG bạn có thể cần xử lý, tôi khuyên bạn nên điều tra các công cụ được đề cập trong câu trả lời khác này :

  • exiftran : Một công cụ được sử dụng để chuyển đổi hình ảnh JPEG của máy ảnh kỹ thuật số có thể làm như sau:

Nó có thể thực hiện các phép quay không mất dữ liệu như jpegtran, nhưng không giống như jpegtran, nó quan tâm đến dữ liệu EXIF: Nó có thể xoay hình ảnh tự động bằng cách kiểm tra thẻ định hướng exif, nó cập nhật thông tin exif nếu cần (kích thước hình ảnh, định hướng), nó cũng xoay hình thu nhỏ exif . Nó có thể xử lý nhiều hình ảnh cùng một lúc.

  • JHead : Cụ thể sử dụngjheadvới-autorottùy chọn được mô tả là:

Sử dụng thẻ 'Định hướng' của tiêu đề Exif, xoay hình ảnh sao cho thẳng đứng. Chương trình 'jpegtran' được sử dụng để thực hiện xoay vòng. Chương trình này có mặt trong hầu hết các bản phân phối Linux. Đối với các cửa sổ, bạn cần phải có một bản sao của nó. Sau khi xoay, thẻ định hướng của tiêu đề Exif được đặt thành '1' (hướng thông thường). Hình thu nhỏ Exif cũng được xoay. Các trường khác của tiêu đề Exif, bao gồm các kích thước không được chạm tới, nhưng chiều cao / chiều rộng JPEG được điều chỉnh.

Tính năng này đặc biệt hữu ích với các máy ảnh kỹ thuật số mới hơn, tự động đặt trường định hướng trong tiêu đề Exif bằng cảm biến định hướng tích hợp trong máy ảnh.

Đây là một công cụ khác được đề cập trong chủ đề khác này :

  • NConvert : NConvert là trình chuyển đổi hình ảnh dòng lệnh đa định dạng cho Win32, Linux, DOS, OS / 2 và các nền tảng khác. Chi tiết bắt đầu nhanh dường như ở đây . Và có vẻ như nếu bạn sử dụngnconvertvới-jpegtranstùy chọn đó chính xác là những gì bạn đang tìm kiếm. Nhưng tôi tự hỏi nếu điều đó chỉ sử dụng cùng chức năng thư viện / cốt lõijpegtrannhư câu trả lời khác cho câu hỏi này đề nghị?

Cuối cùng, có lẽ sử dụng công cụ ImageMagick convert với -auto-orienttùy chọn sẽ phù hợp với bạn?

-auto-direction

điều chỉnh một hình ảnh sao cho hướng của nó phù hợp để xem (tức là hướng trên cùng bên trái).

Toán tử này đọc và đặt lại cài đặt cấu hình hình ảnh EXIF ​​'Định hướng' và sau đó thực hiện xoay 90 độ thích hợp trên hình ảnh để định hướng hình ảnh, để xem chính xác.

Cài đặt cấu hình EXIF ​​này thường được đặt bằng cảm biến trọng lực trong máy ảnh kỹ thuật số, tuy nhiên ảnh chụp trực tiếp xuống hoặc hướng lên có thể không có giá trị phù hợp. Ngoài ra, các hình ảnh đã được định hướng 'đã sửa' mà không đặt lại cài đặt này, có thể lại bị 'sửa' dẫn đến kết quả không chính xác. Nếu cấu hình EXIF ​​bị xóa trước đó, toán tử -auto-direction sẽ không làm gì cả.


Sẽ thật hoàn hảo nếu một công cụ dòng lệnh có thể thực hiện xoay pixel thực tế dựa trên EXIF ​​và sau đó xóa thông tin EXIF ​​sau đó. Điều đó có thể không?
Jasmine Lognnes

1
@JasmineLognnes tôi đã không thực sự sử dụng bất kỳ những công cụ này bản thân mình-nhưng câu hỏi này là một tài liệu tham khảo tốt cho các công cụ tôi nên điều tra-nhưng có vẻ như với tôi rằng exiftranjpegtrancó thể là những gì bạn đang tìm kiếm. Tôi sẽ thử nghiệm các tùy chọn cả hai công cụ đó và xem điều gì sẽ xảy ra. Tốt nhất tôi có thể làm. Chúc may mắn!
JakeGould

1
Bạn có thể thấy thật hài hước khi hệ thống chọn câu trả lời này làm bài kiểm tra kiểm toán trong hàng đợi đánh giá LQ Post. Tôi đã bỏ phiếu để không xóa nó, BTW, và rõ ràng, đó là câu trả lời đúng. :-)
fixer1234

@ fixer1234 Vâng, tôi đã thấy điều đó khi kiểm tra các bài viết chất lượng thấp trước đó. Vui nhộn! Nó có thể đã được kích hoạt bởi số lượng liên kết khác nhau để phân biệt các gói tôi khuyến nghị. Nhưng này! Tôi rất vui khi có một số cơ chế kiểm soát tự động mà ít nhất có một thành phần lọc của con người.
JakeGould

2

Tôi thường sử dụng jpegtranđể xoay ảnh:

jpegtran -copy all -rotate 90 -outfile newimg.jpg oldimg.jpg

90 xoay phải, sử dụng 270 cho trái (và 180 cho lật).


2

Khi xuất trong GIMP, bạn có thể nhấp vào Nâng cao trong cửa sổ bật lên ngay trước khi lưu nơi bạn có thể tắt EXIF ​​và XMP.

Các thuật toán tổng thể để kịch bản nó

  • cho mỗi tập tin
  • lưu giá trị từ exiftool * | grep Orientation
  • loại bỏ exif với exiftran -ai *
  • sử dụng convert -rotatevới giá trị từ bước 2

Điều này thật đúng với gì mà tôi đã tìm kiếm. Một cách phát hiện nếu hình ảnh được xoay và sau đó là một cách để xoay nó dựa trên đó. Cảm ơn!
xarlymg89

0

Bạn có thể sử dụng Exiftool để xóa dữ liệu EXIF ​​khỏi hình ảnh JPEG.


Vâng, thật tuyệt vời cho điều đó, nhưng khi tôi chỉnh sửa hình ảnh sau đó, thì các tiêu đề EXIF ​​mới được thêm vào.
Jasmine Lognnes

EXIFTool có thể xóa dữ liệu, nhưng nó sẽ không thay đổi, xoay hoặc chia tỷ lệ và hình ảnh. Nó sẽ xóa sạch dữ liệu đó và JPEG sẽ hiển thị ở bất kỳ định dạng thô nào mà nó tồn tại. Điều này hữu ích trong một số trường hợp, nhưng không phải trong trường hợp như thế này.
JakeGould
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.