Avatar billede nightz Nybegynder
07. april 2009 - 21:49 Der er 5 kommentarer og
1 løsning

Hjælp til Watermark med php og GD-lib

Jeg har afprøvet følgende artikkel:
http://www.eksperten.dk/guide/1132
Men kan ikke få den til at virke...
Min program kode er følgende:
<?php
function getExt($filename)
{
  return strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
}
function watermark( $filename, $newfilename, $watermark='watermark.png', $quality=85 )
{
  $ext = getExt( $filename );  switch($ext) 
  {
    case 'jpeg':
    case 'jpe':
    case 'jpg':
      $srcim = imagecreatefromjpeg( $filename );
      break;
    case 'gif':
      $srcim = imagecreatefromgif( $filename );
      break;
    case 'png':
      $srcim = imagecreatefrompng( $filename );
      break;    default:
      return false;
  }
  $srcw  = imagesx($srcim);
  $srch = imagesy($srcim);
  $wext = getExt( $watermark );
  switch($wext)
  {
    case 'jpeg':
    case 'jpe':
    case 'jpg':
      $watim = imagecreatefromjpeg( $watermark );
      break;
    case 'gif':
      $watim = imagecreatefromgif( $watermark );
      break;
    case 'png':
      $watim = imagecreatefrompng( $watermark );
      break;
    default:
      return false;
  }
  $watw  = imagesx($watim);
  $wath = imagesy($watim);
    if($watw > $srcw || $wath > $srch)
  {
    return false; 
    }
    $dest_x = $srcw - $watw;
  $dest_y = $srch - $wath;
  imagecopy($srcim, $watim, $dest_x, $dest_y, 0, 0, $watw, $wath, 100 );
   
  switch($ext) 
  {
    case 'jpeg':
    case 'jpe':
    case 'jpg':
      imagejpeg( $srcim, $newfilename, $quality );
      break;
    case 'gif':
      imagegif( $srcim, $newfilename );
      break;
    case 'png':
      $png_q = floor( abs( $quality / 10 - 9.9 ) );
      imagepng( $srcim, $newfilename, $png_q );
      break;
    default:
      return false;
}
    imagedestroy( $srcim );
    imagedestroy( $watim );
    return file_exists($newfilename);
}
?>

Hejmmesiden ligger på en linux server,
på "nightz.dk/watermark/" og hedder "new.php", den skal placere "watermark.png" på "pic.jpg"
Yderliger er mappen antributter sat til 777 eller read, write mm.
Men der sker intet når jeg kører filen...
Kan nogle hjælpe?
Avatar billede jakobdo Ekspert
08. april 2009 - 10:48 #1
I linjen:
imagecopy($srcim, $watim, $dest_x, $dest_y, 0, 0, $watw, $wath, 100);

Skal du fjerne: 100, så det bare bliver:

imagecopy($srcim, $watim, $dest_x, $dest_y, 0, 0, $watw, $wath);

Og så skal du også huske at kalde:

watermark(...);

Gør du det ?

har rettet scriptet lidt, så den viser billedet, og ikke gemmer det.
Men se her:

http://www.codebreaker.dk/leg/871044.php
Avatar billede nightz Nybegynder
08. april 2009 - 12:25 #2
Har rettet "imagecopy" linjen til:
imagecopy($srcim, $watim, $dest_x, $dest_y, 0, 0, $watw, $wath);

Men funger ikke endnu...

Kalder jeg ikke mit watermark i følgende sætning?
function watermark( $filename, $newfilename, $watermark='watermark.png', $quality=85 )

PS.
min notepad kan ikke læse "871044.php" filen:(
Der kommer alt muligt gøgl frem...
Avatar billede jakobdo Ekspert
09. april 2009 - 10:18 #3
du kan ikke læse filen i notepad, den laver nemlig bare et billede. du kan få koden søndag, der er jeg foran en computer igen.
Avatar billede nightz Nybegynder
14. april 2009 - 16:03 #4
Har fundet et andet script, som spiller.
Skylder jeg nogle point??
:)
Avatar billede jakobdo Ekspert
14. april 2009 - 20:28 #5
Svar!
Avatar billede jakobdo Ekspert
16. april 2009 - 17:26 #6
Takker for point.
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