مكتبة فك تشفير الصور SAIL متاحة

بموجب ترخيص معهد ماساتشوستس للتكنولوجيا نشرت مكتبة فك تشفير الصور عبر الأنظمة الأساسية SAIL. SAIL عبارة عن إعادة تسمية لبرامج الترميز من عارض صور غير مدعوم منذ فترة طويلة تمت إعادة كتابته بلغة C Kالسنجاب، ولكن مع واجهة برمجة تطبيقات مجردة عالية المستوى والعديد من التحسينات. الجمهور المستهدف: مشاهدو الصور، تطوير الألعاب، تحميل الصور إلى الذاكرة لأغراض أخرى. المكتبة قيد التطوير، ولكنها قابلة للاستخدام بالفعل. لا يتم ضمان توافق الكود الثنائي والكود المصدري في هذه المرحلة من التطوير.

الميزات:

  • مكتبة بسيطة وصغيرة الحجم وسريعة مكتوبة بلغة C دون تبعيات طرف ثالث (باستثناء برامج الترميز)؛
  • واجهة برمجة تطبيقات بسيطة ومفهومة وفي نفس الوقت قوية لجميع الاحتياجات؛
  • الارتباطات لـ C++؛
  • يتم دعم تنسيقات الصور بواسطة برامج الترميز المحملة ديناميكيًا؛
  • قراءة (وكتابة) الصور من ملف أو ذاكرة أو حتى مصدر البيانات الخاص بك؛
  • تحديد نوع الصورة عن طريق امتداد الملف أو عن طريق الرقم السحري;
  • التنسيقات المدعومة حاليًا: APNG (للقراءة، Windows فقط)، JPEG (للقراءة، الكتابة)، PNG (للقراءة، الكتابة).
    والعمل جارٍ لإضافة صيغ جديدة. يدعم KSquirrel-libs حوالي 60 تنسيقًا بطريقة أو بأخرى، والتنسيقات الأكثر شيوعًا هي الأولى في السطر؛

  • يمكن لعمليات القراءة دائمًا إخراج وحدات البكسل بتنسيق RGB وRGBA؛
  • يمكن لبعض برامج الترميز إخراج وحدات البكسل في قائمة أكبر من التنسيقات؛
  • يمكن لمعظم برامج الترميز أيضًا إخراج وحدات البكسل المصدرية. وهذا مفيد، على سبيل المثال، لأولئك الذين يريدون الحصول على معلومات كاملة من صور CMYK أو YCCK؛
  • قراءة وكتابة الملفات الشخصية للمحكمة الجنائية الدولية؛
  • أمثلة في C، كيو تي، SDL؛
  • المنصات المدعومة:
    Windows (المثبت)، وmacOS (المشروب)، وLinux (Debian).

ما لا توفره SAIL:

  • تعديل الصوره؛
  • وظائف تحويل مساحة اللون بخلاف تلك التي توفرها برامج الترميز الأساسية (libjpeg، وما إلى ذلك)؛
  • وظائف إدارة الألوان (استخدام ملفات تعريف ICC، وما إلى ذلك)

أبسط مثال لفك التشفير في لغة C:

هيكل الشراع_context *context;

SAIL_TRY(sail_init(&context));

هيكل الشراع_الصورة * الصورة؛
حرف غير موقع *image_pixels;

SAIL_TRY(sail_read(المسار،
سياق الكلام،
&صورة،
(باطل **)&image_pixels));

/*
* هنا نقوم بمعالجة وحدات البكسل المستلمة.
* للقيام بذلك، استخدم الصورة->العرض، الصورة->الارتفاع، الصورة->bytes_per_line،
* والصورة->pixel_format.
*/

/* تنظيف */
مجانا(image_pixels);
Sail_destroy_image(image);

وصف موجز لمستويات API:

  • مبتدئ: "أريد فقط تنزيل ملف JPEG هذا"
  • متقدم: "أريد تحميل ملف GIF المتحرك هذا من الذاكرة"
  • غواص أعماق البحار: "أريد تحميل ملف GIF المتحرك هذا من الذاكرة والحصول على التحكم الكامل في برامج الترميز وإخراج البكسل الذي أختاره."
  • الغواص الفني: "أريد كل شيء أعلاه، ومصدر البيانات الخاص بي"

المنافسون المباشرون من نفس المنطقة:

  • FreeImage
  • شيطان
  • SDL_Image
  • WIC
  • imlib2
  • Boost.GIL
  • gdk-pixbuf

الاختلافات عن المكتبات الأخرى:

  • واجهة برمجة التطبيقات البشرية مع الكيانات المتوقعة - الصور واللوحات وما إلى ذلك.
  • يمكن لمعظم برامج الترميز إخراج أكثر من مجرد وحدات بكسل RGB/RGBA.
  • يمكن لمعظم برامج الترميز إخراج وحدات البكسل الأصلية دون التحويل إلى RGB.
  • يمكنك كتابة برامج الترميز بأي لغة، وكذلك إضافتها أو إزالتها دون إعادة ترجمة المشروع بأكمله.
  • الحفاظ على المعلومات حول الصورة الأصلية.
  • "التحقيق" هو ​​عملية الحصول على معلومات حول صورة ما دون فك تشفير بيانات البكسل.
  • الحجم والسرعة.

المصدر: opennet.ru

إضافة تعليق