Tôi có thể xoay ảnh bị nén một cách mất mát mà tôi xem trong Windows Photo Viewer mà không lo mất thêm thông tin để nén không?
Tôi có thể xoay ảnh bị nén một cách mất mát mà tôi xem trong Windows Photo Viewer mà không lo mất thêm thông tin để nén không?
Câu trả lời:
Nếu kích thước của hình ảnh là bội số của 8 (hoặc 16 nếu sử dụng mẫu phụ sắc độ) thì các phép quay không bị mất. Nếu không, không thể xoay hình ảnh mà không tính toán lại các khối tức là giải nén lại hình ảnh, điều này bị mất.
Lý do cho điều này là hình ảnh jpeg được chia thành một loạt các khối 8 x 8 hoặc 16x16 được nén riêng lẻ. Các khối không hoàn chỉnh chỉ được phép ở cạnh phải và cạnh dưới. Do đó, hình ảnh của bạn không phải là bội số chính xác của 8/16, nó sẽ chứa các khối không hoàn chỉnh, sẽ kết thúc ở cạnh sai sau khi xoay.
Tôi đã xác minh xác nhận ở trên bằng phiên bản Windows Photo Viewer đi kèm với Windows 7. Tôi đã sử dụng hai hình ảnh nhiễu màu. Một hình ảnh là 256x256 tức là cả hai kích thước là bội số của 8. Hình ảnh kia giống nhau nhưng được cắt thành 253x253 tức là không có kích thước nào là bội số của 8. Dưới đây là các hình ảnh:
Sau đó, tôi đã thực hiện bốn lần quay ngược chiều kim đồng hồ, đóng trình xem ảnh sau mỗi lần xoay để đảm bảo hình ảnh được lưu ở trạng thái xoay.
Không cần thực hiện phép trừ để thấy sự khác biệt với hình ảnh 253 pixel, nó tối hơn đáng kể và lầy hơn!
Một khác biệt trên hình ảnh khác trông như thế này:
tức là các hình ảnh giống hệt nhau, các góc quay bị mất.