<?php
function add_foto() {
function resizeImage($source, $max_x, $max_y, $save_image, $jpeg_quality = 100)
{
/*
* source - obrazek jpeg
* max_x - maksymalna szerokosc pomniejszonego obrazka
* max_y - maksymalna dlugosc pomniejszonego obrazka
* save_image - nazwa pliku do ktorego zostanie zapisany nowy obrazek
* jpeg_quality - jakosc powstalego obrazu jpeg - jezeli bedzie inny to argument jest nie wazny (domyslnie 100)
*/
$img_src = imagecreatefromjpeg($source);
$image_x = imagesx($img_src);
$image_y = imagesy($img_src);
if($image_x > $image_y) // Landscape
{
$ratio_x = ($image_x > $max_x) ? $max_x/$image_x : 1;
$ratio_y = $ratio_x;
$move = 'y';
}
else // Portrait
{
$ratio_y = ($image_y > $max_y) ? $max_y/$image_y : 1;
$ratio_x = $ratio_y;
$move = 'x';
}
$new_x = $image_x*$ratio_x;
$new_y = $image_y*$ratio_y;
$move_x = ($move == \"x\") ? ($max_x-$new_x)/2 : 0;
$move_y = ($move == \"y\") ? ($max_y-$new_y)/2 : 0;
$new_img = imagecreatetruecolor($max_x, $max_y);
$background = imagecolorallocate($new_img, 255, 255, 255);
imagefill($new_img, 0, 0, $background);
imagecopyresampled($new_img, $img_src, $move_x, $move_y, 0, 0, $new_x, $new_y, $image_x, $image_y);
imagejpeg($new_img, $save_image, 100);
}
$uploaddir = 'foto/';
$s = $_FILES['obrazek']['tmp_name'];
$i = $uploaddir . $_FILES['obrazek']['name'];
resizeImage($s, 72, 100, $i, 100); // (5 parametr opcjonalnie dla jpg)
?>
Pozwolilem sobie zaczerpnac funkcje zmniejszania obrazkow z tutejszego forum. Mam jednak problem, ktory brzmi nastepujaco. Gdy mam obrazek poziomy do zmiejszenia, skrypt zmniejsza go w nastepujacy sposob:
http://ferr.vbiz.pl/IM000019poprw.JPG. Chcialbym wiec poznac jaka tkwi przyczyna tego, ze skrypt zamiast zrobic z niego pionowy obrazek, dodaje biale miejsca z gory i dolu.