[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Черное-белое изображение средствами PHP
El Diablo
Доброго времени суток, подскажите, я давно сформировал вот такую систему загрузки изображений:


$array = array('jpg', 'JPG', 'png', 'gif');
$type = $_FILES['uploadfile']['type'];
if ($type == 'image/jpeg') {$filetype = str_replace('image/','',$type);}
$name = explode(".", $_FILES['uploadfile']['name']);
$exp = end($name);
$temp = $_FILES['uploadfile']['tmp_name'];
if(in_array($exp, $array))
{
$uploaddir='partners/original';
$thumbdir='partners/thumb';
$uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);
if (!is_uploaded_file($_FILES['uploadfile']['tmp_name']))
{echo 'ошибка передачи файла';}
else {
if(copy($temp,$uploadfile))
{
if(!empty($uploadfile))
{$uniqid = md5(uniqid(""));
if(!empty($uniqid))
{$renamefile = substr($uploadfile,11,-4);
$newuploadfile = rename($uploadfile,$uploaddir.$uniqid.".jpg");
if(!empty($newuploadfile))
{$size = getimagesize ($uploaddir.$uniqid.".jpg");
$width = $size[0];
$height = $size[1];
if($size[0]>100)
{
if ($width == $height) {$case=1;}
if ($width > $height) {$case=2;}
if ($width < $height) {$case=3;}
switch ($case)
{case 1:
$newwidth=100;
$newheight=100;
$newimage = $newwidth."x".$newheight;
break;
case 3:
$newheight=100;
$ratio= $newheight / $height;
$newwidth = round($width * $ratio);
$newimage = $newwidth."x".$newheight;
break;
case 2:
$newwidth=100;
$ratio=$newwidth / $width;
$newheight=$height * $ratio;
$newimage = $newwidth."x".$newheight;
break;
}

switch ($type)
{case 'image/jpeg':
$img = imagecreatefromjpeg( $temp );
$thumb = imagecreatetruecolor( $newwidth, $newheight );
imagecopyresized($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagejpeg ( $thumb, $thumbdir.$uniqid.".jpg",100);
echo "Ваш файл был загружен со следующими параметрами:<br>Ширина ".$width." пикселей <br>Высота ".$height." пикселей <br><br>и приобразован в: ".$newimage."<br><br>
"
;
break;

}
$ogede = $uploaddir.$uniqid.".jpg";
$gede = $thumbdir.$uniqid.".jpg";
$tes = "INSERT INTO generals_partners (pic1,pic2,title,link) VALUES ('".$gede."','".$ogede."','".$title."','".$link."')";

$res = mysql_query($tes);
if($res) echo "Файл упешно загружен, загрузите еще!";
else echo "Путь не добавлен в базу данных, но файл загружен ".mysql_error().$about.$link.$city_array;
}
else echo "Качество файла удручает и печалит, а клиентов отпугнет, подищите пожалуйсто изображение более лучшего качества";
}
else echo "Не получен размер изображения";
}
else echo"Произошла ошибка с наречением файла новым именем :'(";
}
else echo "Файл не занесен в каталог с новым именем";
}
else echo "Файл не загружен";
}
}

else echo "Неверное расширение файла, Загружать можно только фото (формата jpg)";


Но на данный момент у меня поднялся вопрос, превратить изображение в черно-белое, тобиш в первом коде, загружается картинка, далее она загружается в папку (original), также создается уменьшена копия, и также копируется в директорию (thumb), моя задача что бы урезанная картинка дублировалась в директорию к примеру (blackwithwhite) и там преобразовывалась в черно-белый вариант.

Я также нашел один из способов вот код:
$image = imagecreatefrompng($img_src);
imagefilter($image, IMG_FILTER_GRAYSCALE);
imagepng($image,'result.png' );
imagedestroy($image);

( источник )

$img_src это путь к исходному изображению, в моем случае если продублировать урезанный вариант в директорию blackwithwhite и нужно указать путь к нему и пережать в черно-белый. Подскажите как склеить эти 2 кода? также приветствуются свои варианты =)

С благодарностью и уважением El Diablo.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.