عزّز تطبيق Blazor الخاص بك: تحسين سهل للصور باستخدام BlazorImage

Blazor
Image Optimization
BlazorImage
Lazy Loading
Responsive Images

عزّز تطبيق Blazor الخاص بك: تحسين سهل للصور باستخدام BlazorImage

في مشهد تطوير الويب اليوم، يعد تحسين الصور أمرًا بالغ الأهمية لتقديم تجارب مستخدم سريعة وجذابة. يمكن أن تؤدي الصور الكبيرة وغير المحسّنة إلى تباطؤ تطبيقات Blazor الخاصة بك بشكل كبير، مما يؤدي إلى إحباط المستخدمين وتصنيفات SEO ضعيفة. ولكن ماذا لو كان بإمكانك أتمتة هذه العملية بسلاسة داخل مشاريع Blazor الخاصة بك؟

نقدم لكم BlazorImage، وهي مكتبة قوية وسهلة الاستخدام لتحسين الصور مصممة خصيصًا لتطبيقات Blazor. سواء كنت تقوم ببناء مواقع ويب ثابتة أو تطبيقات تفاعلية من جانب الخادم، يوفر BlazorImage مجموعة شاملة من الميزات لضمان أن صورك دائمًا صغيرة الحجم وفعالة وسريعة للغاية.

تحدي تحسين الصور في Blazor

يمكن أن يكون تحسين الصور يدويًا مهمة شاقة وتستغرق وقتًا طويلاً. غالبًا ما يحتاج المطورون إلى التوفيق بين أدوات وتقنيات متعددة لتغيير حجم الصور وضغطها وتحويلها إلى التنسيقات الأكثر كفاءة. يمكن أن تصبح هذه العملية أكثر تعقيدًا عند التعامل مع التصميمات المستجيبة والحاجة إلى عرض أحجام صور مختلفة للأجهزة المتنوعة.

نقدم لكم BlazorImage: حليفكم في تحسين صور Blazor

يبسط BlazorImage سير العمل هذا بالكامل من خلال توفير طريقة سهلة الاستخدام للمطورين لتحسين الصور تلقائيًا مباشرة داخل تطبيق Blazor الخاص بك. تتعامل هذه المكتبة مع المهام الصعبة، مما يسمح لك بالتركيز على بناء واجهات مستخدم مذهلة دون القلق بشأن تعقيدات تحسين الصور.

الميزات الرئيسية التي تجعل BlazorImage يتألق

يأتي BlazorImage مزودًا بميزات مصممة لتحسين صورك لتحقيق أقصى أداء:

  • 🚀 تحسين تلقائي للصور: قل وداعًا للتحسين اليدوي! يقوم BlazorImage بمعالجة صورك تلقائيًا بناءً على الإعدادات التي قمت بتكوينها.
  • 🖼️ دعم تنسيقات متعددة: استخدم تنسيقات الصور الحديثة مثل WebP و AVIF لضغط وجودة فائقتين، بالإضافة إلى التنسيقات التقليدية مثل JPEG و PNG.
  • 🔄 التحميل الكسول المدمج: حسِّن أوقات تحميل الصفحة الأولية عن طريق تأجيل تحميل الصور خارج الشاشة حتى تصبح على وشك الظهور.
  • 📱 صور مستجيبة مع توجيه فني: قدم حجم الصورة المناسب والاقتصاص المناسب لأحجام الشاشات والسياقات المختلفة، مما يضمن تجارب مشاهدة مثالية عبر جميع الأجهزة.
  • ⚡ دعم العرض الثابت والتفاعلي: سواء كنت تستخدم Blazor Server أو Blazor WebAssembly، فإن BlazorImage يدعمك.
  • 🛠️ وضع المطور: يمكنك بسهولة تصحيح وتفقد كيفية معالجة صورك أثناء التطوير.
  • 🎨 جودة صورة قابلة للتخصيص: اضبط مستوى الضغط لتحقيق التوازن بين جودة الصورة وحجم الملف.
  • 📏 التحكم في أبعاد الصورة: حدد أبعادًا دقيقة أو قصوى لصورك.
  • 🖌️ فئات وأنماط CSS مخصصة: يمكنك دمج الصور المحسّنة بسهولة في تصميمك الحالي باستخدام فئات CSS مخصصة وأنماط مضمنة.
  • 📦 خفيف الوزن وسهل الاستخدام: تم تصميم BlazorImage ليكون خفيف الوزن ويتكامل بسلاسة مع مشروع Blazor الخاص بك.
  • 📊 تتبع التقدم (لمعالجة الصور): ابق على اطلاع بحالة معالجة الصور.

