


Bagaimana untuk menukar binari kepada imej dalam php
Dengan kemajuan teknologi maklumat yang berterusan dan peningkatan Web 2.0, permintaan orang ramai untuk maklumat multimedia semakin tinggi dan lebih tinggi format gambar seperti PNG, JPG dan GIF telah menjadi bahagian yang amat diperlukan dalam kehidupan kita. Memandangkan kod PHP adalah bahasa yang paling banyak digunakan dalam pembangunan web, cara menukar binari kepada imej telah menjadi salah satu kemahiran asas yang perlu dikuasai oleh pengaturcara.
1. Penukaran antara binari dan heksadesimal
Sebelum mempelajari cara menukar binari kepada gambar, kita perlu menguasai penukaran bersama antara binari dan perenambelasan. Sekumpulan 8 bit perduaan, iaitu, satu bait sebagai unit, boleh mewakili integer antara 0 dan 255 dan setiap empat bit perduaan sepadan dengan nombor perenambelasan, iaitu, satu bait menggunakan dua digit perwakilan. Sebagai contoh, nombor perduaan 11001000 sepadan dengan nombor heksadesimal 0xC8, dan nombor perenambelasan 0x50 sepadan dengan nombor perduaan 01010000.
Kita boleh menggunakan fungsi sprintf PHP untuk menukar integer dalam mana-mana asas kepada rentetan asas dengan bilangan digit yang ditentukan. Sebagai contoh, untuk menukar integer yang diwakili oleh $int kepada rentetan binari 8 digit, anda boleh menggunakan kod berikut:
$bin = sprintf("%08b", $int);
Begitu juga, untuk menukar integer yang diwakili oleh $int menjadi 2 digit rentetan perenambelasan Untuk rentetan binari, anda boleh menggunakan kod berikut:
$hex = sprintf("%02x", $int);
2. Tukar binari kepada imej
Seterusnya, kita akan belajar cara menukar rentetan binari kepada imej PNG. Format imej PNG menyokong pelbagai warna ketelusan tanpa kehilangan mampatan, jadi ia digunakan secara meluas dalam pembangunan web.
Pertama, kita perlu mentakrifkan pembolehubah $binari untuk menyimpan tatasusunan bait yang ditukar daripada rentetan binari. Untuk imej PNG warna sebenar (RGB) 24-bit, nilai pikselnya terdiri daripada 3 bait nilai RGB Oleh itu, semasa proses penukaran, rentetan binari perlu dipotong kepada kumpulan 3 bait. Selepas pembahagian selesai, setiap kumpulan bait boleh digunakan sebagai nilai tiga saluran RGB untuk menjana tatasusunan piksel imej PNG. Selepas menjana tatasusunan piksel, gunakan fungsi imagepng untuk menulis tatasusunan piksel ke dalam fail imej PNG untuk menghasilkan imej PNG.
Kod lengkap adalah seperti berikut:
//将二进制字符串转为PNG图片 function binaryToPNG($binary, $width, $height) { //计算像素数组的长度(每个像素由3个字节的RGB值组成) $len = strlen($binary); $pixelLen = $len / 3; //通过imagecreatetruecolor函数创建一个PNG图片的像素数组 $im = imagecreatetruecolor($width, $height); //遍历二进制字符串,将每一组3个字节的值分别作为RGB三通道的值,并生成像素数组 for ($i = 0; $i < $pixelLen; $i++) { $r = ord($binary[$i * 3]); $g = ord($binary[$i * 3 + 1]); $b = ord($binary[$i * 3 + 2]); imagesetpixel($im, $i % $width, floor($i / $width), imagecolorallocate($im, $r, $g, $b)); } //使用imagepng函数将像素数组写入PNG图片文件中,从而生成PNG图片 header('Content-Type:image/png'); imagepng($im); imagedestroy($im); }
Akhir sekali, kita juga perlu menukar rentetan binari kepada tatasusunan bait PHP sebelum kita boleh mengendalikannya dalam fungsi binaryToPNG. Untuk rentetan binari dalam bentuk "0100101010101001010...", anda boleh menggunakan kod berikut untuk menukarnya menjadi tatasusunan bait PHP:
$binary = pack("B*", $binaryString);
3 🎜>Sepadan dengan menukar binari kepada imej, kita juga perlu menukar imej kepada rentetan binari. Dalam proses ini, anda boleh menggunakan fungsi imagecreatefrompng untuk membaca imej PNG sebagai tatasusunan piksel, kemudian gunakan fungsi imagecolorat untuk mendapatkan nilai RGB bagi setiap piksel, dan akhirnya sambungkan nilai RGB ke dalam rentetan binari. Kod lengkap adalah seperti berikut:
4. Ringkasan//将PNG图片转为二进制字符串 function pngToBinary($file) { //通过imagecreatefrompng函数将PNG图片读取为像素数组 $im = imagecreatefrompng($file); $width = imagesx($im); $height = imagesy($im); $binary = ''; //遍历像素数组,获取每个像素的RGB值,拼接成一组二进制字符串 for ($y = 0; $y < $height; $y++) { for ($x = 0; $x < $width; $x++) { $rgb = imagecolorat($im, $x, $y); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $binary .= sprintf("%02x%02x%02x", $r, $g, $b); } } return $binary; }
Artikel ini memperincikan cara menukar rentetan binari kepada imej PNG dan cara menukar imej PNG kepada rentetan binari. Melalui pembelajaran, kita bukan sahaja dapat menguasai kaedah penukaran bersama antara binari dan perenambelasan dalam PHP, tetapi juga cara mengendalikan gambar dalam kod PHP. Dalam pembangunan sebenar, kemahiran asas ini boleh membantu kami menyelesaikan operasi berkaitan multimedia dengan lebih baik dan memberikan sokongan yang kuat untuk pembangunan Web.
Atas ialah kandungan terperinci Bagaimana untuk menukar binari kepada imej dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Artikel ini membincangkan kelemahan OWASP 10 dalam strategi PHP dan mitigasi. Isu -isu utama termasuk suntikan, pengesahan yang rosak, dan XSS, dengan alat yang disyorkan untuk memantau dan mendapatkan aplikasi PHP.

