Tiếng Việt

Hình ảnh & hình ảnh · Trình chỉnh sửa hình ảnh & bản vẽ của trình duyệt

Cắt xén JPEG không mất dữ liệu so với cắt xén trình duyệt: tại sao việc mã hóa lại lại xảy ra

· Lý lịch

image-editing vải vẽ browser-processing

Minh họa raster trừu tượng cho việc cắt xén jpeg không mất dữ liệu và cắt xén trình duyệt: tại sao việc mã hóa lại lại xảy ra
Hình minh họa vector ToolAcre gốc

Các công cụ dòng lệnh có thể cắt JPEG mà không cần giải mã nó mà chỉ trên lưới 8- hoặc 16-pixel; thay vào đó, trình soạn thảo trình duyệt giải mã và mã hóa lại. Bài đăng này giải thích lý do tồn tại cả hai phương pháp và cách hạn chế giảm chất lượng khi bạn phải mã hóa lại.

Hai phần cắt, hai kích thước tệp - cùng một hình chữ nhật được cắt theo hai cách sẽ tạo ra các tệp khác nhau và lý do nằm ở chính định dạng JPEG

Hai phần cắt JPEG có thể có cùng kích thước và vẫn tạo ra các chuỗi byte khác nhau. Hình chữ nhật có thể giống hệt nhau trong khi bộ mã hóa ghi các bảng, tiêu đề, giá trị lượng tử hóa hoặc siêu dữ liệu khác nhau. Sự khác biệt chính là con đường được thực hiện. Tiện ích JPEG không mất dữ liệu đôi khi có thể sắp xếp lại các khối nén, trong khi trình chỉnh sửa này giải mã hình ảnh, sao chép pixel vào các lớp raster của nó và yêu cầu canvas.toBlob mã hóa một tệp mới.

Kiểm tra sự khác biệt đó bằng một bản sao thay vì bản quét không thể thay thế. Cắt hình chữ nhật, xuất nó và so sánh kích thước, các cạnh hiển thị và kích thước blob đo được. Chất lượng JPEG được chuyển tới bộ mã hóa trình duyệt; PNG không nhận được đối số chất lượng bị giảm và WebP tuân theo codec trình duyệt riêng của nó. Bản tải xuống là một mã hóa mới, không phải luồng nén ban đầu đã bị loại bỏ một góc.

Cách tổ chức JPEG — khối 8×8, đơn vị được mã hóa tối thiểu và lý do lưới lại quan trọng đối với việc cắt

JPEG lưu trữ thông tin hình ảnh đã chuyển đổi trong các khối 8-by-8, với các đơn vị mã hóa lớn hơn được định hình bằng cách lấy mẫu và tổ chức tệp. Lưới đó quan trọng đối với các hoạt động không mất dữ liệu chuyên dụng vì vết cắt chỉ có thể sạch khi các cạnh của nó thẳng hàng với cấu trúc mà tệp đã chứa. Đây là bối cảnh định dạng hữu ích chứ không phải khẳng định rằng trình chỉnh sửa trình duyệt hiển thị tọa độ khối hoặc hiểu các đơn vị được mã hóa tối thiểu.

Công cụ cắt của trình chỉnh sửa xem xét một hình chữ nhật nguồn trên các pixel đã được giải mã. Do đó, nó có thể biểu thị một lựa chọn tùy ý, bao gồm một lựa chọn nằm giữa JPEG ranh giới khối, nhưng nguồn không hiển thị các điều khiển lấy mẫu con, căn chỉnh khối hoặc bảo toàn cấp độ byte. Kết quả là sự tự do hình học thuận tiện nhưng phải trả giá bằng việc quay trở lại bộ mã hóa sau khi các pixel đã được vẽ.

Cấu trúc khối JPEG là bối cảnh nền; trình soạn thảo này không phân tích cú pháp hoặc cắt các khối nén