البدء مع BlazorImage

هل أنت مستعد لإطلاق قوة BlazorImage في تطبيق Blazor الخاص بك؟ إليك دليل خطوة بخطوة:

المتطلبات الأساسية

تأكد من تثبيت .NET 9.0 أو إصدار أعلى. يمكنك تنزيله من موقع .NET الرسمي.

التثبيت

قم بتثبيت حزمة BlazorImage NuGet عن طريق إضافة السطر التالي إلى ملف .csproj الخاص بمشروعك داخل علامة <ItemGroup>:

<PackageReference Include="BlazorImage" Version="1.0.1" />

ثم أضف مساحة اسم BlazorImage إلى ملف _Imports.razor الخاص بك:

@using BlazorImage;

إعداد الخدمات

افتح ملف Program.cs الخاص بك وقم بتسجيل خدمات BlazorImage داخل طريقة ConfigureServices:

builder.Services.AddBlazorImage();
نقاط النهاية الاختيارية (مرحلة التطوير)

أثناء التطوير، يمكنك تمكين نقاط النهاية لإدارة ذاكرة التخزين المؤقت للصور. أضف ما يلي إلى ملف Program.cs الخاص بك داخل طريقة Configure:

app.MapBlazorImage("/blazor/images");
التكوين

قم بتخصيص BlazorImage ليناسب احتياجاتك الخاصة عن طريق توفير خيارات التكوين أثناء تسجيل الخدمة:

builder.Services.AddBlazorImage(options =>
{
    // الجودة الافتراضية للصور المعالجة (15-100). القيمة الافتراضية = 75
    options.DefaultQuality = 80;

    // تنسيق الملف الافتراضي للصور المعالجة (على سبيل المثال، "webp"، "jpeg"). الافتراضي هو "webp"
    options.DefaultFileFormat = FileFormat.webp;

    // مسار تخزين الصور المعالجة. الافتراضي هو "_blazor"
    options.Dir = "_output";

    // مصفوفة من الأحجام لتكوين الصورة. الأحجام الافتراضية [480، 640، 768، 1024، 1280، 1536]
    options.ConfigSizes = new int[] { 640, 1024, 1280 };

    // عرض نسبة العرض إلى الارتفاع للصور. الافتراضي هو 1.0
    options.AspectWidth = 1.0;

    // ارتفاع نسبة العرض إلى الارتفاع للصور. الافتراضي هو 1.0
    options.AspectHeight = 1.0;

    // وقت انتهاء الصلاحية المطلق بالنسبة للوقت الحالي للصور المخزنة مؤقتًا. الافتراضي هو 720 ساعة (30 يومًا).
    options.AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(720);

    // وقت انتهاء الصلاحية المنزلق للصور المخزنة مؤقتًا. الافتراضي هو فارغ.
    options.SlidingExpiration = null;
});

الاستخدام في مكوناتك

يمكنك الآن البدء في استخدام مكوني Image و Picture في صفحات ومكونات Blazor الخاصة بك.

إضافة السكربت و CSS

في ملف App.razor الخاص بك، أضف السكربت والرابط التاليين داخل <head> أو <body>:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>تطبيق Blazor الخاص بك</title>
    <base href="/" />
    <link rel="stylesheet" href="css/app.css" />
    <link rel="stylesheet" href="YourProjectName.styles.css" />
    <link rel="stylesheet" href="_content/BlazorImage/BlazorImage.min.css" /> </head>
