Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengekalkan Ketelusan Apabila Mengubah Saiz Imej PNG dengan Perpustakaan GD PHP?

Bagaimanakah Saya Boleh Mengekalkan Ketelusan Apabila Mengubah Saiz Imej PNG dengan Perpustakaan GD PHP?

Linda Hamilton
Linda Hamiltonasal
2024-12-09 01:36:12323semak imbas

How Can I Preserve Transparency When Resizing PNG Images with PHP's GD Library?

Memelihara Ketelusan dalam Imej PNG yang Disampel Semula Menggunakan imagecopyresampled GD

Dalam PHP, pustaka GD menyediakan fungsi imagecopyresampled untuk mengubah saiz imej. Walau bagaimanapun, apabila digunakan dengan imej PNG yang mempunyai kawasan lutsinar, ketelusan sering hilang, digantikan dengan warna pepejal.

Untuk menangani isu ini, langkah berikut adalah penting:

  1. Lumpuhkan Pengadunan Alpha:
    Sebelum saiz semula, lumpuhkan pengadunan alfa menggunakan fungsi pembolehubah imej dengan palsu sebagai argumen. Ini menghalang pencampuran warna imej sumber dengan imej sasaran.
  2. Dayakan Penjimatan Alfa:
    Pastikan ketelusan alfa dipelihara dalam imej diubah saiz dengan memanggil imagesavealpha dengan benar sebagai hujah. Ini mengarahkan imej sasaran untuk mengekalkan maklumat ketelusannya.

Berikut ialah coretan kod dikemas kini yang menggabungkan pelarasan ini:

$srcImage = imagecreatefrompng($uploadTempFile);
$targetImage = imagecreatetruecolor(128, 128);
imagealphablending($targetImage, false);
imagesavealpha($targetImage, true);

imagecopyresampled(...);

Dengan melaksanakan langkah-langkah ini, imej PNG yang diubah saiz akan memelihara ketelusannya dengan tepat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Ketelusan Apabila Mengubah Saiz Imej PNG dengan Perpustakaan GD 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