Một khi bạn đã có những JPEG trong bộ nhớ (sử dụng ImageMagick, GD, hoặc thư viện đồ họa của bạn lựa chọn), bạn sẽ cần phải tải lên các đối tượng từ bộ nhớ để S3.
Nhiều lớp PHP S3 dường như chỉ tập tin tải lên hỗ trợ, nhưng một trong những tại Undesigned dường như làm những gì chúng tôi sau đây -
// Manipulate image - assume ImageMagick, so $im is image object
$im = new Imagick();
// Get image source data
$im->readimageblob($image_source);
// Upload an object from a resource (requires size):
$s3->putObject($s3->inputResource($im->getimageblob(), $im->getSize()),
$bucketName, $uploadName, S3::ACL_PUBLIC_READ);
Nếu bạn đang sử dụng GD thay vào đó, bạn có thể sử dụng imagecreatefromstring để đọc một hình ảnh từ một luồng, nhưng tôi không chắc liệu bạn có thể lấy kích thước của đối tượng kết quả hay không, theo yêu cầu của s3->inputResource
ở trên - getimagesize trả về chiều cao, chiều rộng, v.v. nhưng không phải kích thước của tài nguyên hình ảnh.
Tôi nên làm rõ - Tôi đang sử dụng lớp S3 không được thiết kế. Bạn có biết cách GD làm những gì bạn đã đăng ở trên không? Trước khi tôi chuyển sang cài đặt imagemagick, sẽ rất tuyệt nếu biết tôi hoàn toàn cần. – MPX
GD của tôi hơi sơ sài - tôi biết bạn có thể đọc hình ảnh tương tự như ImageMagick, không chắc chắn về việc nhận kích thước đối tượng - được một thời gian kể từ khi tôi xem tài liệu và không thấy gì ở đó. ImageMagick cũng đáng để cài đặt mặc dù IMO! – ConroyP
imagesx và imagesy trả về chiều rộng/chiều cao của nguồn nạp hình ảnh. –