0

我目前正在调整图像大小并将其写入文件。从那以后,我需要将其存储在亚马逊中,所以我需要的只是调整大小图像的内容。这可以在不先将其写入文件的情况下完成吗?

这是我当前的代码的样子:

    $success = $src_img && @imagecopyresampled(
        $new_img,
        $src_img,
        $dst_x,
        $dst_y,
        0,
        0,
        $new_width,
        $new_height,
        $img_width,
        $img_height
    ) && imagejpeg($new_img, $new_file_path, $image_quality);

    // Free up memory (imagedestroy does not delete files):
    @imagedestroy($src_img);
    @imagedestroy($new_img);

    $type = $this->get_file_type($new_file_path);
    $binary = file_get_contents($new_file_path);

    $image = $this->get_user_path() . $version . '/' . $file_name;

    $response = $this->S3->create_object(AWS_S3_BUCKET, $image, array( 'body' => $binary, 'contentType' => $type, 'acl' => AmazonS3::ACL_PUBLIC));
    if ($response->isOK()) {
        // success
    }

如何在不先将文件内容写入文件的情况下获取文件内容?

4

1 回答 1

2

您需要imagejpeg($new_img, NULL, $image_quality)使用输出缓冲区命令换行:

ob_start();
imagejpeg($new_img, NULL, $image_quality);
$binary = ob_get_clean();
于 2013-05-08T20:20:06.600 回答