Node.js API رایگان برای مقایسه تصویر
API مبتنی بر Node.js منبع باز که تصاویر را پیکسل به پیکسل مقایسه می کند. یک راه حل قدرتمند، انعطاف پذیر و کارآمد برای مقایسه تصویر در برنامه های Node.js.
مقایسه تصویر نقشی حیاتی در توسعه نرمافزار ایفا میکند، بهویژه در زمینههایی مانند تست رگرسیون بصری، تضمین کیفیت تصویر، و تأیید طراحی کامل پیکسل. چه در حال توسعه نرمافزاری برای اطمینان از ظاهر یکپارچه رابط کاربری در چندین پلتفرم باشید یا بررسی خودکار بصری در خط لوله تولید، داشتن یک ابزار مقایسه تصویر کارآمد ضروری است. LooksSame، یک API منبع باز توسعه یافته توسط Gemini-Testing، فرآیند ایجاد نرم افزار برای مقایسه تصویر را با ویژگی های بصری خود ساده می کند. چندین ویژگی مهم در کتابخانه وجود دارد، مانند مقایسه تصویر پیکسل به پیکسل، تشخیص ضد aliasing، پیکربندی کنترل تحمل، مدیریت ابعاد تصویر، پشتیبانی از Promises و بسیاری موارد دیگر.
LooksSame یک API مبتنی بر Node.js است که برای مقایسه تصویر طراحی شده است. این به توسعه دهندگان اجازه می دهد تصاویر را پیکسل به پیکسل با گزینه هایی برای مدیریت تغییرات جزئی که ممکن است به دلیل تفاوت در محیط های رندر رخ دهد، مقایسه کنند. با استفاده از کتابخانه، توسعهدهندگان نرمافزار میتوانند برنامههای کاربردی خود را بسازند که تفاوتهای بصری قابل توجهی را تشخیص میدهند و در عین حال تغییرات بیاهمیت را نادیده میگیرند. API در درجه اول بر کمک به توسعه دهندگان برای حفظ ثبات در طراحی UI متمرکز است، اما تطبیق پذیری آن باعث می شود برای بسیاری از موارد استفاده مقایسه تصویر دیگر مناسب باشد. LooksSame با داشتن API ساده و گزینههای قابل تنظیم، افزودنی عالی برای ابزار هر توسعهدهندهای است، بهویژه برای آزمایش UI مبتنی بر وب، تولید خودکار تصویر و سایر سناریوهایی که در آن دقت بصری در اولویت قرار دارد.
شروع به کار با LooksSame
روش توصیه شده برای نصب LooksSame استفاده از NPM است. لطفا از دستور زیر برای نصب راحت استفاده کنید.
LooksSame را از طریق NPM نصب کنید
npm install looks-same
مقایسه تصویر اصلی در برنامههای Node.js
کتابخانه منبع باز LooksSame انجام مقایسه اولیه تصاویر را در برنامه های Node.js برای توسعه دهندگان نرم افزار آسان می کند. پس از نصب، می توانید دو تصویر را با نیاز به ماژول LooksSame در کد خود مقایسه کنید. در اینجا یک مثال اساسی آورده شده است که نحوه استفاده از کتابخانه برای بررسی اینکه آیا دو تصویر از نظر بصری یکسان هستند استفاده می شود: در این مثال، image1.png و image2.png را مقایسه می کند. اگر آنها از نظر بصری یکسان باشند، برابر به درستی بر می گردد. در غیر این صورت، false را برمی گرداند.
چگونه دو تصویر را در برنامه های Node.js مقایسه کنیم؟
const looksSame = require('looks-same');
// Compare two images
looksSame('image1.png', 'image2.png', (error, { equal }) => {
if (error) {
console.error('Error comparing images:', error);
} else if (equal) {
console.log('Images are identical!');
} else {
console.log('Images differ!');
}
});
مقایسه تصویر مبتنی بر تحمل
برای برنامههایی که به مطابقت کامل پیکسلی نیاز ندارند، توسعهدهندگان نرمافزار میتوانند سطح تحمل اضافه کنند. این اجازه می دهد تا تفاوت های کوچک بین تصاویر، مانند تغییرات ناشی از رندر در مرورگرها یا سیستم عامل های مختلف، نادیده گرفته شود. در مثال کد زیر، میزان تحمل روی 5٪ تنظیم شده است، به این معنی که تغییرات کوچک پیکسل (تا 5٪) باعث نمی شود که تصاویر متفاوت در نظر گرفته شوند.
چگونه مقایسه تصویر مبتنی بر تحمل را در برنامه های Node.js انجام دهیم؟
cfunction compareWithTolerance(image1, image2, toleranceLevel) {
looksSame(image1, image2, { tolerance: toleranceLevel }, (error, { equal }) => {
if (error) {
console.error('Error comparing images:', error);
} else if (equal) {
console.log('Images are visually identical within tolerance!');
} else {
console.log('Images differ!');
}
});
}
// Usage
compareWithTolerance('image1.png', 'image2.png', 5); // 5% tolerance
برجسته کردن مناطق خاص تفاوت
برای برنامههای پیچیدهتر، توسعهدهندگان نرمافزار ممکن است بخواهند تنها حوزههای متفاوتی را شناسایی و تجزیه و تحلیل کنند. کتابخانه LooksSame یک ویژگی جعبه مرزی را ارائه می دهد که منطقه دقیقی را که در آن تفاوت ها رخ می دهد را نشان می دهد. این تابع مختصات جعبه مرزی نواحی مختلف را خروجی میدهد و تمرکز روی بخشهای خاصی از تصویر را که تغییر کردهاند آسانتر میکند. مثال زیر نحوه استفاده از مختصات جعبه مرزی را برای مقایسه تصاویر و برجسته کردن تفاوت ها نشان می دهد.
چگونه تفاوتهای بین مناطق خاص تصاویر را از طریق برنامههای Node.js شناسایی کنیم؟
function compareWithDiffBounds(image1, image2) {
looksSame(image1, image2, (error, { diffBounds }) => {
if (error) {
console.error('Error comparing images:', error);
} else {
console.log('Bounding box of differences:', diffBounds);
}
});
}
// Usage
compareWithDiffBounds('image1.png', 'image2.png');
تشخیص Anti-Aliasing برای مقایسه دقیق
کتابخانه منبع باز LooksSame به توسعه دهندگان نرم افزار اجازه می دهد تا فشرده سازی تصاویر را با استفاده از روش تشخیص Anti-Aliasing در برنامه های Node.js انجام دهند. Anti-aliasing می تواند هنگام مقایسه تصاویر باعث ایجاد مثبت کاذب شود، زیرا تغییرات جزئی در رندر لبه ایجاد می کند. گزینه ignoreAntialiasing کتابخانه به جلوگیری از این موارد مثبت کاذب کمک می کند. این به ویژه برای برنامههایی مفید است که در آنها ممکن است تصاویر در دستگاهها یا مرورگرهای مختلف بهطور متفاوتی رندر شوند، اما همچنان از نظر بصری یکسان هستند.