Chuyển đến nội dung chính

Tổng quan

Image Resizer là một ứng dụng dòng lệnh được xây dựng bằng .NET, được thiết kế để thay đổi kích thước hình ảnh. Ứng dụng cho phép bạn thay đổi kích thước một hình ảnh được cung cấp bằng cách chỉ định kích thước mục tiêu theo byte và một thư mục đầu ra.

Công cụ này nhằm duy trì độ tương đồng với hình ảnh gốc. Mọi khác biệt phải nằm trong ngưỡng dung sai của thị giác con người.

Đầu ra của công cụ này hướng tới giá trị điểm tương đồng thị giác từ 90% trở lên trong các bài kiểm tra so sánh sử dụng thuật toán tương quan chéo.

Tích hợp Import / Export

Các tệp được hỗ trợ có thể được xử lý bằng chức năng export của Glasswall Engine. Chức năng này xuất ra một tệp ZIP chứa tất cả hình ảnh được trích xuất từ tài liệu gốc.

Tính năng này cho phép xử lý tùy chỉnh các hình ảnh, sau đó có thể được chèn lại vào tài liệu gốc bằng chức năng import.

Tuy nhiên, có một số giới hạn tích hợp cần lưu ý:

  • Việc thay đổi tên tệp của hình ảnh thành bất kỳ tên nào khác với tên gốc sẽ dẫn đến lỗi khi đưa hình ảnh trở lại tài liệu trong quá trình import.
  • Tên tệp có phân biệt chữ hoa chữ thường.
  • Nếu kích thước tệp của một hình ảnh vượt quá kích thước ban đầu, quá trình import có thể không thành công.

Công cụ cho phép người dùng thay đổi kích thước hình ảnh về kích thước mục tiêu nhỏ hơn hoặc bằng kích thước tệp gốc, bảo đảm quá trình import diễn ra suôn sẻ.

Cách sử dụng:

gw_image_resizer [options]

Tùy chọn:

  -i, --in <filename> (REQUIRED)                               Input file name
-o, --out <filename> (REQUIRED) Output file name
-t, --target <max size in bytes> (REQUIRED) Target maximum output file size
-l, --memory-limit <max memory limit percentage> (OPTIONAL) An optional number that specifies the maximum amount of system memory percent the image resize is limited to [default: 50]
-T, --temp-dir <path> (OPTIONAL) Defines the path to an existing directory where temporary files are created during processing [default: $TMPDIR/.gw-image-resizer]
-?, -h, --help Show help and usage information
--version Show version information

Mã thoát

Mã thoátMô tả
0Đã thay đổi kích thước thành công hoặc tệp đã ở đúng kích thước mục tiêu
1Kích thước mục tiêu của tệp đầu vào nhỏ hơn 0
2Không tìm thấy tệp đầu vào
3Không thể tải tệp đầu vào vì tệp bị hỏng hoặc không được hỗ trợ
4Không thể tải tệp đầu vào vì lý do không xác định
5Một phần của đường dẫn đầu ra không tồn tại
6Không thể ghi tệp đầu ra vì lý do không xác định
7Lỗi chung trong thư viện magick khi cố gắng thay đổi kích thước
8Không thể đạt được kích thước mục tiêu mong muốn
9Lỗi không mong muốn
10Tùy chọn giới hạn bộ nhớ không nằm trong khoảng từ 1-100
11Không tìm thấy đường dẫn thư mục tạm thời
12Không thể ghi vào thư mục tạm thời

Thư mục tạm thời

Để đảm bảo việc thay đổi kích thước tệp thành công, trong quá trình xử lý, công cụ image resizer có thể sử dụng một thư mục tạm thời nằm tại "$TMPDIR/.gw-image-resizer" hoặc "/tmp/.gw.image-resizer". Có thể ghi đè thiết lập này thành một thư mục hiện có có quyền ghi bằng tùy chọn dòng lệnh không bắt buộc "--temp-dir" (hoặc viết tắt là "-T".)

