Cześć ;)!
Od kilku dni zmagam się z problemem z biblioteką GD ,otóż chciałbym ,żeby moje zdjęcie po rotacji skalowało się jeszcze do rozmiarów 800x600 ,lecz ta funkcja właśnie mi nie działa nie mam pojęcia o co może chodzić w bibliotece tej nie siedzę zbyt długo ,dlatego tutaj pisze ,bo pewnie znajdzie się jakiś doświadczony użytkownik obeznany z tą biblioteką!
Z góry dziękuje!
Zasada działania programu:
- Rotacja obrazu,
- Skalowanie obrazu do rozmiarów 800x600
- Zapis obrazu do pliku
<?php
session_start();
$name = date('YmdHis'); //Nazwa pliku jako data
$allowed = array ('image/pjpeg', 'image/jpeg', 'image/JPG', 'image/X-PNG', 'image/PNG', 'image/png', 'image/x-png'); //formaty pliku
$size = 2097152; //Rozmiar pliku
$filename = "../../upload/$name.png"; //nazwa pliku
if (isset($_POST['submit']))
{
if (isset($_FILES['upload']))
{
if(!in_array($_FILES['upload']['type'], $allowed) || ($_FILES['upload']['size'] > $size))
{
$error = $_SESSION['type'] = "<div id=warning>Wielkość pliku lub format jest niedozwolony!</br>Maksymalna wielkość pliku to 2MB</br>Dozwolone formaty to JPG i PNG</div>";
header('Location: ../../add.php');
}
if(empty($error))
{
if (move_uploaded_file ($_FILES['upload']['tmp_name'], $filename))
{
$exif = exif_read_data($filename);
if(isset($exif['Orientation']))
{
$orientation = $exif['Orientation'];
}
elseif(isset($exif['IFD0']['Orientation']))
{
$orientation = $exif['Orientation'];
}
else
{
$orientation = 0;
}
$img = imagecreatefrompng($filename);
switch($orientation)
{
case 3;
imagerotate($img, 180, -1);
break;
case 6;
imagerotate($img, -90, -1);
break;
case 8;
imagerotate($img, -90, -1);
break;
case 0;
imagerotate($img, 0, 0);
break;
}
$image_width = imagesx($img);
$image_height = imagesy($img);
$scale_width = 800;
$scale_height = 600;
$scale_img = imagecreatetruecolor($scale_width, $scale_height);
imagecopyresized("$scale_img, $img, 0, 0, 0, 0, $scale_width, $scale_height, $image_width, $image_height ");
imagepng($scale_img);
$_SESSION['upload_done'] = "<div id=successful>Twoje zdjęcie zostało przesłane</div>";
header('Location: ../../add.php');
}
}
}
}
?>