منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف نتأكد من أن البكسل الموجودة في الصورة تدعم الشفافية
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم و رحمة الله و بركاته

في برامج الصور و كمثال برنامج Paint الموجود في الويندوز و عندما تفتح صورة معينة و تقوم بالتعديل عليها و عندما تحاول أن تحفظها تجد ان البرنامج أحيانا يبعث لك رسالة تقول أنك سوف تفقد الشفافية الموجودة بالصورة

في واقع الأمر قبل ذلك كنت أتاكد من شفافية الصورة باستخدام كودا مطولا و لكن و بعد قراءتي لهذا الموضوع Image GetFlags و الموضوع مكتوب بلغة C وجدت كود بسيط جدا نسطيع منه ان نتأكد من أن البكسل الموجودة في الصورة Image تدعم الشفافية أم لا 

في الدوت نت الأمر يختلف قليلا عن لغة C حيث أن كل من الكلاس Bitmap و االكلاس Image كل منهم يمتلك Property  إسمها Flags ومنها نسترجع مجموع ImageFlags Enumeration  الموجودة في الصورة و واحد من هذه Flags اسمه ImageFlagsHasAlpha

و الدالة التالية توضح كيفية التاكد من كيفية أن البكسل الموجودة في الصورة تمتلك هذا Flag أم لا و هنا نحن نتأكد و ببساطة هل الصورة تدعم الشفافية أم لا ....... الدالة تسترجع قيمة عبارة عن Boolean




و يمكن استخدام الدالة كالأتي:
تعريف اي صورة ثم نمررها الي الداله لنتأكد من هل الصورة تدعم الشفافية أم لا

كود :
   Public Shared Function IsHasAlpha(bmp As Bitmap) As Boolean
       Return bmp IsNot Nothing AndAlso Not (bmp.Flags And Imaging.ImageFlags.HasAlpha) > Imaging.ImageFlags.None
   End Function


كود :
If IsHasAlpha(bmp) Then
   ' Do something
 Ent

في المرفقات ستجدون  مثالا لكيفية استخدام الدالة و المثال بنسخة الفيجوال استوديو 2012



تقبلوا تحياتي و بالتوفيق للجميع
بارك الله فيك

يعطيك العافية