Phát hành thư viện giải mã hình ảnh SAIL 0.9.0-pre12

Một số bản cập nhật lớn cho thư viện giải mã hình ảnh SAIL đã được xuất bản, cung cấp bản viết lại C của codec từ trình xem hình ảnh KSquirrel đã không còn tồn tại từ lâu, nhưng có API trừu tượng cấp cao và nhiều cải tiến. Thư viện đã sẵn sàng để sử dụng nhưng vẫn đang được cải tiến liên tục. Khả năng tương thích nhị phân và API chưa được đảm bảo. Biểu tình.

Đặc điểm của SAIL

  • Thư viện nhanh chóng và dễ sử dụng;
  • Được viết bằng C11 với các ràng buộc với C++17;
  • Hỗ trợ các định dạng hình ảnh được triển khai bằng các codec được tải động, có thể được xóa và thêm độc lập từ phía máy khách;
  • Đọc từ tập tin, bộ nhớ, nguồn riêng;
  • Hỗ trợ hình ảnh nhiều trang và hoạt hình;
  • Việc hỗ trợ các định dạng phổ biến vẫn được thực hiện bằng các thư viện tương ứng libjpeg, libpng, v.v.
  • Đa nền tảng: Linux, Windows, macOS;
  • “Thăm dò” - thu thập thông tin về hình ảnh mà không cần giải mã pixel;
  • Tên thực thể con người (không có FIMULTIBITMAP);
  • Đọc và viết hồ sơ ICC;
  • Gửi pixel RGBA hoặc BGRA;
  • Trả về các pixel gốc (ví dụ: CMYK) nếu được codec hỗ trợ;

Danh sách các thay đổi kể từ lần xuất bản cuối cùng:

  • API đã được cải thiện và đơn giản hóa đáng kể. Là: struct Sail_context *context; SAIL_TRY(sail_init(&context)); struct Sail_image *hình ảnh; ký tự không dấu *image_pixels; SAIL_TRY(sail_read(đường dẫn, ngữ cảnh, &hình ảnh, (void **)&image_pixels)); ...miễn phí(image_pixels); Sail_destroy_image(hình ảnh);

    Bây giờ: struct Sail_image *image; SAIL_TRY(sail_read_file(path, &image); ... Sail_destroy_image(image);

  • Đã thêm các định dạng BMP, GIF, TIFF;
  • Tính khả dụng trong VCPKG trên tất cả các nền tảng ngoại trừ UWP;
  • Các bài kiểm tra hiệu suất chuẩn được công bố;
  • Liên kết C++ đã được chuyển sang C++17;
  • Các hàm phân bổ bộ nhớ được tập hợp ở một nơi để có thể dễ dàng thay thế chúng bằng hàm của bạn, nhưng hiện tại, việc này chỉ có thể được thực hiện bằng cách biên dịch lại;
  • Người dùng hiện có thể sử dụng CMake find_package() để kết nối SAIL;
  • Đã thêm khả năng biên dịch tĩnh (SAIL_STATIC=ON);
  • Đã thêm khả năng biên dịch tất cả các codec vào một thư viện chung (SAIL_COMBINE_CODECS=ON);
  • Công việc đã bắt đầu bổ sung các bài kiểm tra dựa trên µnit;

Phương pháp cài đặt được đề xuất

  • Linux - vcpkg, quy tắc Debian cũng có sẵn
  • Windows - vcpkg
  • macOS - bia

Nguồn: opennet.ru

Thêm một lời nhận xét