Kompilasi JIT Php 8 meningkatkan prestasi dengan menyusun kod yang sering dilaksanakan ke dalam kod mesin, memberi manfaat kepada aplikasi dengan pengiraan berat dan mengurangkan masa pelaksanaan.

Artikel ini membincangkan mendapatkan muat naik fail PHP untuk mengelakkan kelemahan seperti suntikan kod. Ia memberi tumpuan kepada pengesahan jenis fail, penyimpanan selamat, dan pengendalian ralat untuk meningkatkan keselamatan aplikasi.

Artikel ini membincangkan penyulitan simetri dan asimetrik dalam PHP, membandingkan kesesuaian, prestasi, dan perbezaan keselamatan mereka. Penyulitan simetri lebih cepat dan sesuai untuk data pukal, manakala asimetrik digunakan untuk pertukaran utama yang selamat.

Artikel ini membincangkan pelaksanaan pengesahan dan kebenaran yang mantap dalam PHP untuk mencegah akses yang tidak dibenarkan, memperincikan amalan terbaik dan mengesyorkan alat peningkatan keselamatan.

Artikel ini membincangkan strategi untuk melaksanakan kadar API yang mengehadkan PHP, termasuk algoritma seperti baldi token dan baldi bocor, dan menggunakan perpustakaan seperti simfoni/kadar-limiter. Ia juga meliputi pemantauan, had kadar penyesuaian secara dinamik, dan tangan

Artikel membincangkan amalan terbaik untuk pengesahan input PHP untuk meningkatkan keselamatan, memberi tumpuan kepada teknik seperti menggunakan fungsi terbina dalam, pendekatan putih, dan pengesahan sisi pelayan.

Artikel ini membincangkan strategi untuk mencegah serangan CSRF di PHP, termasuk menggunakan token CSRF, kuki tapak yang sama, dan pengurusan sesi yang betul.
