Toon posts:

[php] Resize images

Pagina: 1
Acties:
  • 33 views sinds 30-01-2008

Verwijderd

Topicstarter
Hoi,

ik zit te klooien met de resize opties. Nu wil ik dus alle foto's die groter zijn dan 800x600 in verhouding resizen en heb ik dus het volgende gebakken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?
    function resizeImages($image, $id){
            $max_width  = 800;
            $max_height = 600;
    
            $ext=strtolower(end(explode(".",$image)));
            if ($ext=="jpg"||$ext=="jpeg"){
                $im=ImageCreateFromJPEG($image);
            }
            elseif ($ext=="gif"){
                $im=ImageCreateFromGIF($image);
            }
            elseif ($ext=="png"){
                $im=ImageCreateFromPNG($image);
            }
    
            list($width, $height) = getimagesize($image);

             if ($width > $max_width) {
                 $newheight = ($max_width / $width) * $height;
                 $newwidth = $max_width;
             }

             if ($height > $max_height) {
               $newwidth = ($max_height / $height) * $width;
               $newheight = $max_height;
             }
        
    
            if($im){
                if (function_exists("ImageCreateTrueColor")){
                    $im2 = ImageCreateTrueColor($newwidth,$newheight);
                }
                else {
                    $im2 = ImageCreate($newwidth,$newheight);
                }
                if (function_exists("ImageCopyResampled")){
                    ImageCopyResampled($im2,$im,0,0,0,0,$newwidth,$newheight,$width,$height);
                }
                else{
                    ImageCopyResized($im2,$im,0,0,0,0,$newwidth,$newheight,$width,$height);
                }
                
                preg_match_all("/(.*)\.(.*)$/i", basename($image), $extension);
                $filename = "./albums/".$_COOKIE['login_id']."/".$id. "." . $extension[2][0];
                ImageJpeg($im, $filename, 20);
            }
    }
?>


Deze functie roep ik aan met:
PHP:
1
2
3
<?
resizeImages($_FILES['photo']['tmp_name'], mysql_insert_id());
?>

maar helaas hij loopt de procedure wel door, maar hij upload niks.

Iemand een passende oplossing ik loop vast.

Piete!

Verwijderd

Rechten controleren op de directory waar het plaatje moet komen en op de tmp directory.
En <form ....... enctype="multipart/form-data"> gebruiken.

Verwijderd

Topicstarter
nouja hij werkte helemaal goed zonder dat ik deze functie toevoegde, voorheen liet ik alle formaten toe, maar ik wil ze nu gaan resizen tot 800 x 600 zit dus echt in de functie.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

En nu mogen wij je script voor je gaan debuggen? Sorry, maar dat is hier dus niet de bedoeling. Debuggen is iets dat je zelf moet kunnen; gewoon op strategische punten wat variabelen uitvoeren om te checken of de waarden kloppen. Lees er ook Programming FAQ - Debuggen: hoe doe ik dat? eens op na.

Door middel van debuggen moet je de oorzaak van je probleem terug kunnen brengen naar één of enkele regels waar het mis gaat. Daarmee moet je er al veel beter uit kunnen komen, en lukt dat niet, dan kun je hier altijd nog een topic openen. Maar daarin verwacht ik dan wel meer inzet dan "dit wil ik, dit is mijn code, los het maar op". ;) Zie ook Programming FAQ - De "quickstart". :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Dit topic is gesloten.