添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

根据图片路径转换成二进制

图片路径:

$image_file = 'http://pic308.nipic.com/file/20200712/29730056_103807407683_2.jpg'; // 远程图片
$image_file = '1.jpg'; // 本地图片

方法一(不支持远程图片):

$image_data = @fread(fopen($image_file, 'r'), filesize($image_file));

方法二(支持远程图片):

$image_data = file_get_contents($image_file);

如果想在浏览器上输出二进制图片:

$imageInfo = @getimagesize($image_file);  //图片格式
$imgType = isset($imageInfo['mime']) ? $imageInfo['mime'] : 'image/jpeg';
$imageData = file_get_contents($image_file);  //图片转为二进制
header("Content-type: ".$imgType);  //输出图片(image/jpeg,image/png等)
echo $imageData;
exit;

根据图片路径转换成base64的方法( 先转换成二进制再进行base64encode

//方法一(不支持远程图片):
function base64Img1 ($image_file) {
    $base64_image = '';
    $image_info = getimagesize($image_file);
    $image_data = @fread(fopen($image_file, 'r'), filesize($image_file));
    $base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
    return $base64_image;
//方法二(支持远程图片):
function base64Img2($image_file) {
    $base64_image = '';
    $image_info = getimagesize($image_file);
    $image_data = file_get_contents($image_file);
    $base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
    return $base64_image;
}

输出base64图片:

$imgBase64Str = base64Img2($image_file);
echo '<img src="'.$imgBase64Str.'">';

base64格式图片转化为二进制流

$imgArr = explode(',', $base64Str); 
//截取data:image/png;base64, 这个逗号后的字符
$imgStr = end($imgArr);
$imgData = base64_decode($imgStr);

如果要输出图片:

header("Content-type: image/jpeg");
echo $imgData;


上一篇: PHP中DES对称加密openssl特殊字符加密解密失败问题解决 下一篇: Postman打开报错Could not open Postman…问题解决 赞( 8 ) 踩( 0 )