CODE:
function IMAGE($_width,$_height,$dest,$storage) {
list($width, $height) = $this->_IMAGE;
if ($width > $_width || $height > $_height) {
define("UP_ERROR",'Ошибка загрузки файла! Ширина или высота закачиваемого изображения больше разрешенных на форуме!');
return FALSE;
list($width, $height) = $this->_IMAGE;
if ($width > $_width || $height > $_height) {
define("UP_ERROR",'Ошибка загрузки файла! Ширина или высота закачиваемого изображения больше разрешенных на форуме!');
return FALSE;
Ничего не вышло...
Вот исходный код:
Цитата:
Форма:
сначало загрузка изображения:
Функция уменьшения JPEG
теперь проверяем размер если больше то уменьшаем:
и вывод самого изображения :
CODE:
<form method="POST" action ="<?php echo($_SERVER['PHP_SELF'])?>">
<input type="file" name="myfile" accept="image/*">
<input type='submit' name='submited' value="Отправить">
</form>
<input type="file" name="myfile" accept="image/*">
<input type='submit' name='submited' value="Отправить">
</form>
сначало загрузка изображения:
CODE:
if(isset($_FILES["myfile"][$i]))
{
if (!ereg("image", $_FILES["myfile"]["type"][$i])){
echo "<b>Файл не является изображением!!! <b>";
error_add_log($ip_client, 'Файл не является изображением!!! Пользователь('.$autor.')', $link);
exit();
}
else
$myfile = $_FILES["myfile"]["tmp_name"][$i];
$myfile_name = $_FILES["myfile"]["name"][$i];
$myfile_size = $_FILES["myfile"]["size"][$i];
$myfile_type = $_FILES["myfile"]["type"][$i];
$error_flag = $_FILES["myfile"]["error"][$i];
// Если ошибок не было
if($error_flag == 0)
{
// Получаем содержимое файла
$fp = fopen($myfile,"r");
$content = fread($fp, filesize($myfile));
fclose($fp);
$file='./foto/'.$myfile_name;
move_uploaded_file ($myfile, $file);
}
{
if (!ereg("image", $_FILES["myfile"]["type"][$i])){
echo "<b>Файл не является изображением!!! <b>";
error_add_log($ip_client, 'Файл не является изображением!!! Пользователь('.$autor.')', $link);
exit();
}
else
$myfile = $_FILES["myfile"]["tmp_name"][$i];
$myfile_name = $_FILES["myfile"]["name"][$i];
$myfile_size = $_FILES["myfile"]["size"][$i];
$myfile_type = $_FILES["myfile"]["type"][$i];
$error_flag = $_FILES["myfile"]["error"][$i];
// Если ошибок не было
if($error_flag == 0)
{
// Получаем содержимое файла
$fp = fopen($myfile,"r");
$content = fread($fp, filesize($myfile));
fclose($fp);
$file='./foto/'.$myfile_name;
move_uploaded_file ($myfile, $file);
}
Функция уменьшения JPEG
CODE:
function resize_jpeg($un_file, $after_resize, $width){
//chmod ($un_file, 0777);
$SOURCE=$un_file; // исходный файл
$TARGET=$after_resize; // имя файла для "превьюшки"
$NEWX=100; // ширина "превьюшки"
$NEWY=100; // высота "превьюшки"
$size = getimagesize($SOURCE);
if ($size === false) die ('Bad image file!');
$source = imagecreatefromjpeg($SOURCE)
or die('Cannot load original JPEG');
// вычисление пропорций
if ($size[0]>$size[1]){
$ratio = $size[0]/$width;
} else {
$ratio = $size[1]/$width;
}
$X = round($size[0]/$ratio);
$Y = round($size[1]/$ratio);
// Создаем новое изображение
$target = imagecreatetruecolor($X, $Y);
// Копируем существующее изображение в новое с изменением размера:
imagecopyresampled(
$target, // Идентификатор нового изображения
$source, // Идентификатор исходного изображения
0,0, // Координаты (x,y) верхнего левого угла
// в новом изображении
0,0, // Координаты (x,y) верхнего левого угла копируемого
// блока существующего изображения
$X, // Новая ширина копируемого блока
$Y, // Новая высота копируемого блока
$size[0], // Ширина исходного копируемого блока
$size[1] // Высота исходного копируемого блока
);
imagejpeg($target, $TARGET, 100);
return $TARGET;
// Как всегда, не забываем:
imagedestroy($target);
imagedestroy($source);
}
//chmod ($un_file, 0777);
$SOURCE=$un_file; // исходный файл
$TARGET=$after_resize; // имя файла для "превьюшки"
$NEWX=100; // ширина "превьюшки"
$NEWY=100; // высота "превьюшки"
$size = getimagesize($SOURCE);
if ($size === false) die ('Bad image file!');
$source = imagecreatefromjpeg($SOURCE)
or die('Cannot load original JPEG');
// вычисление пропорций
if ($size[0]>$size[1]){
$ratio = $size[0]/$width;
} else {
$ratio = $size[1]/$width;
}
$X = round($size[0]/$ratio);
$Y = round($size[1]/$ratio);
// Создаем новое изображение
$target = imagecreatetruecolor($X, $Y);
// Копируем существующее изображение в новое с изменением размера:
imagecopyresampled(
$target, // Идентификатор нового изображения
$source, // Идентификатор исходного изображения
0,0, // Координаты (x,y) верхнего левого угла
// в новом изображении
0,0, // Координаты (x,y) верхнего левого угла копируемого
// блока существующего изображения
$X, // Новая ширина копируемого блока
$Y, // Новая высота копируемого блока
$size[0], // Ширина исходного копируемого блока
$size[1] // Высота исходного копируемого блока
);
imagejpeg($target, $TARGET, 100);
return $TARGET;
// Как всегда, не забываем:
imagedestroy($target);
imagedestroy($source);
}
теперь проверяем размер если больше то уменьшаем:
CODE:
$size = getimagesize($file);
if ($size[0]<800) || ($size[0]<600)){
if (($myfile_type=='image/jpeg') or ($myfile_type=='image/pjpeg')){
$medium= resize_jpeg($file, $file, 600);
} else {
print "image is not JPG";}
}
$size = getimagesize($file);
if ($size[0]<800) || ($size[0]<600)){
if (($myfile_type=='image/jpeg') or ($myfile_type=='image/pjpeg')){
$medium= resize_jpeg($file, $file, 600);
} else {
print "image is not JPG";}
}
и вывод самого изображения :
CODE:
$size = getimagesize($file);
print $size[0].'*'.$size[1].'<br>';
print '<img border=0 src=$file>';
$size = getimagesize($file);
print $size[0].'*'.$size[1].'<br>';
print '<img border=0 src=$file>';
Мальчики, может ктонибудь поможет?