Avatar billede hoejgaard Juniormester
02. august 2005 - 11:54 Der er 17 kommentarer og
1 løsning

vedr. billedbehandling

Jeg er blevet i tvivl om hvordan følgende kode virker :
Jeg kan ikke se hvorhenne/hvordan billedet bliver overført til mappen "lille" ??????????

<?php
// denne del laver thumbnails i 50*50 (thumbnaillille) til thumbnailmappelille

$info = @getimagesize($til);
$percent = 0.5; // if you want to scale down first
$imagethumbsize = 50; // thumbnail size (area cropped in middle of image)
switch ( $info[2] )
{
  case 1:
    // gif
   
// Content type
header('Content-type: image/gif');
$billede1 = tempnam('/var/www/komxx.dk/public_html/lille/', 'f1_');
;
$billede1b = $billede1 . '.' . 'gif';
$billede11 = basename($billede1b);
// Get new dimensions
list($width, $height) = getimagesize($til);
if ($width<100 or $height<100) { 
$new_width = $width ;
$new_height = $height ; }
else {

$new_width = $width * $percent;
$new_height = $height * $percent;  }
// Resample
$image_p = imagecreate($imagethumbsize , $imagethumbsize);  // true color for best quality
$white = imagecolorallocate($image_p, 0xFF, 0xFF, 0xFF); //hvid baggrund
imagefill($image_p, 0, 0, $white);  //hvid baggrund
$image = imagecreatefromgif($til);


// basically take this line and put in your versin the -($new_width/2) + ($imagethumbsize/2) & -($new_height/2) + ($imagethumbsize/2) for
// the 2/3 position in the 3 and 4 place for imagecopyresampled
// -($new_width/2) + ($imagethumbsize/2)
// AND
// -($new_height/2) + ($imagethumbsize/2)
// are the trick
imagecopyresampled($image_p, $image, -($new_width/2) + ($imagethumbsize/2), -($new_height/2) + ($imagethumbsize/2), 0, 0, $new_width , $new_height , $width, $height);
break;

  case 2:
    // jpeg

// Content type
header('Content-type: image/jpg');
 
  $billede1 = tempnam('/var/www/komxx.dk/public_html/lille/', 'f1_');
$billede1b = $billede1 . '.' . 'jpg';
$billede11 = basename($billede1b);

// Get new dimensions
list($width, $height) = getimagesize($til);
if ($width<100 or $height<100) { 
$new_width = $width;
$new_height = $height; }
else {

$new_width = $width * $percent;
$new_height = $height * $percent;  }
// Resample







$image_p = imagecreatetruecolor($imagethumbsize , $imagethumbsize);  // true color for best quality
$white = imagecolorallocate($image_p, 0xFF, 0xFF, 0xFF); //hvid baggrund
imagefill($image_p, 0, 0, $white);  //hvid baggrund
$image = imagecreatefromjpeg($til);


// basically take this line and put in your versin the -($new_width/2) + ($imagethumbsize/2) & -($new_height/2) + ($imagethumbsize/2) for
// the 2/3 position in the 3 and 4 place for imagecopyresampled
// -($new_width/2) + ($imagethumbsize/2)
// AND
// -($new_height/2) + ($imagethumbsize/2)
// are the trick
imagecopyresampled($image_p, $image, -($new_width/2) + ($imagethumbsize/2), -($new_height/2) + ($imagethumbsize/2), 0, 0, $new_width , $new_height , $width, $height);



    break;
  default:
  // die( 'Ikke understøttet. Vi tager kun imod jpg og gif!' );
}

switch ( $info[2] )
{

  case 1:
    $billede2 = $billede1 . '2' . '.' . 'gif';
    $billede11 = basename($billede2);
    imagegif($image_p, $billede2, 100);
    break;
  case 2:
    $billede2 = $billede1 . '2' . '.' . 'jpg';
    $billede11 = basename($billede2);
    imagejpeg($image_p, $billede2, 100);
    break;
}
Avatar billede Slettet bruger
02. august 2005 - 11:58 #1
$billede1 = tempnam('/var/www/komxx.dk/public_html/lille/', 'f1_');

..og oprettet her:

imagejpeg($image_p, $billede2, 100);

:)

--
pacroon
Avatar billede hoejgaard Juniormester
02. august 2005 - 12:03 #2
Jamen billedet kommer jo ikke ud af det blå ?? Hvor bliver det indsat i koden henne ??
Og hvad er det der gør at det overføres til netop mappen "lille" ????
Avatar billede hoejgaard Juniormester
02. august 2005 - 12:06 #3
okay det kommer vel fra $til, og dette er så stien :
$billede1 = tempnam('/var/www/komxx.dk/public_html/lille/', 'f1_');

rigtigt forstået ??

Men sleve overførslen til mappen lille kan jeg ikke helt forstå hvordan sker ????
Avatar billede hoejgaard Juniormester
02. august 2005 - 12:18 #4
nå er vist med nu.. men en ting til :
Når jeg ser i mappen  "lille" er filen uden endelsen,  eks. uden .jpg ??
Hvordan kan det ske ??
Avatar billede Slettet bruger
02. august 2005 - 12:18 #5
Overførslen sker ved at tempnam() opretter en midlertidig fil, og imagejpeg() og/eller imagegif() som du gør brug af, overskriver så denne midlertidige fil med billeddata.

Det er det andet argumnet i funktionen der fortæller hvor billedet skal gemmes.