LƯU Ý: Nếu thư mục tạm thời không có quyền ghi (ví dụ: người dùng hiện tại không có đủ quyền) thì ứng dụng sẽ thất bại khi dữ liệu xử lý hình ảnh cần được lưu vào bộ nhớ đệm. Bạn nên kiểm tra rằng người dùng có thể ghi vào thư mục để tránh các sự cố xảy ra không thường xuyên trong quá trình vận hành.

Giới hạn bộ nhớ

Theo mặc định, lượng bộ nhớ cấp phát dùng để thay đổi kích thước hình ảnh được giới hạn ở mức 50% bộ nhớ hệ thống. Có thể ghi đè giá trị này thành một giá trị từ 1-100 bằng tùy chọn dòng lệnh không bắt buộc "-l".

Hỗ trợ

Công cụ hiện hỗ trợ những nội dung sau:

  • JPEG
  • PNG
  • BMP
  • TIFF (xem sự cố đã biết về GeoTiff)
  • GIF

Các tệp khác được ImageMagick hỗ trợ có thể tải đúng cách nhưng chưa được triển khai một cách rõ ràng.

Chiến lược thay đổi kích thước

Tất cả các tệp hình ảnh được hỗ trợ đều trải qua một tập hợp phương thức để đạt đến kích thước mục tiêu. Ví dụ:

Chất lượng nén:

Các tệp JPEG / JPG có chất lượng được đặt là 25.

Các tệp PNG được đặt là 100.

Các loại tệp khác được giữ nguyên, tuy nhiên phương thức nén luôn được đặt thành LZW.

Tối ưu hóa GIF

Vì GIF có thể bao gồm nhiều hình ảnh và lớp, nên có thể thực hiện một số tối ưu hóa để giảm kích thước tệp.

Nếu các lớp khác nhau của một hình ảnh có kích thước khác nhau, việc tối ưu hóa sẽ được Image Magick thực hiện để giảm kích thước tệp.

Nếu không, GIF sẽ được Coalesced, tức là hợp nhất các điểm tương đồng trong các hình ảnh của chuỗi để giảm kích thước.

Độ trong suốt cũng được tối ưu hóa ở giai đoạn này, thay thế dữ liệu pixel trùng lặp trong toàn bộ chuỗi bằng độ trong suốt.

Lượng tử hóa

Sau đó, tất cả hình ảnh sẽ được Quantized, giới hạn số lượng màu ở mức 128, và không thay đổi giá trị nếu đã thấp hơn mức này.

Giảm tỷ lệ

Nếu mục tiêu vẫn chưa đạt được, hình ảnh sau đó sẽ được thay đổi kích thước cho đến khi đạt được. Độ phân giải được giảm liên tục xuống 95% so với bản gốc cho đến khi đạt mục tiêu hoặc không thể giảm thêm nữa.

Các sự cố đã biết

Quá trình xử lý có thể xóa dữ liệu vị trí khỏi các pixel trong GeoTIFF. Ngoài ra, các tệp TIFF thông thường có thể bị đảo màu trong hình ảnh thang độ xám.

Thư viện bên thứ ba

Tên thư việnPhiên bản thư việnLoạiLoại giấy phépURL giấy phépURL dự ánURL nguồn
System.CommandLine2.0.0-beta4.22272.1Thư việnMITLiên kếtLiên kếtLiên kết
System.CommandLine.Hosting0.4.0-alpha.22272.1Thư việnMITLiên kếtLiên kếtLiên kết
Magick.NET-Q8-AnyCPU13.10.0Thư việnApache-2.0Liên kếtLiên kếtLiên kết

Công cụ Image Resizer của Glasswall sử dụng gói NuGet "Magick.NET-Q8-AnyCPU", đây là một trình bao bọc dotnet cho ImageMagick.

Bản thân ImageMagick là một công cụ mã nguồn mở miễn phí được sử dụng để chỉnh sửa và xử lý hình ảnh kỹ thuật số.