图片字节获取基础
- 打开图片文件。
- 读取图片文件的内容。
- 将读取的内容转换为字节格式。
1. 打开图片文件
$fileHandle = fopen("image.jpg", "rb");
这里的"rb"模式表示以二进制读取模式打开文件。
2. 读取图片文件的内容
使用fread()函数可以读取文件指针指向的文件内容。例如,要读取整个文件的内容,可以使用以下代码:
$binaryData = fread($fileHandle, filesize("image.jpg"));
这里的filesize()函数用于获取文件的大小。
3. 将读取的内容转换为字节格式
读取的内容默认是字符串格式,如果需要将其转换为字节格式,可以使用bin2hex()函数。以下是一个完整的示例:
$fileHandle = fopen("image.jpg", "rb");
$binaryData = fread($fileHandle, filesize("image.jpg"));
fclose($fileHandle); // 关闭文件指针
// 转换为字节格式
$byteData = bin2hex($binaryData);
echo $byteData;
实例解析
1. 图片信息展示
list($width, $height, $type, $attr) = getimagesize("image.jpg");
echo "宽度: " . $width . "px<br>";
echo "高度: " . $height . "px<br>";
echo "类型: " . $type . "<br>";
echo "颜色深度: " . $attr . "<br>";
2. 图片加密
$binaryData = file_get_contents("image.jpg");
$key = "secretkey";
$encryptedData = "";
foreach (str_split($binaryData, 1) as $byte) {
$encryptedData .= dechex(ord($byte) ^ ord($key{strlen($encryptedData) % strlen($key)}));
}
file_put_contents("encrypted_image.jpg", hex2bin($encryptedData));
3. 图片验证码生成
$width = 100;
$height = 30;
$image = imagecreatetruecolor($width, $height);
$background_color = imagecolorallocate($image, 255, 255, 255);
imagefilledrectangle($image, 0, 0, $width, $height, $background_color);
// 添加验证码文本
$code = "1234";
$font_color = imagecolorallocate($image, 0, 0, 0);
imagestring($image, 5, 10, 5, $code, $font_color);
// 获取图片的字节数据
$binaryData = image2string($image);
// 保存图片
file_put_contents("captcha.jpg", $binaryData);