Hvis du havde skrevet
magejpeg($image_p); i stedet for magejpeg($image_p, $billede2, 100); - ville billedet blive vidst på din skærm i stedet for at blive gemt på $billed2s plads, eftersom du sætter en header('Content-type: image/jpg'); i starten.

Spørg hvis du er i tvivl om mere :)
Avatar billede Slettet bruger
02. august 2005 - 12:19 #6
magejpeg($image_p); skal selvfølgelig være imagejpeg($image_p); :)
Avatar billede Slettet bruger
02. august 2005 - 12:21 #7
Jeg tror det er den her der er forkert:

$billede2 = $billede1 . '2' . '.' . 'jpg';

prøv at rette den til

$billede2 = $billede1.'2.jpg';
Avatar billede hoejgaard Juniormester
02. august 2005 - 12:40 #8
næ så er det der slet ikke !
Avatar billede Slettet bruger
02. august 2005 - 12:48 #9
Hvad med sådan:

    $billede2 = $billede1.'2.jpg';
    $billede2 = basename($billede2);
    imagejpeg($image_p, $billede2, 100);
    break;
--
pacroon
Avatar billede hoejgaard Juniormester
02. august 2005 - 12:51 #10
Sagen er at det har virket hos b-one men nu hos powerhosting virker det ikke !
Jeg får meddelelser som her og mapperne "test" , "thumbnailmappelille" og "thumbnailmappestor" er oprettet i serverens open_basedir indstilling ! :

[02-Aug-2005 12:24:04] PHP Warning:  imagejpeg(): open_basedir restriction in effect. File(/var/www/komxx.dk/public_html/thumbnailmappelille/f1_TJvbJQ2.jpg) is not within the allowed path(s): (/var/www/komxx.dk/public_html/test:/var/www/komxx.dk/tmp:/var/www/komxx.dk/public_html/thumbnailmappestor:/var/www/komxx.dk/public_html/thumbnailmappelille:/var/www/komxx.dk/public_html/) in /mnt/raid/www/www/komxx.dk/public_html/opdatering_tilmelding_final_thumbnail_laverthumbnails.php on line 301

[02-Aug-2005 12:24:04] PHP Warning:  imagejpeg(): Invalid filename '/var/www/komxx.dk/public_html/thumbnailmappelille/f1_TJvbJQ2.jpg' in /mnt/raid/www/www/komxx.dk/public_html/opdatering_tilmelding_final_thumbnail_laverthumbnails.php on line 301

[02-Aug-2005 12:24:04] PHP Warning:  imagejpeg(): open_basedir restriction in effect. File(/var/www/komxx.dk/public_html/thumbnailmappestor/f1_6n3Z2y2.jpg) is not within the allowed path(s): (/var/www/komxx.dk/public_html/test:/var/www/komxx.dk/tmp:/var/www/komxx.dk/public_html/thumbnailmappestor:/var/www/komxx.dk/public_html/thumbnailmappelille:/var/www/komxx.dk/public_html/) in /mnt/raid/www/www/komxx.dk/public_html/opdatering_tilmelding_final_thumbnail_laverthumbnails.php on line 400

[02-Aug-2005 12:24:04] PHP Warning:  imagejpeg(): Invalid filename '/var/www/komxx.dk/public_html/thumbnailmappestor/f1_6n3Z2y2.jpg' in /mnt/raid/www/www/komxx.dk/public_html/opdatering_tilmelding_final_thumbnail_laverthumbnails.php on line 400
Avatar billede Slettet bruger
02. august 2005 - 12:52 #11
Lav
$billede1 = tempnam('/var/www/komxx.dk/public_html/lille/', 'f1_');

om til
$billede1 = tempnam('var/www/komxx.dk/public_html/thumbnailmappelille/', 'f1_');

måske...
Avatar billede hoejgaard Juniormester
02. august 2005 - 13:16 #12
Der kommer nu en tom fil i mappen "thumbnailmappelille" men UDEN endelsen 2.jpg  ?
Hvad kan det skyldes at hele filen ikke er med ??
Avatar billede hoejgaard Juniormester
02. august 2005 - 13:16 #13
Jweg bruger iøvrigt stadig :
$billede1 = tempnam('/var/www/komxx.dk/public_html/thumbnailmappelille/', 'f1_');
Avatar billede Slettet bruger
02. august 2005 - 13:29 #14
Hm, kan du ikke uploade hele scriptet som .phps på dit site, så jeg kan prøve at teste det selv..
Avatar billede hoejgaard Juniormester
02. august 2005 - 13:37 #15
øhh hvad er .phps ??
Avatar billede Slettet bruger
02. august 2005 - 14:18 #16
PHP kildekode, hvis du omdøber din .php fil til .phps vil de fleste webservere vise PHP koden i stedet for den tolkede PHP side.

Jeg har bare på fornemmelsen at der er et eller andet du mangler at vise mig - sender du ikke billedet fra en upload form, eller sådan noget?

Ellers har jeg lavet et resize script der virker, som også flytter filerne til et thumbnail biblotek.
Avatar billede hoejgaard Juniormester
02. august 2005 - 14:56 #17
Tror ikke jeg ka få det til at virke pga udbyderen !
Men vil meget gerne prøve om dit script kan køre !!
Avatar billede hoejgaard Juniormester
08. august 2005 - 18:18 #18
lukker
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