我正在尝试使用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
我该如何解决?感谢
答案 0 :(得分:1)
我认为你应该省略代码中的substr部分。因为图像数据(图像类型)也很重要。
此网址的长度也限制为每个浏览器一定数量的字符。所以要保存,保持在2000个字符以下。如果那是不可能的。通过@tacone在评论中建议的方式获取图像内容。
val verCodeSentDate = Some(DateTime.now())