PHP скрипт для расчета ширины изображения и соотношения высоты - PullRequest
0 голосов
/ 28 ноября 2011

Я пытаюсь найти способ рассчитать соотношение ширины и высоты изображения, поэтому, если я изменю размер изображения, оно будет пропорционально правильно изменено.Есть ли такой сценарий?

Например, изображение имеет размер 500x750, а контейнер, в котором хранится изображение, имеет максимальную ширину 350 ... Поэтому мне нужен сценарий, чтобы вычислить, какая высота должна быть пропорциональна ширине 350.

Спасибо.

Ответы [ 5 ]

2 голосов
/ 28 ноября 2011

Используйте Javascript.

Смотрите этот урок: http://www.ajaxblender.com/howto-resize-image-proportionally-using-javascript.html

Используя функцию, которую написал другой парень:

<?PHP

$imagePath = "images/your_image.png";

list($oldWidth, $height, $type, $attr) = getimagesize($image_path); 

$percentChange = $newWidth / $oldWidth;
$newHeight = round( ( $percentChange *$height ) );

echo '<img src="'.$imagePath.'" height="'.$new_height.'" width="'.$newWidth.'">';

?> 
1 голос
/ 28 ноября 2011

используйте getImagesize и получите новую высоту, разделив на соотношение сторон.

list($width, $height, $type, $attr) = getimagesize("image.jpg");
$aspect = $width / $height;
$newWidth = 350;
$newHeight = $newWidth / $aspect;
1 голос
/ 28 ноября 2011

Вы пометили свой вопрос тегом PHP, поэтому предположим, что вы хотите использовать PHP:

Чтобы получить высоту или ширину изображения из ресурса изображения, используйте imagesx() и imagesy().http://www.php.net/manual/en/function.imagesx.php
http://www.php.net/manual/en/function.imagesy.php

Чтобы получить высоту и ширину изображения из файла изображения, используйте getimagesize().Элементы 0 и 1 в массиве, возвращаемом этой функцией, являются шириной и высотой изображения.http://www.php.net/manual/en/function.getimagesize.php

Если у вас есть изображение шириной 500 пикселей и высотой 750 пикселей, и у вас есть контейнер шириной 350 пикселей, вы можете рассчитать коэффициент, разделив желаемую ширину на фактическую ширину:350/500 что составляет 0.7.Чтобы вычислить высоту, умножьте ее на это соотношение (750 * 0.7 или 525).

1 голос
/ 28 ноября 2011

Я думаю, что это PHP-функция, которую вы ищете: getimagesize

Из руководства:

Возвращает массив из 7 элементов.

Индекс 0 и 1 содержит соответственно ширину и высоту изображение.

Вот краткий пример, как работать с этой проблемой:

// get the current size of your image
$data = getimagesize('link/your/image.jpg');

// your defined width
$new_width = 350;

// calculate the ratio
$ratio = $data[0] / $new_width;

// apply the ratio to get the new height of your image
$new_height = round($data[1] / $ratio);

... сделано!

0 голосов
/ 28 ноября 2011

В дополнение к ответам выше, перейдите по этой ссылке, может быть полезно проверить и ее коды: http://shiftingpixel.com/2008/03/03/smart-image-resizer/

...