JavaScript API لمقارنة صور PNG
مكتبة JavaScript مفتوحة المصدر تدعم مقارنة صور PNG داخل تطبيقات JavaScript. وهو يدعم مقارنة صور PNG بتجاهل منع الحواف وتجاهل علامة الإقحام.
قد تكون مقارنة الصور مع الصور باستخدام JavaScript صعبة وصعبة للغاية. يمكن أن يؤثر اختيار الأداة الخاطئة بشكل كبير على الأداء. LooksSame هي مكتبة JavaScript مفتوحة المصدر تضم وظائف لمقارنة صور PNG داخل تطبيقات JavaScript وستعمل خارج الصندوق على كل جهاز. تم إنشاء المكتبة مع مراعاة إدراك لون الإنسان. تم إنشاء المكتبة بشكل أساسي لتلبية احتياجات اختبار الانحدار البصري لأداة Gemini.
تتيح هذه المكتبة للمطورين مقارنة الفرق بين صورتي PNG بسهولة وسرعة باستخدام أوامر JavaScript. لقد وفرت دعمًا لمعالجة صور PNG إما عن طريق توفير مسارات للملفات أو الصور داخل المخزن المؤقت. سيؤدي استخدام الإعدادات الافتراضية إلى تحديد الاختلاف الملحوظ فقط ، وإذا كنت بحاجة إلى اكتشاف أي اختلافات معينة ، فيرجى تحديد الخيار الصارم.
قدمت المكتبة دعمًا للعديد من الميزات المهمة المتعلقة بمقارنات الصور مثل مقارنة الصور بتجاهل علامة الإقحام ، ومقارنة الصور بتجاهل منع الحواف ، والحصول على حدود مختلفة ، والحصول على مجموعات مختلفة ، وبناء صور مختلفة ، وبناء صور مختلفة كمخزن مؤقت ، ومقارنة الألوان ، و اكثر كثير.
الشروع في العمل مع LooksS Same
الطريقة الموصى بها لتثبيت LooksSameis عبر NPM. الرجاء استخدام الأمر التالي لتثبيته.
قم بتثبيت LooksSame عبر NPM
npm install looks-same
قارن صور PNG داخل تطبيقات JavaScript
تمنح مكتبة LooksSame مبرمجي البرامج القدرة على مقارنة صور PNG برمجيًا باستخدام Node.js. تحتاج إلى توفير المسار الصحيح لصور PNG أو المخزن المؤقت كمعامل. يمكن أن يكون أحد الأمثلة البسيطة لمقارنة الصور هو التقاط لقطة شاشة لعنصر DOM مع الصورة واستخدام المكتبة لمقارنتها بالصورة المحلية. يمكنك أيضًا استخدام RequestLogger لتسجيل طلب للصورة ومقارنة نص الاستجابة بالملف المحلي باستخدام طريقة Buffer.compare ().
قارن صور PNG عبر JavaScript API
var looksSame = require('looks-same');
looksSame('image1.png', 'image2.png', function(error, {equal}) {
// equal will be true, if images looks the same
});
قارن صور PNG بتجاهل Antialiasing
تتكون كل صورة من وحدات البكسل ، وأثناء مقارنة هذه الصور ، يمكنك مقارنة لون كل بكسل في صورة واحدة مع لون البكسل في الموقع المقابل للصورة. لذلك في حالة اختلاف بعض وحدات البكسل ، يمكنك معرفة أن الصور غير متطابقة. عادةً ما يحدث التشويش عندما تكون دقة الصورة منخفضة جدًا حتى يتمكن المعالج من عرض الخطوط المتجانسة بشكل صحيح. يتم تطبيق تقنية الصقل لإضفاء مظهر أكثر سلاسة ، وبالتالي تحصل على نتائج مقارنة مختلفة لكل بيئة. بعض الصور لها اختلافات أثناء مقارنتها بسبب منع التشويش. تتعامل مكتبة LooksSame مع مشكلات الصقل من خلال تجاهل بعض وحدات البكسل التي من المحتمل أن يكون قد حدث فيها الصقل. سيتم تجاهل هذه الاختلافات بشكل افتراضي.
Every image is made up of pixels and while comparing these images you compare every pixel’s color in image one with the pixel color in the corresponding location of the image. So in case, some pixels are dissimilar, then you can tell the images are not matching. Usually, aliasing happens when an image’s resolution is very low for the processor to correctly render smooth lines. The الصقل technique is applied to give a smoother appearance and thus you get different comparison results per environment. Some images have differences while comparing them because of antialiasing. The LooksSame library deals with الصقل issues by ignoring certain of the pixels where الصقل is likely to have occurred. These differences will be ignored by default.
قارن الصور بتجاهل Antialiasing & Caret عبر JavaScript
const fs = require("fs");
const http = require("http");
const looksSame = require("looks-same");
const noop = () => null;
const refImgPath = __dirname + "/img/ref.png";
const currImgPath = __dirname + "/img/curr.png";
const diffImgPath = __dirname + "/img/diff.png";
const createDiff = (callback = noop) => {
looksSame.createDiff(
{
reference: refImgPath,
current: currImgPath,
diff: diffImgPath,
highlightColor: "#ff00ff", // color to highlight the differences
strict: false, // strict comparsion
tolerance: 2.3,
ignoreAntialiasing: true,
antialiasingTolerance: 4,
ignoreCaret: true // ignore caret by default
},
callback
);
};
http
.createServer((req, res) => {
createDiff(() => {
const img = fs.readFileSync(diffImgPath, "binary");
res.write(img, "binary");
res.end();
});
})
.listen(8080);
مقارنة الصور بتجاهل علامة الإقحام
توفر مكتبة LooksSame المجانية وظائف لتجاهل علامة الإقحام في مربعات الإدخال أثناء مقارنة صورتين داخل تطبيقاتهما الخاصة. يمثل حرف الإقحام في عنصر إدخال النص ألمًا لمهام الانحدار البصري لأنه يومض دائمًا. في بعض الأحيان عند مقارنة مربعي نص أو صور مربعات إدخال ، نظرًا لأن الصورة تعطي علامة إقحام ، تفشل المقارنة في اختلاف البكسل. لذا يمكنك تجاهل خيار علامة الإقحام لتعطيل تجاهل مثل هذه الاختلافات.