|
|
|
| Есть картинка: ширина-75, высота-варьируется. Надо, чтобы, если эта картинка больше 90 px по высоте, то обрезать её снизу до 90 пикселей.
Делаю так:
$old="old.jpg"; // картинка с неизвестной высотой
$size_old="75"; ширина этой картинки
$st=getimagesize($old);
if($st[1]>90) {
$new="new.jpg"; // новая картинка с высотой в 90 px
imagecopy($new,$old,0,0,0,0,$size_old,90);
}
|
Но ничего не получается. Что делаю не так? | |
|
|
|
|
|
|
|
для: Владимир22
(24.10.2008 в 11:55)
| |
<?
/**
/* @desc функция вырезает на картинке произвольную область
/* @param $filename путь к файлу с исходной картинкой
/* @param $x координата верхего левого угла нужной области
/* @param $y координата верхего левого угла нужной области
/* @param $w нужная ширина "обрезка"
/* @param $h нужная высота "обрезка"
/* @param $target_filename куда записывать результат. Если не указать, то перепишется исходный файл.
*/
function evokeArea($filename,$x,$y,$w,$h,$target_filename=null){
$thumb = imagecreatetruecolor($w, $h);
$bgc = imagecolorallocate($thumb, 255, 255, 255);
imagefilledrectangle($thumb, 0, 0, $w, $h, $bgc);
$source = imagecreatefromjpeg($filename);
imagecopyresized($thumb, $source, 0, 0, $x, $y, $w, $h, $w, $h);
$target_filename = is_null($target_filename)?$filename:$target_filename;
imagejpeg($thumb,$target_filename);
}
?>
|
Т.е. в вашем случае:
evokeArea($old,0,0,$st[0],90,$new);
|
| |
|
|
|
|
|
|
|
для: Владимир22
(24.10.2008 в 11:55)
| | $new="new.jpg";
imagecopy($new
Это как? | |
|
|
|