"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا تنتج imagecreatefrompng() خلفية سوداء بدلاً من منطقة شفافة؟

لماذا تنتج imagecreatefrompng() خلفية سوداء بدلاً من منطقة شفافة؟

تم النشر بتاريخ 2024-11-08
تصفح:281

Why does imagecreatefrompng() Produce a Black Background Instead of a Transparent Area?

هل تريد إنشاء خلفية سوداء بدلاً من المنطقة الشفافة؟

في PHP، يتم استخدام وظيفة imagecreatefrompng () بشكل شائع للعمل مع PNG الصور. ومع ذلك، فقد لوحظ أنه عند استخدام هذه الوظيفة، قد يتم تحويل شفافية PNG إلى لون أسود خالص.

لحل هذه المشكلة، يمكن تنفيذ الخطوات التالية بعد إنشاء لوحة قماشية جديدة باستخدام imagecreatetruecolor():

  1. تخصيص لون أسود: قم بتعيين لون أسود لمتغير عدد صحيح باستخدام imagecolorallocate () الوظيفة.
  2. إزالة اللون الأسود من الشفافية: استخدم وظيفة imagecolortransparent() لتعيين اللون الأسود باعتباره اللون الشفاف، مما يجعله غير مرئي بشكل فعال.
  3. تعطيل مزج ألفا. : استخدم imagealphablending() بقيمة خاطئة لمنع دمج قناة ألفا في الصورة الألوان.
  4. تمكين الحفاظ على قناة ألفا: استخدم imagesavealpha() بقيمة حقيقية للحفاظ على نطاق الشفافية الكامل.

من خلال تنفيذ هذه التعديلات، ألفا سيتم الحفاظ على معلومات القناة في صورة PNG، مما يمنع تحويلها إلى خلفية سوداء. ستكون التعليمات البرمجية المحدثة مشابهة لما يلي:

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3