ну и как обычно спрошу не подумав, потом уже сделал..)))
кароче код такой можно как freeware (или за пиво)
- Код: Выделить всё • Развернуть
function image_resize_my($filename){
$xxx=getimagesize( $filename );
if($xxx === false){
die('А это нихера не картинка...');
};
if(!(($xxx[2]==IMAGETYPE_GIF)||($xxx[2]==IMAGETYPE_JPEG)||($xxx[2]==IMAGETYPE_PNG))){
die('Не верный тип изображения! Разрешены только jpg, gif, png форматы');
};
$typef=$xxx[2];
$w_src=$xxx[0];
$h_src=$xxx[1];
$w=230;
$q=70;//какчество жпега
$ratio =1;
$w_dest = $w;
$h_dest = $w;
if(($w_src<=230)and($h_src<=230)){
return $filename;
};
if(($w_src>800)||($h_src>600)){// а то памти жрет ноговато, если бальшую картинку сунуть...
die('Файл больше допустимого значения 230х230!<br>его размеры '.$w_src.'x'.$h_src.'<br>уменьшите размер хотбы до 640х480, тогда он автоматом смасштабируется при вставке');};
if ($w_src > $h_src) // Если изображение горизонтальное
{
$ratio = $w_src/$w; // Считаем соотношение пропорций
$w_dest = $w; // Конечная ширина будет равна максимальной
$h_dest = round($h_src/$ratio); // Считаем конечную высоту
}
elseif ($h_src > $w_src) // Если изображение вертикальное
{
$ratio = $h_src/$w; // Считаем соотношение пропорций
$h_dest = $w; // Конечная высота будет равна максимальной
$w_dest = round($w_src/$ratio); // Считаем конечную ширину
}
else // Если изображение квадратное
{
$w_dest = $w; // Подставляем максимальные значения
$h_dest = $w;
};
if($typef==IMAGETYPE_GIF){
$src = imagecreatefromgif($filename);
}elseif($typef==IMAGETYPE_JPEG){
$src = imagecreatefromjpeg($filename);
}elseif($typef==IMAGETYPE_PNG){
$src = imagecreatefrompng($filename);
}else{
die('Изображение не верного типа!');
};
$dest = imagecreatetruecolor($w_dest,$h_dest);
imagecopyresampled($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
// Преобразуем исходное изображение в конечное (с новыми размерами).
// Функция использует ресемплинг, поэтому изображение будет лучшего
// качества, чем если использовать вместо imagecopyresampled функцию
// imagecopyresized
imagedestroy($src); //освобождаем памть
$rc=true;
if($typef==IMAGETYPE_GIF){
$rc = imagegif($dest,$filename);
}elseif($typef==IMAGETYPE_JPEG){
$rc = imagejpeg($dest,$filename,$q);
}elseif($typef==IMAGETYPE_PNG){
$rc = imagepng($dest,$filename,9);
}else{
die('Изображение не верного типа!');
};
if(!$rc){
die('Ошибка масштабирования изображения и его сохранения');
};
imagedestroy($dest);//освобождаем памть
return $filename;
};
проверку на ошибки некоторые{
пропустил, ну ладно сами вставите.
}else{
тогда точно за пиво!
};