使用PHP从mysql数据库中裁剪图片的问题?图像显示黑色?

时间:2016-06-22 01:25:19

标签: php mysql image

我有一个奇怪的问题从mysql数据库中检索/裁剪原始图像的较小版本。对此有点新,需要一些帮助。

我有一个脚本将图像上传到数据库(原始图像)以及一个较小的裁剪图像,用作个人资料图像和那种东西。这是代码:

class converterA {
    map(Item1 item1) {
        // Implementation details.
    }

    convert(Item1 item1) {
        // Implementation details.
    }

    translate(Item1 item1) {
        // Implementation details.
    }
}

class converterB {
    map(Item2 item2) {
    // Implementation details.
    }

    convert(Item2 item2) {
    // Implementation details.
    }

    translate(Item2 item2) {
    // Implementation details.
    }
}

这是缩放发生的部分:

if(isset($_FILES["file"]["type"]))
{
$validextensions = array("jpeg", "jpg", "png");
$maxsize = 99999999;
$temporary = explode(".", $_FILES["file"]["name"]);
$file_extension = end($temporary);
if ((($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/jpeg")
) && ($_FILES["file"]["size"] < $maxsize)//Approx. 100kb files can be uploaded.
&& in_array($file_extension, $validextensions)) {

$size = getimagesize($_FILES['file']['tmp_name']);
$type = $size['mime'];
$imgfp = fopen($_FILES['file']['tmp_name'], 'rb');
$size = $size[3];
$name = $_FILES['file']['name'];

$sql = new mysqli("localhost","username","password","sqlserver");
$imgfp64 = base64_encode(stream_get_contents($imgfp));
$update = "UPDATE sqlserver.imageblob set image='".$imgfp64."', image_type='".$type."', image_name='".$name."', image_size='".$size."' where user_id=".$account['id'];
$sql->query($update);

这是仅有一些图像的结果 -

enter image description here

原件不是黑色的。我阅读了这篇文章PHP: black image when cropping using php,并认为剧本可能会在图片之外裁剪。我可以在代码中更改哪些内容来缓解此问题?

如何缩小图像并从不在外面的图像裁剪图像?

0 个答案:

没有答案