function resize ($filename, $size)
{
$pref = 'mini_';
$img = strtolower(strrchr(basename($filename), "."));
$imgname = basename($filename);
$formats = array('.jpg', '.jpeg', '.gif', '.png', '.bmp');
if (in_array($img, $formats))
{
list($width, $height) = getimagesize($filename);
$new_height = $height * $size;
$new_width = $new_height / $width;
$thumb = imagecreatetruecolor($size, $new_width);
switch ($img)
{
case '.jpg': $source = @imagecreatefromjpeg($filename); break;
case '.jpeg': $source = @imagecreatefromjpeg($filename); break;
case '.gif': $source = @imagecreatefromgif($filename); break;
case '.png': $source = @imagecreatefrompng($filename); break;
case '.bmp': $source = @imagecreatefromwbmp($filename); break;
}
imagecopyresized($thumb, $source, 0, 0, 0, 0, $size, $new_width, $width, $height);
switch ($img)
{
case '.jpg': imagejpeg($thumb, $pref.$imgname); break;
case '.jpeg': imagejpeg($thumb, $pref.$imgname); break;
case '.gif': imagegif($thumb, $pref.$imgname); break;
case '.png': imagepng($thumb, $pref.$imgname); break;
case '.bmp': imagewbmp($thumb, $pref.$imgname); break;
}
}
else return 'Error';
@imagedestroy($thumb);
@imagedestroy($source);
return $imgname;
}
Эта функция делает ресайз по ширение а подскажите как сделать по высоте?
Спустя 13 минут, 7 секунд (6.06.2012 - 12:11) YVSIK написал(а):
а может так?
и коменты (комментарии) неплохо добавить))
:P
<?php
function resize($filename, $size)
{
$pref = 'mini_';
$img = strtolower(strrchr(basename($filename), "."));
$imgname = basename($filename);
$formats = array(
'.jpg',
'.jpeg',
'.gif',
'.png',
'.bmp'
);
if(in_array($img, $formats))
{
list($width, $height) = getimagesize($filename);
$new_height = $height * $size;
$new_width = $new_height / $width;
$thumb = imagecreatetruecolor($size, $new_width);
switch ($img)
{
case '.jpg' :
$source = @imagecreatefromjpeg($filename);
break;
case '.jpeg' :
$source = @imagecreatefromjpeg($filename);
break;
case '.gif' :
$source = @imagecreatefromgif($filename);
break;
case '.png' :
$source = @imagecreatefrompng($filename);
break;
case '.bmp' :
$source = @imagecreatefromwbmp($filename);
break;
}
imagecopyresized($thumb, $source, 0, 0, 0, 0, $size, $new_width, $width, $height);
switch ($img)
{
case '.jpg' :
imagejpeg($thumb, $pref . $imgname);
break;
case '.jpeg' :
imagejpeg($thumb, $pref . $imgname);
break;
case '.gif' :
imagegif($thumb, $pref . $imgname);
break;
case '.png' :
imagepng($thumb, $pref . $imgname);
break;
case '.bmp' :
imagewbmp($thumb, $pref . $imgname);
break;
}
}
else
{
return 'Error';
}
@imagedestroy($thumb);
@imagedestroy($source);
return $imgname;
}
?>
и коменты (комментарии) неплохо добавить))
:P
Спустя 6 минут, 8 секунд (6.06.2012 - 12:17) devis написал(а):
а разница в чем????? :) в том что предали вид
и только тут :)
итоговый результат то не поменялся
и только тут :)
else
{
return 'Error';
}
итоговый результат то не поменялся
Спустя 5 минут, 53 секунды (6.06.2012 - 12:23) YVSIK написал(а):
Цитата (devis @ 6.06.2012 - 13:17) |
итоговый результат то не поменялся |
это пока не поменяется пока не написано что каждая строка значит ,
как только поймешь как это работает, вопрос отпадет,
вот и выходит, что пока написана каша без как, Игорь говорит, бутылки не разобрать
Спустя 2 минуты, 29 секунд (6.06.2012 - 12:25) devis написал(а):
$new_height = $height * $size;
$new_width = $new_height / $width;
Я так понимаю играть нужно тут , но я вычислять пытался разными способами но чтото у меня не получается никак
Спустя 2 минуты, 26 секунд (6.06.2012 - 12:28) YVSIK написал(а):
и нечего тут играть))
напиши что каждая строка значит и добавь что не хватает))
напиши что каждая строка значит и добавь что не хватает))
Спустя 12 минут, 45 секунд (6.06.2012 - 12:40) devis написал(а):
первое меняю
местами атрибуты
и тут получается
imagecopyresized($thumb, $source, 0, 0, 0, 0, $size, $new_width, $width, $height);и
$thumb = imagecreatetruecolor($size, $new_width);
местами атрибуты
$size, $new_width
и тут получается
$new_height = $size * 100 / $height;Получилось!
$new_width = $width * $new_height / 100;
Спустя 2 минуты, 16 секунд (6.06.2012 - 12:43) YVSIK написал(а):
что получилось ТО, что?
давай покажи как получилось,
выкладывай что было уже видно было теперь осталос показать
где и что поменял и получилось ЧТО?
давай покажи как получилось,
выкладывай что было уже видно было теперь осталос показать
где и что поменял и получилось ЧТО?
Спустя 1 минута, 29 секунд (6.06.2012 - 12:44) devis написал(а):
function resize($filename, $size)вот атк получилось выводит все норм
{
$pref = 'mini_';
$img = strtolower(strrchr(basename($filename), "."));
$imgname = basename($filename);
$formats = array(
'.jpg',
'.jpeg',
'.gif',
'.png',
'.bmp'
);
if(in_array($img, $formats))
{
list($width, $height) = getimagesize($filename);
$new_height = $size * 100 / $height;
$new_width = $width * $new_height / 100;
$thumb = imagecreatetruecolor($new_width, $size);
switch ($img)
{
case '.jpg' :
$source = @imagecreatefromjpeg($filename);
break;
case '.jpeg' :
$source = @imagecreatefromjpeg($filename);
break;
case '.gif' :
$source = @imagecreatefromgif($filename);
break;
case '.png' :
$source = @imagecreatefrompng($filename);
break;
case '.bmp' :
$source = @imagecreatefromwbmp($filename);
break;
}
imagecopyresized($thumb, $source, 0, 0, 0, 0, $new_width, $size, $width, $height);
switch ($img)
{
case '.jpg' :
imagejpeg($thumb, $pref . $imgname);
break;
case '.jpeg' :
imagejpeg($thumb, $pref . $imgname);
break;
case '.gif' :
imagegif($thumb, $pref . $imgname);
break;
case '.png' :
imagepng($thumb, $pref . $imgname);
break;
case '.bmp' :
imagewbmp($thumb, $pref . $imgname);
break;
}
}
else
{
return 'Error';
}
@imagedestroy($thumb);
@imagedestroy($source);
return $imgname;
}
Спустя 14 минут, 10 секунд (6.06.2012 - 12:58) YVSIK написал(а):
devis
ну и что? каковы твои выводы?
помогла тебе такая красота или в каше было легче что-то найти? А??
ну и что? каковы твои выводы?
помогла тебе такая красота или в каше было легче что-то найти? А??
Спустя 2 минуты, 46 секунд (6.06.2012 - 13:01) devis написал(а):
Честно говоря практически одинаково
(это про красоту)
А вот то что я просмотрел один нюанс это другое![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Спасибо за помощь!!!
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
А вот то что я просмотрел один нюанс это другое
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Спасибо за помощь!!!
Спустя 4 минуты, 36 секунд (6.06.2012 - 13:06) YVSIK написал(а):
Цитата (devis @ 6.06.2012 - 14:01) |
А вот то что я просмотрел один нюанс |
вот в этом то и все дело, пока на кашу смотришь все нЮансы пролетают
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Спустя 7 часов, 17 минут, 15 секунд (6.06.2012 - 20:23) mikelo написал(а):
Использовал данный скрипт.
Сделал формочку загрузки изображений, папки создаются, папка thumbs тоже, но почему-то мини-изображение падает в корень создаваемой папки, а не в папку "thumbs".
Подскажите, вроде все перед носом, но уже час сижу.
Сделал формочку загрузки изображений, папки создаются, папка thumbs тоже, но почему-то мини-изображение падает в корень создаваемой папки, а не в папку "thumbs".
<form action="<?[SPAN=darling]php[/SPAN] $_SERVER['SCRIPT_NAME']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="img">
<input type="submit" name="go" value="Upload and resize">
</form>
<?[SPAN=darling]php[/SPAN]
if($_FILES["img"]["error"] == 0) {
$uploads_dir = '/home/localhost/www/scripts';
$tmp_name = $_FILES["img"]["tmp_name"];
if(file_exists(date('d\.m\.Y'))?date('d\.m\.Y'):mkdir(date('d\.m\.Y'))){
$img_dir = date('d\.m\.Y');
};
(file_exists("$uploads_dir/$img_dir/thumbs"))?
("$uploads_dir/$img_dir/thumbs"):(mkdir("$uploads_dir/$img_dir/thumbs")); // if isset image folder
$name = $_FILES["img"]["name"];
move_uploaded_file($tmp_name, "$uploads_dir/$img_dir/$name");
$res_img = imgResize($name, 300);
echo '<pre>';
print_r($res_img);
echo '</pre>';
copy("$uploads_dir/$img_dir/$res_img","$uploads_dir/$img_dir/thumbs/".$res_img);
}
function imgResize($filename, $size)
{
$pref = 'mini_';
$img = strtolower(strrchr(basename($filename), "."));
$imgname = basename($filename);
$formats = array(
'.jpg',
'.jpeg',
'.gif',
'.png',
'.bmp'
);
if(in_array($img, $formats))
{
list($width, $height) = getimagesize($filename);
$new_height = $height * $size;
$new_width = $new_height / $width;
$thumb = imagecreatetruecolor($size, $new_width);
switch ($img)
{
case '.jpg' :
$source = @imagecreatefromjpeg($filename);
break;
case '.jpeg' :
$source = @imagecreatefromjpeg($filename);
break;
case '.gif' :
$source = @imagecreatefromgif($filename);
break;
case '.png' :
$source = @imagecreatefrompng($filename);
break;
case '.bmp' :
$source = @imagecreatefromwbmp($filename);
break;
}
imagecopyresized($thumb, $source, 0, 0, 0, 0, $size, $new_width, $width, $height);
switch ($img)
{
case '.jpg' :
imagejpeg($thumb, $pref . $imgname);
break;
case '.jpeg' :
imagejpeg($thumb, $pref . $imgname);
break;
case '.gif' :
imagegif($thumb, $pref . $imgname);
break;
case '.png' :
imagepng($thumb, $pref . $imgname);
break;
case '.bmp' :
imagewbmp($thumb, $pref . $imgname);
break;
}
}
else
{
return 'Error';
}
@imagedestroy($thumb);
@imagedestroy($source);
return $imgname;
}
?>
Подскажите, вроде все перед носом, но уже час сижу.
Спустя 2 месяца, 17 дней, 14 часов, 13 минут, 50 секунд (24.08.2012 - 10:37) devis написал(а):
switch ($img)
{
case '.jpg' :
imagejpeg($thumb, 'thumbs/'.$pref . $imgname);
break;
case '.jpeg' :
imagejpeg($thumb, 'thumbs/'.$pref . $imgname);
break;
case '.gif' :
imagegif($thumb, 'thumbs/'.$pref . $imgname);
break;
case '.png' :
imagepng($thumb, 'thumbs/'.$pref . $imgname);
break;
case '.bmp' :
imagewbmp($thumb, 'thumbs/'.$pref . $imgname);
break;
}