منصوبے کے بارے میں

libheif ایک ISO/IEC 23008-12 HEIF اور AVIF (AV1 Image File Format) ڈی کوڈر اور ان کوڈر ہے۔ HEIC اور AVIF تصویری فارمیٹس ہیں جو بالترتیب مضبوط کمپریشن کے لیے HEVC (H.265) یا AV1 کوڈنگ استعمال کرتے ہیں۔ HEIC اور AVIF کے علاوہ، یہ VVC، AVC، JPEG، JPEG-2000 اور ISO/IEC 23001-17 کے ساتھ کوڈ شدہ HEIF تصاویر کو بھی سنبھالتا ہے؛ مؤخر الذکر بلٹ ان ہے اور بہت سے فارمیٹس میں بغیر نقصان والی تصاویر اور ویڈیو محفوظ کرتا ہے۔ کوڈیک کی حمایت بیرونی لائبریریوں کے ذریعے فراہم کی جاتی ہے: HEIC کے لیے libde265 اور x265، AVIF کے لیے libaom، dav1d، svt-av1 یا rav1e، نیز vvdec/vvenc/uvg266، openh264/x264، libjpeg(-turbo)، OpenJPEG اور OpenJPH۔ بلڈز میں کوڈیکس کا ایک ذیلی مجموعہ شامل کیا جا سکتا ہے، یا انہیں متحرک طور پر لوڈ ہونے والے پلگ انز کے طور پر کمپائل کیا جا سکتا ہے تاکہ انحصار اور سائز کم ہو۔ خصوصیات میں الفا چینلز، ڈیپتھ میپس، تھمب نیلز، معاون تصاویر، فی فائل متعدد تصاویر، تصویری سیکوئنسز اور MP4 ویڈیو (بغیر آڈیو)، فی ٹائل ڈی کوڈنگ اور اضافی انکوڈنگ کے ساتھ ٹائل شدہ تصاویر، ایمبیڈڈ پروفائلز سے رنگ کی تبدیلیوں کے ساتھ HDR، کراپ/مرر/روٹیٹ تبدیلیاں، اوورلے تصاویر، EXIF اور XMP میٹا ڈیٹا کی پڑھائی، علاقائی تشریحات اور ماسک تصاویر، اور ڈیٹا ریڈر انٹرفیس کے ذریعے اسٹریمنگ شامل ہیں۔ لائبریری وسیع زبان کے انضمام کے لیے ایک C API پیش کرتی ہے، ایک ہیڈر-اونلی C++ ریپر کے ساتھ جو بائنری مطابقت رکھتا ہے۔ وہی ڈی کوڈنگ کوڈ تمام فارمیٹس میں کام کرتا ہے؛ انکوڈنگ فارمیٹ کا انتخاب انکوڈر لک اپ میں heif_compression_HEVC، heif_compression_AV1 یا کوئی اور فارمیٹ پاس کر کے کیا جاتا ہے۔ README میں مثالی اسنیپٹس بنیادی تصویر لوڈ کرنے، HEIF فائل لکھنے، اور EXIF میٹا ڈیٹا پڑھنے کا احاطہ کرتے ہیں۔ بلڈ سسٹم CMake ہے (autotools v1.16.0 میں ہٹا دیا گیا)، پریسیٹس کے ساتھ: release (کوڈیکس بطور پلگ ان)، release-noplugins (خود مکمل HEIC/AVIF)، testing اور fuzzing۔ کنفیگریشن متغیرات ہر کوڈیک کو کنٹرول کرتے ہیں (WITH_{codec}، WITH_{codec}_PLUGIN)، پلگ ان لوڈنگ، غیر کمپریسڈ کوڈیک، ہیڈر کمپریشن، libsharpyuv رنگ تبدیلی، تجرباتی خصوصیات، ملٹی تھریڈنگ، متوازی ٹائل ڈی کوڈنگ، پلگ ان ڈائریکٹری اور سمبل مرئیت۔ macOS Homebrew انحصارات استعمال کرتا ہے؛ Windows vcpkg کے ذریعے بلڈ کرتا ہے۔ third-party میں اسکرپٹس libaom، rav1e، dav1d اور SVT-AV1 بنانے میں مدد کرتے ہیں۔ کمانڈ لائن ٹولز میں heif-dec (JPEG، PNG، TIFF، WebP یا Y4M میں ڈی کوڈ، بشمول سیکوئنسز اور MP4)، heif-enc (ان فارمیٹس، خام پکسل ڈیٹا یا HEIF/AVIF سے انکوڈ)، heif-info (جائزہ یا مکمل باکس ڈمپ) اور heif-view (سیکوئنسز دکھائیں) شامل ہیں۔ سیکیورٹی حدود بہت بڑی تصاویر اور ڈینائل-آف-سروس کے خلاف حفاظت کرتی ہیں؛ انہیں API کے ذریعے ایڈجسٹ کیا جا سکتا ہے، --disable-limits کے ساتھ غیر فعال کیا جا سکتا ہے، یا عالمی طور پر LIBHEIF_SECURITY_LIMITS=off کے ساتھ۔ کمزوریاں GitHub پرائیویٹ کمزوری رپورٹنگ کے ذریعے رپورٹ کی جاتی ہیں۔ .NET، Go، JavaScript/NodeJS، Python (pyheif، pillow-heif)، Rust، Swift اور JavaFX کے لیے زبان کی بائنڈنگز موجود ہیں؛ C کے ساتھ مطابقت رکھنے والی زبانیں براہ راست کام کرتی ہیں۔ libheif کو emscripten کے ساتھ JavaScript/WASM میں کمپائل کیا جا سکتا ہے، اور ایک آن لائن براؤزر ڈیمو دستیاب ہے۔ یہ ایک Gnome تھمب نیلر اور ایک gdk-pixbuf لوڈر بھی فراہم کرتا ہے۔ بہت سی اوپن سورس تصویری ایپلیکیشنز اس پر انحصار کرتی ہیں، بشمول GIMP، Krita، ImageMagick، GraphicsMagick، darktable، digiKam، libvips/sharp، pillow-heif، kImageFormats، GNOME ڈیسک ٹاپ، libGD، Kodi، bimg، GDAL، OpenImageIO اور XnView۔ یہ پروجیکٹ ایک آزاد ڈویلپر کے ذریعے برقرار رکھا جاتا ہے اور فنڈنگ اور تجارتی معاونت کی درخواست کرتا ہے؛ یہ GNU Lesser General Public License کے تحت تقسیم کیا جاتا ہے۔