Avatar billede baitianlong Nybegynder
22. oktober 2004 - 01:21 Der er 5 kommentarer og
1 løsning

upload billede, resize og gem kopi

Jeg skal have mulighed for at man kan uploade et billede, der skal så dannes en mindre version (med 100 px i bredden og de rette dimensioner)

Jeg har skrevet denne kode indtil videre (baseret på php.net osv.)

if($funktion == "upload") {
    $uploadedlogo = $_FILES['uploadlogo'];
    if($uploadedlogo['error'] != UPLOAD_ERR_OK) {
        $melding = "Upload did not work !";
    } else {
        $location = getURL()."/images/";
        move_uploaded_file($uploadedlogo['tmp_name'], $location.$uploadedlogo['name']);
        $filename = $location.$uploadedlogo['name'];
        $targetwidth = 100;
        header('Content-type: image/jpeg');
        list($width, $height) = getimagesize($filename);
        $new_width = $targetwidth;
        $krympefaktor = round($targetwidth/$width);
        $new_height = $height * $krympefaktor;
        $image_blank = imagecreatetruecolor($new_width, $new_height);
        $image = imagecreatefromjpeg($filename);
        imagecopyresampled($image_blank, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

...Jeg mangler bare resten... Billedet skal efter denne kode gemmes som $filename."_thumb.jpg" i mappen "$location"

Det er ikke let, men jeg håber i kan hjælpe mig :)
Avatar billede coderdk Praktikant
22. oktober 2004 - 01:25 #1
imagejpeg( $image_blank, $location."/".$filename."_thumb.jpg", 85 );

Hvis $location er /home/birger/billeder og $filename er hest_der_griner.jpg så vil den gemme filen: /home/birger/billeder/hest_der_griner.jpg_thumb.jpg med 15% JPEG-kompression...
Husk at bruge imagedestroy(); på $image_blank og $image når du er færdig med dem!
Avatar billede baitianlong Nybegynder
22. oktober 2004 - 01:27 #2
ok, vi skal lige have pillet .jpg fra første gang så :) Det er plat at det er med to gange
Avatar billede coderdk Praktikant
22. oktober 2004 - 02:41 #3
det betyder såmænd ikke så meget, men du kan pille det fra ved:

imagejpeg( $image_blank, $location . "/" . basename( $filename, ".jpg" ) . "_thumb.jpg", 85 );
Avatar billede baitianlong Nybegynder
22. oktober 2004 - 18:04 #4
Jeg har måttet ændre noget i scriptet. Jeg måtte ikke bruge move_uploaded_file med en URL i. Nu ser scriptet sådan her ud:

if($funktion == "upload") {
    if($_FILES['uploadlogo']['error'] != UPLOAD_ERR_OK) {
        $melding = "Upload did not work !";
    } else {
        $location = getURL()."images/";
        move_uploaded_file($_FILES['uploadlogo']['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/cms/images/".$_FILES['uploadlogo']['name']);
        $filename = $location.$_FILES['uploadlogo']['name'];
        $targetwidth = 100;
        header('Content-type: image/jpeg');
        list($width, $height) = getimagesize($filename);
        $new_width = $targetwidth;
        $krympefaktor = round($targetwidth/$width);
        $new_height = $height * $krympefaktor;
        $image_blank = imagecreatetruecolor($new_width, $new_height);
        $image = imagecreatefromjpeg($filename);
        imagecopyresampled($image_blank, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
        imagejpeg( $image_blank, $location . "/" . basename( $filename, ".jpg" ) . "_thumb.jpg", 85 );
    }
}

Men der er problemer med rettigheder endnu. Jeg må ikke hente størrelsen via URL. eller sådan noget !

getimagesize(): URL file-access is disabled in the server configuration in <b>/customers/xxxxx/xxxxx/xxxxx/xxxxx/xxxxx</b> on line <b>19</b><br />

Hvordan får jeg fikset det ?
Avatar billede baitianlong Nybegynder
22. oktober 2004 - 18:25 #5
Nå, jeg fik det fikset selv, nu virker det hele:

$new_width = 100;
$krympefaktor = $new_width/$width;
$new_height = round($height * $krympefaktor);
$image_blank = imagecreatetruecolor($new_width, $new_height);

Sådan skulle det skrives.

Men coderdk, Tak for hjælpen. Smid et svar
Avatar billede coderdk Praktikant
22. oktober 2004 - 19:04 #6
Aight :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester