」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼 imagecreatefrompng() 產生黑色背景而不是透明區域?

為什麼 imagecreatefrompng() 產生黑色背景而不是透明區域?

發佈於2024-11-08
瀏覽:672

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

imagecreatefrompng() 產生黑色背景而不是透明區域?

在 PHP 中,imagecreatefrompng() 函數通常用於處理 PNG映像。然而,據觀察,使用此函數時,PNG 透明度可能會轉換為純黑色。

要解決此問題,可以在使用imagecreatetruecolor() 建立新畫布後執行以下步驟:

  1. 分配黑色:使用imagecolorallocate() 函數將黑色分配給整數變數。
  2. 從透明度中刪除黑色: 利用 imagecolortransparent() 函數將黑色設定為透明顏色,有效地使其不可見。
  3. 停用 Alpha 混合: 使用 false 值的 imagealphablending() 來防止 Alpha 通道防止混合到影像的顏色。
  4. 啟用 Alpha 頻道保留: 使用具有真實值的 imagesavealpha() 來維持完整的透明度範圍。

By實施這些修改後,PNG 影像中的 Alpha 通道資訊將被保留,從而防止其轉換為黑色背景。更新後的程式碼將類似以下內容:

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3