Một công cụ như jpegtran đại diện cho giao dịch khác: nó có thể hoạt động trên cấu trúc JPEG mà không cần chuyển đổi mọi khối thành pixel thông thường trước tiên. Khi cạnh cắt vừa với lưới khối liên quan, công cụ có thể loại bỏ các vùng hoàn chỉnh trong khi vẫn giữ nguyên dữ liệu nén còn lại hoặc tránh mã hóa lại bị mất toàn bộ. Quy trình công việc đó nằm ngoài trình chỉnh sửa này và không được ngụ ý bằng nút cắt chung của trình duyệt.

Lossless không có nghĩa là tùy ý. Các công cụ căn chỉnh theo khối có thể hạn chế hình chữ nhật cắt và việc xử lý siêu dữ liệu vẫn cần xác minh riêng. Trình chỉnh sửa đưa ra một lựa chọn khác: nó cung cấp cho người dùng một hình chữ nhật miễn phí trên hình ảnh được giải mã, sao chép hình chữ nhật đó vào các khung vẽ lớp mới và sau đó mã hóa kết quả. Sử dụng tiện ích JPEG chuyên dụng khi yêu cầu bảo toàn byte hoặc hành vi lưu trữ cấp khối.

Việc cắt xén JPEG không bị mất nằm ngoài cách triển khai này và yêu cầu một công cụ khác

Chỉnh sửa canvas được xây dựng cho pixel chứ không phải hệ số biến đổi JPEG. Trình duyệt tải hình ảnh dưới dạng Hình ảnh HTML, trình chỉnh sửa sao chép hình chữ nhật nguồn đã chọn vào các khung vẽ lớp mới và raster hiển thị được tạo để xuất. Thiết kế đó chấp nhận bất kỳ hình học cắt xén nào và cho phép cùng một quy trình làm việc xử lý các bản vẽ, văn bản và các lớp khác. Điều đó cũng có nghĩa là các khối JPEG ban đầu không còn là nguyên liệu xuất khẩu nữa.

Khi phiên được xuất, canvas.toBlob sẽ yêu cầu trình duyệt cung cấp tệp PNG, JPEG hoặc WebP mới. Đối với bản tải xuống JPEG, đó là trình duyệt mã hóa lại raster đã được giải mã và chỉnh sửa. Nguồn không hiển thị căn chỉnh đơn vị được mã hóa tối thiểu, sao chép hệ số, lựa chọn mẫu con hoặc đảm bảo về siêu dữ liệu và hồ sơ. Hành vi này là cố ý chỉnh sửa raster chứ không phải cắt xén khối không mất dữ liệu.

Cắt xén trình duyệt giải mã pixel, sao chép hình chữ nhật và mã hóa lại tổ hợp

Một lần mã hóa lại có thể được chấp nhận đối với hình ảnh trên web nhưng chi phí của nó phụ thuộc vào nguồn, phần cắt, bộ mã hóa trình duyệt, chất lượng đã chọn và nội dung. Văn bản đẹp, quét bán sắc, đường nét sắc nét và các cạnh tương phản lặp đi lặp lại có thể tiết lộ những thay đổi sớm hơn một bức ảnh thông thường. Tránh chỉ định một tỷ lệ phần trăm cố định cho việc mất hoặc giảm kích thước tệp được đảm bảo: kho lưu trữ không đưa ra lời hứa như vậy.

Giữ quy trình làm việc ở một lần xuất có chủ ý khi có thể. Việc mở lại bản tải xuống JPEG, thực hiện một chỉnh sửa raster khác và mã hóa lại nó sẽ tạo cơ hội cho các đồ tạo tác, trong khi xuất PNG có thể thay đổi sự cân bằng về kích thước và định dạng thay vì giữ nguyên JPEG byte. So sánh đầu ra thực tế ở độ phóng đại hữu ích, giữ lại nguồn và chọn định dạng cũng như chất lượng cho đích thay vì tin tưởng vào một con số phổ quát.

Hậu quả của việc mã hóa lại phụ thuộc vào bộ mã hóa; không có kích thước cố định hoặc phần trăm chất lượng được hứa hẹn

Sử dụng một trang được quét làm so sánh thực tế. Giữ nguyên bản gốc, ghi lại kích thước và kích thước tệp của nó, sau đó đánh dấu hình chữ nhật mong muốn trong trình chỉnh sửa. Xuất phần cắt một lần dưới dạng JPEG ở chất lượng đã chọn và kiểm tra loại nhỏ, đường viền thẳng và kết cấu giấy. Kích thước đầu ra trả lời xem trang có bị cắt bớt hay không; việc kiểm tra trực quan sẽ trả lời xem raster mới có còn hữu ích hay không.

Tiện ích nhận biết khối không mất dữ liệu sẽ là một thử nghiệm riêng biệt: nó có thể chỉ chấp nhận các cạnh được căn chỉnh và tránh giải mã trang, trong khi phần cắt của trình duyệt chấp nhận hình chữ nhật bạn vẽ. Đừng so sánh cả hai như thể chúng có cùng sự đảm bảo. Ở đây, canvas.toBlob tạo một tệp mới và nguồn không đảm bảo nhận dạng byte, lưu giữ siêu dữ liệu, lưu giữ hồ sơ hoặc chi phí chất lượng cố định.

Kiểm tra đã hoạt động: so sánh kích thước và chi tiết hiển thị mà không cần bảo toàn byte

Sự so sánh cụ thể là về đầu vào JPEG và phần cắt raster của trình duyệt. PNG có hành vi nén khác và không nhận được đối số làm giảm chất lượng trong trình chỉnh sửa này. WebP tuân theo codec trình duyệt của riêng nó. Xoay, ghi lại siêu dữ liệu, xử lý ICC và các phép biến đổi JPEG không mất dữ liệu chuyên biệt là những câu hỏi riêng biệt; việc xuất thành công ở một định dạng này không đáp ứng được chúng cho một định dạng khác.

Sự thận trọng tương tự cũng áp dụng cho các khiếu nại lưu trữ. Trình chỉnh sửa không hiển thị căn chỉnh đơn vị được mã hóa tối thiểu, điều khiển lấy mẫu phụ, thao tác xoay không mất dữ liệu hoặc đảm bảo rằng siêu dữ liệu được nhúng vẫn tồn tại. Nếu nguồn phải giữ nguyên cấu trúc, hãy giữ nó và sử dụng công cụ nhận dạng định dạng. Nếu mục tiêu là một hình ảnh mới thuận tiện với hình chữ nhật tùy ý thì quy trình làm việc của trình duyệt sẽ phù hợp hơn.

Bài học rút ra: biết bạn đang thực hiện giao dịch nào - cách Trình chỉnh sửa Hình ảnh & Bản vẽ của Trình duyệt cắt bất kỳ hình chữ nhật nào trên thiết bị của bạn và khi nào một công cụ không mất dữ liệu phù hợp với việc lưu trữ hoạt động tốt hơn

Giao dịch rất đơn giản: trình soạn thảo này thực hiện cắt raster, sau đó là mã hóa trình duyệt mới. Nó giải mã hình ảnh, sao chép hình chữ nhật đã chọn vào các khung vẽ lớp của nó, tổng hợp kết quả hiển thị và sử dụng canvas.toBlob cho định dạng được yêu cầu. Điều đó mang lại cho bạn một phần cắt tùy ý trên thiết bị nhưng nó không bảo toàn luồng byte nén ban đầu hoặc yêu cầu ngữ nghĩa JPEG không mất dữ liệu.

Sử dụng nó khi sản phẩm có thể phân phối là một hình ảnh thiết thực để chia sẻ, đánh giá hoặc chỉnh sửa thông thường thêm. Giữ lại nguồn và chọn tiện ích không mất dữ liệu nhận biết định dạng khi độ trung thực của bản lưu trữ, việc bảo quản khối hoặc đảm bảo siêu dữ liệu là vấn đề quan trọng. Đo kích thước cuối cùng và kiểm tra chi tiết có thể nhìn thấy được; những kiểm tra đó mô tả tệp bạn nhận được mà không giả vờ rằng mọi bộ mã hóa trình duyệt đều thực hiện giao dịch cấp byte giống nhau.