BLOB-PHP изменение размера изображения
У меня небольшая проблема с изменением размера изображений больших двоичных объектов. Я обнаружил, что мне нужно указать высоту и ширину большого двоичного объекта, но поскольку люди загружают изображения, которые не являются квадратными, как мне правильно изменить их размер?
В основном мне нужна максимальная ширина 300 пикселей;
Мой текущий код
$desired_width = 300;
$desired_height = 300;
$sth = mysql_query("SELECT photobase FROM userpictures WHERE id = '".$array[0]."'");
while($r = mysql_fetch_assoc($sth)) {
$blobcontents = $r["photobase"];
$im = imagecreatefromstring($blobcontents);
$new = imagecreatetruecolor($desired_width, $desired_height);
$x = imagesx($im);
$y = imagesy($im);
imagecopyresampled($new, $im, 0, 0, 0, 0, $desired_width, $desired_height, $x, $y);
imagedestroy($im);
header('Content-type: <span class="posthilit">image</span>/jpeg');
imagejpeg($new, null, 85);
3
1 answers
Простой метод изменения размера изображения с сохранением пропорций ограничения:
<?php
// Constraints
$max_width = 100;
$max_height = 100;
list($width, $height) = getimagesize($img_path);
$ratioh = $max_height/$height;
$ratiow = $max_width/$width;
$ratio = min($ratioh, $ratiow);
// New dimensions
$width = intval($ratio*$width);
$height = intval($ratio*$height);
?>
3
Author: Vasil Dakov, 2011-05-22 12:33:22