Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Latar Belakang PNG Saya Menjadi Hitam Apabila Menggunakan imagecreatefrompng() dalam PHP?

Mengapa Latar Belakang PNG Saya Menjadi Hitam Apabila Menggunakan imagecreatefrompng() dalam PHP?

Linda Hamilton
Linda Hamiltonasal
2024-11-05 16:17:02221semak imbas

Why Does My PNG Background Turn Black When Using imagecreatefrompng() in PHP?

Menyelesaikan Masalah Ketelusan dengan imagecreatefrompng()

Fungsi imagecreatefrompng() PHP biasanya digunakan untuk mencipta lakaran kecil imej. Walau bagaimanapun, pengguna mungkin menghadapi masalah di mana latar belakang telus PNG menjadi warna hitam pejal. Masalah ini boleh mengecewakan, terutamanya apabila mengekalkan ketelusan adalah penting.

Untuk menyelesaikan isu ini, adalah perlu untuk mengubah suai output fungsi imagecreatefrompng() dan mengkonfigurasi tetapan khusus untuk mengekalkan ketelusan. Berikut ialah penjelasan tentang perkara yang perlu diubah:

  1. Selepas fungsi imagecreatetruecolor():

    • Tambah pernyataan suis untuk mengendalikan imej yang berbeza jenis (GIF dan PNG) secara khusus.
    • Untuk imej GIF dan PNG, gunakan imagecolorallocate() untuk mencipta perwakilan integer bagi warna hitam (0,0,0).
    • Gunakan imagecolortransparent( ) untuk mengalih keluar hitam daripada latar belakang pemegang tempat.
    • Lumpuhkan pengadunan alfa menggunakan imagealphablending() dengan hujah palsu.
    • Dayakan penyimpanan maklumat saluran alfa menggunakan imagesavealpha() dengan hujah yang benar.

Pengubahsuaian ini memastikan maklumat saluran alfa dipelihara, menghalang latar belakang lutsinar daripada menjadi hitam. Akibatnya, ketelusan PNG akan dikekalkan dan lakaran kecil akan mencerminkan imej asal dengan tepat.

Atas ialah kandungan terperinci Mengapa Latar Belakang PNG Saya Menjadi Hitam Apabila Menggunakan imagecreatefrompng() dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn