Я работаю с облаком Microsoft Azure и загружаю туда фотографии. Его методы загрузки класса putBlob() и putBlobData() требуют либо самих данных (а не ресурса), либо строки каталога как аргументы, ни одна из которых не доступна до того, как изображение фактически будет записано в Blob.Как получить данные изображения из ресурса изображения?
$fp = fopen($tmp_name, 'r');
$data = fread($fp, filesize($tmp_name));
fclose($fp);
//Setup watermark destination
$new_watermarked_image_name = "watermark.jpg";
// Create image resources
$image = imagecreatefromstring($data);
$watermark = imagecreatefrompng('images/watermark_large.png');
$copyright = imagecreatefrompng('images/copyright.png');
// Merge image resource s
$image = overlay_watermark_full_size($image, $watermark);
$image = overlay_watermark_lower_right($image, $copyright);
imagejpeg($image, $new_watermarked_image_name, 100);
//put original image
$AzureStorageBlob->putBlob("uploads", "name", $tmp_name);
//put watermarked image
$AzureStorageBlob->putBlobData("uploads", "name", ?); // ? needs to be data
Итак, вы говорите, что вам нужны двоичные данные из 'imagejpeg()', но вместо этого они записываются в выходной буфер? См. [Примеры в документах] (http://php.net/manual/en/function.imagejpeg.php), которые используют 'ob_start()' и 'ob_get_clean()' для хранения его в переменной. –
Это был ответ –