PHP Imagick - вывод измененного изображения И его размеров

У меня есть следующий скрипт php и imagick для динамического изменения размера изображения:

изменить размер.php

$_size = $_GET['size'];
$_path = $_GET['path'];
$img = new Imagick($_path);
$img_d = $img->getImageGeometry(); 
$img_w = $img_d['width']; 
$img_h = $img_d['height'];

..// more variables

$crop_w = round($_size * $p_w);
$crop_h = round($_size * $p_h);
list($_w, $_h) = scaleProportions($crop_w, $crop_h, $img_w, $img_h);
$img->resizeImage($_w, $_h, imagick::FILTER_LANCZOS, 0);

header("Content-Type: image/jpg");
header("Cache-control: Public"); 
$headerTimeOffset = 60 * 60 * 24 * 30; 
$headeExpire = "Expires: ".gmdate("D, d M Y H:i:s",time()+$headerTimeOffset)."    GMT"; 
header ($headeExpire);

$img->setImageFormat('jpg');
$img->setImageCompression(Imagick::COMPRESSION_JPEG);
$img->setImageCompressionQuality($_quality);

echo $img->getImageBlob();

И я вызываю этот скрипт в своих тегах img так:

изображения.html

<img src="http:www.mysite.com/resize/size/path" alt="xxxx">

Это работает по назначению. Теперь мне нужно не только получить изображение с новым размером, но и его новые размеры с измененным размером. Это вообще возможно?

Причина этого в том, что я использую плагин masonry вместе с ленивой загрузкой каждого изображения и хочу установить сетку до того, как они загрузятся. я знаю, что каменная кладка нуждается в этих размерах до того, как изображение загрузится


person odd_duck    schedule 12.06.2015    source источник


Ответы (1)


Немного неэффективный способ:

list($width, $height) = getimagesize("http://www.example.com/resize/size/path");

Или сохраните изображение с измененным размером на диск где-нибудь в корне документа, получите веб-ссылку для src и путь для getimagesize.

person venca    schedule 12.06.2015