การเปิดตัวไลบรารีการถอดรหัสรูปภาพ SAIL 0.9.0-pre12

การอัปเดตที่สำคัญหลายประการสำหรับไลบรารีการถอดรหัสรูปภาพ SAIL ได้รับการเผยแพร่ โดยให้การเขียน C ใหม่ของตัวแปลงสัญญาณจากโปรแกรมดูรูปภาพ KSquirrel ที่เลิกใช้งานไปนานแล้ว แต่มี API เชิงนามธรรมระดับสูงและการปรับปรุงมากมาย ห้องสมุดพร้อมใช้งานแต่ยังคงมีการปรับปรุงอย่างต่อเนื่อง ยังไม่รับประกันความเข้ากันได้ของไบนารีและ API สาธิต.

คุณสมบัติของ SAIL

  • ห้องสมุดที่รวดเร็วและใช้งานง่าย
  • เขียนในภาษา C11 โดยเชื่อมโยงกับ C++17;
  • การรองรับรูปแบบภาพนั้นดำเนินการโดยตัวแปลงสัญญาณที่โหลดแบบไดนามิก ซึ่งสามารถลบและเพิ่มได้โดยอิสระจากฝั่งไคลเอ็นต์
  • การอ่านจากไฟล์ หน่วยความจำ แหล่งที่มาของตัวเอง
  • รองรับรูปภาพหลายหน้าและภาพเคลื่อนไหว
  • การรองรับรูปแบบยอดนิยมยังคงทำได้โดยใช้ไลบรารีที่เกี่ยวข้อง libjpeg, libpng ฯลฯ
  • ข้ามแพลตฟอร์ม: Linux, Windows, macOS;
  • “ การตรวจสอบ” - รับข้อมูลเกี่ยวกับภาพโดยไม่ต้องถอดรหัสพิกเซล
  • ชื่อนิติบุคคลของมนุษย์ (ไม่มี FIMULTIBITMAP)
  • การอ่านและการเขียนโปรไฟล์ ICC
  • ส่งพิกเซล RGBA หรือ BGRA;
  • ส่งกลับพิกเซลดั้งเดิม (เช่น CMYK) หากตัวแปลงสัญญาณรองรับ

รายการการเปลี่ยนแปลงตั้งแต่การเผยแพร่ครั้งล่าสุด:

  • API ได้รับการปรับปรุงและทำให้ง่ายขึ้นอย่างมาก เคยเป็น: struct sail_context *context; SAIL_TRY(sail_init(&บริบท)); struct sail_image * รูปภาพ; ถ่านที่ไม่ได้ลงนาม *image_pixels; SAIL_TRY(sail_read(เส้นทาง, บริบท, &รูปภาพ, (โมฆะ **)&image_pixels)); ...ฟรี(image_pixels); sail_destroy_image (ภาพ);

    ตอนนี้: struct sail_image *image; SAIL_TRY(sail_read_file(path, &image); ... sail_destroy_image(รูปภาพ);

  • เพิ่มรูปแบบ BMP, GIF, TIFF;
  • ความพร้อมใช้งานใน VCPKG บนทุกแพลตฟอร์ม ยกเว้น UWP
  • เผยแพร่การทดสอบประสิทธิภาพเกณฑ์มาตรฐาน;
  • การรวม C ++ ถูกย้ายไปที่ C ++ 17;
  • ฟังก์ชันการจัดสรรหน่วยความจำถูกรวบรวมไว้ในที่เดียวเพื่อให้สามารถแทนที่ด้วยฟังก์ชันของคุณเองได้อย่างง่ายดาย แต่ในขณะนี้สามารถทำได้โดยการคอมไพล์ใหม่เท่านั้น
  • ขณะนี้ผู้ใช้สามารถใช้ CMake find_package() เพื่อเชื่อมต่อ SAIL;
  • เพิ่มความสามารถในการคอมไพล์แบบคงที่ (SAIL_STATIC=ON);
  • เพิ่มความสามารถในการรวบรวมตัวแปลงสัญญาณทั้งหมดลงในไลบรารีทั่วไปเดียว (SAIL_COMBINE_CODECS=ON)
  • งานได้เริ่มขึ้นแล้วในการเพิ่มการทดสอบแบบอิงนิต

วิธีการติดตั้งที่แนะนำ

  • Linux - vcpkg, กฎ Debian ก็มีให้บริการเช่นกัน
  • Windows - vcpkg
  • macOS - ชง

ที่มา: opennet.ru

เพิ่มความคิดเห็น