在上传流中使用时确定imagepng的文件大小

I'm creating a png and uploading immediately to S3, I'd like to log how big that file was without having to do a seperate call to the same file on S3 to work out the size on disk.

Is this possible?

$tile = imagecreatetruecolor($tileImageSize, $tileImageSize);

imagecopy($tile, $resizedMainImage, 0, 0, $currentCoordsX, $currentCoordsY, $tileSize, $tileSize);

$writeStream = fopen("s3://bucket/file.png", 'w');

imagepng($tile, $writeStream, 9); // need filesize of this action

I've tried wrapping the imagepng in ob_start(); ob_get_length(); etc with no joy.

The thing is that you will need to save the image somewhere in order to get the size. To avoid writing to the filesystem, you can use the memory storage of php. I mean something like this:

imagepng($tile, 'php://memory/image.png');
$file_size = filesize('php://memory/image.png');

You can do this before uploading the image to the server to have the information for your log.