PHP Crop DataURL并返回DataURL

时间:2015-12-12 18:52:03

标签: php gd


我正在尝试使用GD库制作一个PHP脚本来裁剪dataURL并返回另一个dataURL,但我总是会遇到错误,我该如何解决?

if(isset($_GET['render'])) {
    if((isset($_GET['render_x'])) && (isset($_GET['render_y']))) {
        if(isset($_GET['dataURL'])) {
            $image = $_GET['dataURL']; // the image to crop
            $image = substr($image,22);
            $img = imagecreatetruecolor('200','150');
            $org_img = imagecreatefromstring(base64_decode($image));
            imagecopy($img,$org_img, 0, 0, 20, 20, 200, 150);
            ob_start(); 
            imagepng($img);
            $image_data = ob_get_contents(); 
            ob_end_clean (); 
            $image_data_base64 = base64_encode($image_data);
            imagedestroy($img);
            echo '<img src="data:image/png;base64,'.$image_data_base64.'" ><p>';
        }
    }
}

我该如何解决?我收到了这些错误:

Warning: imagecreatefromstring(): gd warning: one parameter to a memory allocation multiplication is negative or zero, failing operation gracefully in xxx on line 29

Warning: imagecreatefromstring(): Passed data is not in 'WBMP' format in xxx on line 29

Warning: imagecreatefromstring(): Couldn't create GD Image Stream out of Data in xxx on line 29

Warning: imagecopy() expects parameter 2 to be resource, boolean given in

和黑色图片
编辑:$ _GET ['dataURL']值:data:image/png;base64,AAAFBfj42Pj4
我该如何解决?感谢

1 个答案:

答案 0 :(得分:1)

我认为你应该省略代码中的substr部分。因为图像数据(图像类型)也很重要。

此网址的长度也限制为每个浏览器一定数量的字符。所以要保存,保持在2000个字符以下。如果那是不可能的。通过@tacone在评论中建议的方式获取图像内容。

val verCodeSentDate = Some(DateTime.now())