وحدة معالجة الصور السريعة والسريعة في Node.js
Sharp هي وحدة معالجة صور تستخدم مكتبة libvips لتوفير معالجة سريعة لمشاريع Node.js.
Sharp هي وحدة صور سريعة المعالجة لمشاريع Node.js التي يتم تشغيلها بواسطة مكتبة معالجة الصور libvips. نتيجة لهذه الإضافة ، فإن Sharp مثل الاسم الذي يوحي به لها قوة معالجة عالية السرعة حيث إنها تخزن فقط مناطق قليلة من بيانات الصورة غير المضغوطة في الذاكرة لتحرير الكثير من طاقة وحدة المعالجة المركزية المستخدمة وذاكرة التخزين المؤقت L1 / L2 / L3
تتأكد المكتبة أيضًا من عدم إنتاج أي عمليات فرعية ودعم العمليات غير المتزامنة أو المنتظرة. كوحدة معالجة صور مفتوحة المصدر ، تدعم Sharp تنسيقات صور متعددة وبيانات بكسل خام غير مضغوطة أيضًا. للحصول على الأداء الأمثل ، تأكد من أنك تستخدم الإصدار 10 من Node.js وما بعده.
الشروع في العمل مع Sharp
الطريقة الموصى بها لتثبيت Sharp عبر NPM. الرجاء استخدام الأمر التالي لتثبيته.
قم بتثبيت Sharp عبر NPM
npm install sharp
تغيير حجم الصور عبر Free JavaScript API
تتيح مكتبة حادة مفتوحة المصدر لمطوري JavaScript تغيير حجم الصور برمجيًا. يتيح لك Sharp تحويل تنسيقات الصور الكبيرة إلى أحجام أصغر متوافقة مع تطبيقات الويب المختلفة. بمساعدة المكتبة الحادة ، تتمتع Sharp بسرعة معالجة صور أسرع من 4 إلى 5 مرات مقارنة بمحولات تنسيق الصور الأخرى مثل ImageMagick أو GraphicsMagick. تضمن Sharp عدم المساس بجودة الصورة من خلال وحدة إعادة تشكيل Lanczos.
قراءة وتغيير حجم الصور عبر JavaScript
const transformer = sharp()
.resize({
width: 200,
height: 200,
fit: sharp.fit.cover,
position: sharp.strategy.entropy
});
// Read image data from readableStream
// Write 200px square auto-cropped image data to writableStream
readableStream
.pipe(transformer)
.pipe(writableStream)
معالجة الصور عبر Free JavaScript API
تتيح المكتبة الحادة لمطوري البرامج معالجة الصورة في إطار عمل JavaScript. يمكنك إجراء عمليات الصورة مثل تغيير حجم الصورة ، والتدوير ، والاستخراج ، والتصحيح والتركيب. يتوافق Sharp مع أنظمة MacOS و Windows و Linux ولا يتطلب أي عمليات تثبيت إضافية عند استخدام الإصدار 10 من Node.js وما بعده.
استخراج صورة من منطقة عبر JavaScript
sharp(input)
.extract({ left: leftOffsetPre, top: topOffsetPre, width: widthPre, height: heightPre })
.resize(width, height)
.extract({ left: leftOffsetPost, top: topOffsetPost, width: widthPost, height: heightPost })
.toFile(output, function(err) {
// Extract a region, resize, then extract from the resized image
});
تدوير الصورة عبر JavaScript API
const rotateThenResize = await sharp(input)
.rotate(90)
.resize({ width: 16, height: 8, fit: 'fill' })
.toBuffer();
const resizeThenRotate = await sharp(input)
.resize({ width: 16, height: 8, fit: 'fill' })
.rotate(90)
.toBuffer();
العمل مع بيانات تعريف الصورة في تطبيقات JavaScript
تضمنت مكتبة حادة مفتوحة المصدر دعمًا كاملاً للعمل مع Image Metadata داخل تطبيقات JavaScript. توفر المكتبة وصولاً سريعًا إلى البيانات الوصفية للصور دون فك تشفير أي بيانات بكسل مضغوطة. لقد تضمن دعمًا للعديد من الخصائص المهمة مثل حجم الصورة ، التنسيق ، الارتفاع ، العرض ، العمق ، الكثافة ، المساحة ، المستويات ، الخلفية ، exif ، hasprofile ، الصفحة ، وغيرها الكثير. يمكنك أيضًا الوصول بسهولة إلى إحصائيات الصور المشتقة من البكسل لكل قناة في الصورة مثل الحد الأدنى ، والحد الأقصى ، والجمع ، والمتوسط ، والحدة ، والنتروبيا ، وغير ذلك الكثير.
الوصول إلى البيانات الوصفية للصور عبر JavaScript
const image = sharp(inputJpg);
image
.metadata()
.then(function(metadata) {
return image
.resize(Math.round(metadata.width / 2))
.webp()
.toBuffer();
})
.then(function(data) {
// data contains a WebP image half the width and height of the original JPEG
});