vave
Полезный
- Регистрация
- 22 Июн 2007
- Сообщения
- 467
- Реакции
- 16
- Автор темы
- #1
Здравствуйте дорогие знатоки!
Как сделать в данном коде что бы изображение конвертировалось в png с прозрачным фоном?
на данный момент конвертируется в jpg с черным фоном.
Как сделать в данном коде что бы изображение конвертировалось в png с прозрачным фоном?
на данный момент конвертируется в jpg с черным фоном.
PHP:
<?php
include_once("bd.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Изменение данных <?php echo $login; ?></title>
</head>
<body>
<?php
////////Изменение аватары
if (isset($_FILES['fupload']['name'])){ //отправлялась ли переменная
if (empty($_FILES['fupload']['name']) AND $_FILES['fupload']['name'] == ''){
$noAvatar = "noAvatar.jpg";//изображение если пользователь не загрузил свое
$result = mysql_query("SELECT avatar FROM users WHERE id='$id_user'");//извлекаем текущий аватар
$avatarka = mysql_fetch_array($result);
if ($avatarka['avatar'] != $noAvatar) {//если аватар был стандартный, то не удаляем его, ведь у на одна картинка на всех.
unlink ('avatars/'.$avatarka['avatar']);
}
}
else{
//иначе - загружаем изображение пользователя для обновления
$path_to_90_directory = 'avatars/';//папка, куда будет загружаться начальная картинка и ее сжатая копия
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['fupload']['name']))//проверка формата исходного изображения
{
$filename = $_FILES['fupload']['name'];
$source = $_FILES['fupload']['tmp_name'];
$target = $path_to_90_directory . $filename;
move_uploaded_file($source, $target);//загрузка оригинала в папку $path_to_90_directory
if(preg_match('/[.](GIF)|(gif)$/', $filename)) {
$im = imagecreatefromgif($path_to_90_directory.$filename) ; //если оригинал был в формате gif
}
if(preg_match('/[.](PNG)|(png)$/', $filename)) {
$im = imagecreatefrompng($path_to_90_directory.$filename) ;//если оригинал был в формате png
}
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
$im = imagecreatefromjpeg($path_to_90_directory.$filename); //если оригинал был в формате jpg
}
//СОЗДАНИЕ КВАДРАТНОГО ИЗОБРАЖЕНИЯ И ЕГО ПОСЛЕДУЮЩЕЕ СЖАТИЕ ВЗЯТО С САЙТА www.codenet.ru
$w = 120; // ширина изображения
$quality = 100; //Качество создаваемого изображения max 100
$w_src = imagesx($im); //вычисляем ширину
$h_src = imagesy($im); //вычисляем высоту изображения
//Создавать квадратное изображение $rezim = 1
//Создать изображение пропорционально оригиналу $rezim = 2
$rezim = 1;
switch ($rezim){
//**************************** 1
case "1" :
// создаём пустую квадратную картинку
// важно именно truecolor!, иначе будем иметь 8-битный результат
$dest = imagecreatetruecolor($w,$w);
// вырезаем квадратную серединку по x, если фото горизонтальное
if ($w_src > $h_src){
imagecopyresampled($dest, $im, 0, 0, round((max($w_src,$h_src)-min($w_src,$h_src))/2), 0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));
}
// вырезаем квадратную верхушку по y,
if ($w_src < $h_src){
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));
}
// квадратная картинка масштабируется без вырезок
if ($w_src == $h_src){
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $h_src);
}
break;
//***************************** 2
case "2" :
$prop = $w_src/$h_src;
$h = $w/$prop;
$dest = imagecreatetruecolor($w,$h);
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $h, $w_src, $h_src);
break;
}
$random = rand(1000000, 9999999);
imagejpeg($dest, $path_to_90_directory.$random.".jpg", $quality);//сохраняем изображение формата jpg в нужную папку
$avatar = $random.".jpg";//заносим в переменную путь до аватара.
$delfull = $path_to_90_directory.$filename;
unlink ($delfull);//удаляем оригинал загруженного изображения, он нам больше не нужен.
$result = mysql_query("SELECT avatar FROM users WHERE id='$id_user'");//извлекаем текущий аватар пользователя
$avatarka = mysql_fetch_array($result);
if ($avatarka['avatar'] != $noAvatar) {//если аватар был стандартный, то не удаляем его, ведь у на одна картинка на всех.
unlink ('avatars/'.$avatarka['avatar']);
}
}
else{
//в случае несоответствия формата, выдаем соответствующее сообщение
exit ("Аватар должен быть в формате <strong>JPG,GIF или PNG</strong>");
}
}
$up = mysql_query("UPDATE users SET avatar='$avatar' WHERE id='$id_user'");//обновляем аватар в базе
if ($up == true) {//если верно, то отправляем на личную страничку
echo "<meta http-equiv='Refresh' content='0; URL=edit.php?id=".$id_user."'>";
}
}
////////Изменение имени
else if (isset($_POST['name'])){//Если существует имя
$name = $_POST['name'];
if ($name == '') {
exit("Вы не ввели имя<br><a href='edit.php'>Вернуться назад</a>");
}
$up = mysql_query("UPDATE users SET name_user='$name' WHERE id='$id_user'");//обновляем имя
if ($up == true) {
echo "<meta http-equiv='Refresh' content='0; URL=edit.php?id=".$id_user."'>";
}
}
////////Изменение фамилии
else if (isset($_POST['lastname'])){//Если существует фамилия
$lastname = $_POST['lastname'];
$lastname = stripslashes($lastname);
$lastname = htmlspecialchars($lastname);
$lastname = trim($lastname);//удаляем все лишнее
if ($lastname == '') {
exit("Вы не ввели фамилию<br><a href='edit.php'>Вернуться назад</a>");
}
$up = mysql_query("UPDATE users SET lastname='$lastname' WHERE id='$id_user'");//обновляем фамилию
if ($up=='TRUE') {//если верно, то обновляем его в сессии
$_SESSION['lastname'] = $lastname;
echo "<meta http-equiv='Refresh' content='0; URL=edit.php?id=".$id_user."'>";
}
}
else if (isset($_POST['home'])){//Если существует фамилия
$home = $_POST['home'];
if ($home == '') {
exit("Вы не ввели страну<br><a href='edit.php'>Вернуться назад</a>");
}
$up = mysql_query("UPDATE users SET home='$home' WHERE id='$id_user'");//обновляем страну
if ($up == true) {
echo "<meta http-equiv='Refresh' content='0; URL=edit.php?id=".$id_user."'>";
}
}
////////Изменение страны
else if (isset($_POST['about'])){//Если существует фамилия
$about = $_POST['about'];
if ($about == '') {
exit("Вы не ввели страну<br><a href='edit.php'>Вернуться назад</a>");
}
$up = mysql_query("UPDATE users SET about='$about' WHERE id='$id_user'");//обновляем страну
if ($up == true) {
echo "<meta http-equiv='Refresh' content='0; URL=edit.php?id=".$id_user."'>";
}
}
////////Изменение страны
else if (isset($_POST['services'])){//Если существует фамилия
$services = $_POST['services'];
if ($services == '') {
exit("Вы не ввели страну<br><a href='edit.php'>Вернуться назад</a>");
}
$up = mysql_query("UPDATE users SET services='$services' WHERE id='$id_user'");//обновляем страну
if ($up == true) {
echo "<meta http-equiv='Refresh' content='0; URL=edit.php?id=".$id_user."'>";
}
}
////////Изменение страны
else if (isset($_POST['photos'])){//Если существует фамилия
$photos = $_POST['photos'];
if ($photos == '') {
exit("Вы не ввели страну<br><a href='edit.php'>Вернуться назад</a>");
}
$up = mysql_query("UPDATE users SET photos='$photos' WHERE id='$id_user'");//обновляем страну
if ($up == true) {
echo "<meta http-equiv='Refresh' content='0; URL=edit.php?id=".$id_user."'>";
}
}
////////Изменение страны
else if (isset($_POST['contacts'])){//Если существует фамилия
$contacts = $_POST['contacts'];
if ($contacts == '') {
exit("Вы не ввели страну<br><a href='edit.php'>Вернуться назад</a>");
}
$up = mysql_query("UPDATE users SET contacts='$contacts' WHERE id='$id_user'");//обновляем страну
if ($up == true) {
echo "<meta http-equiv='Refresh' content='0; URL=edit.php?id=".$id_user."'>";
}
}
////////Изменение страны
else if (isset($_POST['slogan'])){//Если существует фамилия
$slogan = $_POST['slogan'];
if ($slogan == '') {
exit("Вы не ввели страну<br><a href='edit.php'>Вернуться назад</a>");
}
$up = mysql_query("UPDATE users SET slogan='$slogan' WHERE id='$id_user'");//обновляем страну
if ($up == true) {
echo "<meta http-equiv='Refresh' content='0; URL=edit.php?id=".$id_user."'>";
}
}
?>
</body>
</html>