zoukankan      html  css  js  c++  java
  • PHP mjpeg 连续图片格式生成

    使用PHP生产mjpeg格式图片。
    在HTML直接在img的src访问。
    <img src="./mjpeg2.php">

    <?php
    
    // https://github.com/donatj/mjpeg-php
    
    date_default_timezone_set("PRC");
    error_reporting(E_ALL & ~E_NOTICE);
    
    // Used to separate multipart
    $boundary = "spiderman";
    
    // We start with the standard headers. PHP allows us this much
    header("Cache-Control: no-cache");
    header("Cache-Control: private");
    header("Pragma: no-cache");
    header("Content-type: multipart/x-mixed-replace; boundary=$boundary");
    
    // Set this so PHP doesn't timeout during a long stream
    set_time_limit(0);
    
    $w = 400;
    $h = 100;
    $i = 0;
    $first = true;
    while(true) {
        $i++;
        
        // 加载图片
        $im = imagecreatefromjpeg("./cache/1.jpg");
        //$im = imagecreatetruecolor($w, $h);
        $fill_color = imagecolorallocate($im, 255, 255, 255);
        imagefill($im,1,1,$fill_color);
        
        // 写字
        $text_color = imagecolorallocate($im, 0, 0, 0);
        imagestring($im, 7, 5, 5,  $i . '# ' . date('Y-m-d H:i:s'), $text_color);
        
        // 绘制方框
        $fill_color = imagecolorallocate($im, 0, 255 - $i * 2, $i * 2);
        imagefilledrectangle($im, 10, 50, 30 + $i * 2, 70, $fill_color);
        // 注意:当未加载图片时,方框宽度大于200时就不显示了。
    
        ob_start();
        echo "--$boundary
    ";
        echo "Content-type: image/jpeg
    
    ";
        imagejpeg($im);
        imagedestroy($im);
        echo ob_get_clean(); 
        
        flush();
        
        // 空图片 ???当未加载图片时,不知道为什么,不添加空图片会导致图片不连续
        // $im = imagecreatetruecolor($w, $h);
        // ob_start();
        // echo "--$boundary
    ";
        // echo "Content-type: image/jpeg
    
    ";
        // imagejpeg($im, null, 1);
        // imagedestroy($im);
        // echo ob_get_clean();
        // flush();
        
        // 延迟
        usleep($first ? 0 : 1000000);
        $first = false;
    
        if($i==99)$i=0;
    }

    欢迎转载,转载请注明:转载自[ http://www.cnblogs.com/zjfree/ ]
  • 相关阅读:
    JPEG/PNG/GIF图片格式简析
    js-JavaScript常见的创建对象的几种方式
    js-ES6学习笔记-let命令
    js-权威指南学习笔记21
    js-jQuery性能优化(二)
    【读书笔记】iOS-Apple的移动设备硬件
    【读书笔记】iOS-属性中的内存管理参数
    【读书笔记】iOS-自动释放池
    【读书笔记】iOS-分类与协议
    【读书笔记】iOS-动态类型和动态绑定
  • 原文地址:https://www.cnblogs.com/zjfree/p/14437301.html
Copyright © 2011-2022 走看看