Larutan
1. Buka perpustakaan gd2 dan lihat melalui phpinfo. Hapus BOM Kode ditulis mulai dari baris paling atas, sehingga masalah mungkin terjadi pada kode.
2. Tambahkan pernyataan ob_clean() sebelum header lalu jalankan.
Catatan
Saat membuat gambar, header('Content-type: image/png'); tidak boleh memiliki keluaran di depan. Atau, tambahkan: ob_clean(); Bahkan jika Anda menggunakan output, Anda dapat menggunakan kalimat ini untuk menghapus cache output.
Memecahkan contoh
//Atur tinggi dan lebar kode verifikasijumlah karakter di atas $img_w = 70; $img_h = 22; $font = 5; $char_len = 5; //Penggabungan array, fungsi range() mengembalikan array rentang $char = array_merge ( rentang ( 'a', 'z' ), rentang ( 'A', 'Z' ), rentang ( '1', '9' ) ); $rand_keys = array_rand ( $char, $char_len ); // Secara acak mengambil sejumlah elemen tertentu dari array untuk menghasilkan nilai kunci if ($char_len == 1) { //Jika hanya ada satu angka, array_rand() mengembalikan tipe non-array $rand_keys = larik ($rand_keys ); } shuffle($rand_keys); //Tidak perlu digunakan $kode = ''; foreach ( $rand_keys sebagai $k ) { $kode .= $char [$k]; } sesi_mulai(); $_SESSION ['captcha'] = $kode; //Tambahkan garis dan warna //Buat gambar baru $img = imagecreatetruecolor ( $img_w, $img_h ); //menetapkan warna $bg_color = alokasi warna gambar ( $img, 0xcc, 0xcc, 0xcc ); //Warna latar belakang kanvas isi gambar( $img, 0, 0, $bg_color ); //jalur interferensi untuk($i = 0; $i < 300; ++$i) { $warna = gambarwarnaallokasi ( $img, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) ); imagesetpixel ( $img, mt_rand ( 0, $img_w ), mt_rand ( 0, $img_h ), $warna ); } untuk($i = 0; $i <= 10; ++ $i) { //Mengatur warna garis $warna = imageColorAllocation ( $img, mt_rand ( 0, 255 ), mt_rand ( 0, 255 ), mt_rand ( 0, 255 ) ); //Gambarlah garis lurus secara acak pada gambar $img imageline ( $img, mt_rand ( 0, $img_w ), mt_rand ( 0, $img_h ), mt_rand ( 0, $img_w ), mt_rand ( 0, $img_h ), $color ); //imagesetpixel($img,mt_rand(0,$img_w),mt_rand(0,$img_h),$warna); } //Tambahkan bingkai $rect_color = alokasi warna gambar ( $img, 0x90, 0x90, 0x90 ); gambarpersegi panjang ( $img, 0, 0, $img_w - 1, $img_h - 1, $rect_color ); $str_color = alokasi warna gambar ( $img, mt_rand ( 0, 100 ), mt_rand ( 0, 100 ), mt_rand ( 0, 100 ) ); $font_w = lebar font gambar ($font ); $font_h = gambarfonteight ($font ); $str_len = $font_w * $char_len; string gambar ( $img, $font, ($img_w - $str_len) / 2, ($img_h - $font_h) / 2, $code, $str_color );
Di atas adalah solusi dari masalah php tidak bisa generate gambar, semoga bermanfaat untuk semuanya.