以下のコードを動作させることができません。元の画像を S3 バケットに保存してから、同じ画像の 2 つのバリエーションのサイズを変更し、PHPThumb_GdThumb によって生成された文字列を S3 に送信していますが、サイズ変更された画像には 0kb があり、エラーが含まれています。
画像はmybucket/objectおよびmybucket/object/thumbに正常に書き込まれますが、サム フォルダーの画像は 0kb で、エラーが含まれています。
これが私のコードです:
// Add Original to S3 before doing any cropping
$s3_path = 'mybucket/object';
$S3_folder->addToBucket($s3_path.'/'.$filename, $path);
$GDImage = new PHPThumb_GdThumb("{$path}");
if (!$GDImage->getHasError())
{
// get images dimensions
$dimensions = $GDImage->getCurrentDimensions();
$imageWidth = (int) $dimensions['width'];
$imageHeight = (int) $dimensions['height'];
// thumbnails
if ($imageHeight > $imageWidth)
{
$thumbPercent = floor(self::THUMB_SIZE / $imageHeight * 100);
} else if ($imageHeight < $imageWidth)
{
$thumbPercent = floor(self::THUMB_SIZE / $imageWidth * 100);
} else
{
// it's a square use either
$thumbPercent = floor(self::THUMB_SIZE / $imageWidth * 100);
}
if ($imageHeight > self::THUMB_SIZE)
{
$img_string = $GDImage->resizePercent($thumbPercent)
->cropFromCenter(self::THUMB_SIZE)
->getImageAsString();
} else
{
$img_string = $GDImage->getImageAsString();
}
$S3_folder->addToBucket($s3_path.'/thumb/'.$filename, $img_string);