PixZeno
التراخيص
صفحات PixZeno وتخطيطها وأدوات الصور هي الموقع. ثلاث مكتبات خارجية تؤدي أعمالًا لا يحسنها المتصفح وحده. هذه الصفحة تسمّيها، وتذكر الرخصة، وتربط الملفات حتى تقرأ الشروط بنفسك.
ما الذي لنا، وما الذي استُعير
الضاغط، ومغيّر الأبعاد، والقص، ومقاسات التواصل، وقارئ البيانات، ونص الصفحات هي PixZeno. تعتمد على واجهات الرسم والملفات في المتصفح نفسه. لا يعمل مدير حزم على الخادم، وموقع الإنتاج لا يحتاج Node.
ثلاث مكتبات منسوخة في الموقع كملفات منفصلة تحت /assets/vendor/. ليست مدمجة في الصفحة الرئيسية. المكتبة تُحمَّل فقط حين تعمل الأداة التي تحتاجها. هذا يبقي الصفحة الأولى صغيرة، ويبقي رخصة كل مكتبة مربوطة بملف يمكن استبداله.
HEIC، والمفكك الذي بداخله
صور الآيفون تصل غالبًا بصيغة HEIC أو HEIF. سفاري يستطيع أحيانًا فكها من المتصفح نفسه. كروم وفايرفوكس غالبًا لا يستطيعان. صفحة HEIC تجرّب المتصفح أولًا. إذا فشل ذلك، تفك الملف داخل عامل بـ libheif 1.23.2 من حزمة libheif-js 1.23.2.
libheif-js ومكتبة libheif التي بداخله برخصة LGPL-3.0. PixZeno لم يكتبهما. المفكك يبقى ملفًا منفصلًا، libheif-bundle.mjs، حتى يمكن استبداله ببناء آخر. النسخة المعروضة هنا لا تستدعي eval ولا new Function. سياسة أمان المحتوى في الصفحة لا تسمح بـ unsafe-eval.
الملف يُحمَّل فقط في صفحة تحويل HEIC إلى JPG، وفقط حين يبدأ التحويل. بيانات الكاميرا لا تُحفظ. الناتج JPEG من 8 بت. ملف ألوان Display P3 وأي خريطة كسب HDR يبقيان في ملف HEIC الأصلي ولا يُكتبان في JPG. هذا حد لهذا التحويل، وصفحة HEIC تقوله. ليس شرطًا من الرخصة.
مكتبة PDF
تحويل الصور إلى PDF يستخدم pdf-lib 1.17.1. سطر الحقوق يذكر أندرو ديلون ومساهمي pdf-lib وأجزاء تعود إلى Microsoft. الرخصة MIT: يجوز الاستخدام والنسخ والتوزيع بشرط أن يبقى إشعار الحقوق وإشعار الإذن مع البرنامج. البرنامج يُقدَّم كما هو، من غير ضمان. سطر الضمان هذا للمكتبة، وهو يطابق معاملة PixZeno لأداة PDF نفسها. ملف PDF يفشل بناؤه يُبلَّغ كفشل. لا يُرقَّع ليصير ملفًا مزيفًا.
المكتبة تُحمَّل فقط حين تنشئ PDF، لا لمجرد فتح الصفحة. بايتات JPEG وPNG يمكن تضمينها مباشرة. WebP وGIF يمران بالرسم أولًا، لأن pdf-lib لا يأخذ هاتين الصيغتين كما هما.
مكتبة ZIP
حين تعرض أداة «تنزيل الكل»، يُبنى الأرشيف بـ fflate 0.8.3، برخصة MIT، من 101arrowz. PixZeno يستدعي zipSync لإنشاء الأرشيف. لا يستدعي دالة فك الضغط، ولا يفتح ملفات ZIP التي ترفعها. الإصدار 0.8.2 كان فيه خلل في مسار فك الضغط ذاك. التثبيت على 0.8.3 حتى تكون النسخة في الموقع هي الإصدار المصحح، مع أن PixZeno لا يستخدم الدالة المتأثرة.
المكتبة تبقى غير محمّلة حتى تطلب ملف ZIP. التنزيل المفرد لا يجلبها. الأدوات التي قد تعرض ZIP تشمل الضاغط، وتحويل HEIC، والتحويل، وWebP، ومقاسات التواصل، وحذف البيانات، وحزمة الأيقونة.
ما تُرك عن قصد
لا إطار واجهة ولا خط ويب. الأيقونات مجموعة صغيرة رُسمت للموقع. حزمة ترميز كبيرة دُرست ثم تُركت، لأن مرمّز اللوحة يغطي JPG وPNG وWebP، وشحن مفككات إضافية لكل زائر يكلف أكثر مما يوفر. ImageMagick ليس على الخادم. إرسال كل صورة عبر محوّل على المستضيف كان سيغيّر قصة الخصوصية وقصة الترخيص معًا.
إذا استُبدلت مكتبة، ينبغي أن تتغير هذه الصفحة وملف الإشعار في التحديث نفسه. الإصدارات أدناه هي المعروضة الآن.
اقرأ الإشعارات
الإشعار القصير ونصوص الرخص بجانب الشيفرة. مستودعات المصدر هي مكان قراءة التاريخ والمشكلات وأي إصدار أحدث. PixZeno لا يعيد ترخيص هذه المشاريع، ولا يضيف شروطًا فوق MIT أو LGPL.
أسئلة شائعة
هل تنزّل الصفحة الرئيسية مكتبة HEIC أو PDF؟
لا. مفكك HEIC يُحمَّل فقط في صفحة HEIC حين يبدأ التحويل. pdf-lib تُحمَّل فقط حين يُنشأ PDF. fflate تُحمَّل فقط حين يُطلب ملف ZIP.
لماذا ملف HEIC كبير؟
لأنه يتضمن تجميع WebAssembly من libheif حتى تبقى للمتصفحات التي لا تفك HEIC فرصة. إبقاؤه خارج الصفحات الأخرى هو ما يبقي بقية الموقع خفيفًا.
هل يمكن استبدال مفكك HEIC؟
نعم. هو ملف منفصل، libheif-bundle.mjs، وهذا ما يقتضيه ترتيب LGPL. بناء آخر يمكن أن يحل مكانه من غير إعادة كتابة بقية PixZeno.
هل تفتحون ملفات ZIP التي يرفعها الزوار؟
لا. fflate تُستخدم فقط لإنشاء ZIP من نتائج صنعها المتصفح أصلًا. ملفات ZIP المرفوعة ليست مدخلًا مدعومًا.
هل هذه المكتبات ملك PixZeno؟
لا. كل واحدة تحتفظ بحقوقها ورخصتها. صفحات PixZeno تشرح الأدوات. لا تعيد ترخيص libheif-js أو libheif أو pdf-lib أو fflate.