<body>
    <Routes />
    <script src="_framework/blazor.web.js"></script>
    <script src="_content/BlazorImage/BlazorImage.min.js"></script> </body>
</html>

ملاحظة: استبدل YourProjectName باسم مشروع Blazor الفعلي الخاص بك.

استخدام مكون Image

مكون Image هو الطريقة الأساسية لعرض الصور المحسّنة. إليك مثال:

<Image Src="images/my-image.jpg"
       Alt="منظر طبيعي جميل"
       Width="800"
       Height="600"
       LazyLoading="true"
       Title="منظر طبيعي"
       CssClass="rounded-image"
       WrapperClass="image-container"
       Style="border: 1px solid #eee;"
       WrapperStyle="margin-bottom: 20px;"
       Quality="75"
       Format="FileFormat.webp"
       Sizes="(max-width: 768px) 100vw, 800px"
       EnableDeveloperMode="true" />
استخدام مكون Picture

بالنسبة للسيناريوهات الأكثر تقدمًا مع مصادر صور متعددة (على سبيل المثال، لنقاط توقف مختلفة أو تنسيقات صور)، يمكنك استخدام مكون Picture:

<Picture Src="images/main-image.jpg"
         Alt="عرض المنتج"
         Width="1200"
         Height="900"
         LazyLoading="true"
         Title="أحدث منتجاتنا"
         CssClass="product-image"
         WrapperClass="product-wrapper"
         Style="box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);"
         WrapperStyle="text-align: center;"
         Quality="85"
         Format="FileFormat.avif"
         Sizes="(max-width: 600px) 100vw, (max-width: 1200px) 80vw, 1200px"
         CaptionClass="image-caption"
         Caption="نقدم لكم منتجنا الثوري!"
         EnableDeveloperMode="false" />

فوائد تبني BlazorImage

من خلال دمج BlazorImage في تطبيقات Blazor الخاصة بك، يمكنك توقع:

  • تحسين أداء الموقع: تؤدي أحجام الصور الأصغر والتحميل الكسول إلى أوقات تحميل أسرع للصفحة.
  • تجربة مستخدم محسّنة: تؤدي أوقات التحميل الأسرع إلى مستخدمين أكثر سعادة وتفاعلاً.
  • تصنيفات SEO أفضل: سرعة الصفحة عامل مهم في تحسين محركات البحث.
  • تبسيط سير عمل التطوير: قم بأتمتة تحسين الصور وركز على بناء الميزات الأساسية لتطبيقك.
  • دعم تنسيقات الصور الحديثة: استفد من مزايا تنسيقات الصور من الجيل التالي مثل WebP و AVIF.

القيود التي يجب وضعها في الاعتبار

نظرًا لأن BlazorImage مكتبة جديدة، فمن المهم أن تكون على دراية بقيودها الحالية:

  • لا يزال BlazorImage في مراحله الأولى وقد يكون لديه بعض القيود أو المجالات التي تحتاج إلى تحسين.
  • حاليًا، يدعم فقط الصور المحلية. تحسين الصور البعيدة غير متاح بعد.
  • يتطلب .NET 9.0 أو أعلى.

الخلاصة: حسّن صور Blazor الخاصة بك اليوم!

يقدم BlazorImage حلاً قويًا ومريحًا لتحسين الصور في تطبيقات Blazor الخاصة بك. إن سهولة استخدامه ومجموعة الميزات الشاملة والتركيز على الأداء يجعله أداة لا تقدر بثمن لأي مطور Blazor يتطلع إلى تقديم تجارب ويب سريعة وجذابة بصريًا. جرب BlazorImage وشاهد الفرق الذي يمكن أن يحدثه في أداء تطبيقك!

Saif Saidi (Saif Al-Saidi)

Software Engineer

I'm a Software Engineer and a passionate learner. Full Stack Dotnet Developer, C#/JS Developer.