Avatar billede leif Seniormester
03. oktober 2004 - 16:02 Der er 7 kommentarer og
2 løsninger

Parse error line 51

Hej,

Har fået tilsendt dette script, men får Parse Error Line 51:


<?php
  // replace with your files
  $originalFileName    = "original.jpg";
  $destinationFileName = "nyt.jpg";
 
  // create a copy of the original image
  // works with jpg images
  // fell free to adapt to other formats ;)
  $fullPath = explode(".",$originalFileName);
  $lastIndex = sizeof($fullPath) - 1;
  $extension = $fullPath[$lastIndex];
  if (preg_match("/jpg|jpeg|JPG|JPEG/", $extension)){
      $sourceImage = imagecreatefromjpeg($originalFileName);
  }

  // get image dimensions
  $img_width  = imageSX($sourceImage);
  $img_height = imageSY($sourceImage);

  // convert to grayscale
  // note: this will NOT affect your original image, unless
  // originalFileName and destinationFileName are the same
  for ($y = 0; $y <$img_height; $y++) {
      for ($x = 0; $x <$img_width; $x++) {
          $rgb = imagecolorat($sourceImage, $x, $y);
          $red  = ($rgb >> 16) & 0xFF;
          $green = ($rgb >> 8)  & 0xFF;
          $blue  = $rgb & 0xFF;

          $gray = round(.299*$red + .587*$green + .114*$blue);
         
          // shift gray level to the left
          $grayR = $gray << 16;  // R: red
          $grayG = $gray << 8;    // G: green
          $grayB = $gray;        // B: blue
         
          // OR operation to compute gray value
          $grayColor = $grayR | $grayG | $grayB;

    // copy pixel values to new file buffer
  $destinationImage = ImageCreateTrueColor($img_width, $img_height);
  imagecopy($destinationImage, $sourceImage, 0, 0, 0, 0, $img_width, $img_height);

  // create file on disk
  imagejpeg($destinationImage, $destinationFileName);
 
  // destroy temp image buffers
  imagedestroy($destinationImage);   
  imagedestroy($sourceImage);
?>

Nogen der kan se hvorfor, jeg kan ikke lige ?

Fra
Leif
Avatar billede bromer Nybegynder
03. oktober 2004 - 16:14 #1
Scriptet er ikke rigtig færdigt.. du mangler at afslutte dine to for-løkker.
Avatar billede Slettet bruger
03. oktober 2004 - 16:18 #2
Og en anden gang, ville det hjælpe, hvis du fortæller os hele fejlbeskeden. Der er nemlig flere typer Parse errors, som ofte skyldes noget forskelligt.
Avatar billede shjorth Nybegynder
03. oktober 2004 - 16:33 #3
kan være jeg ser forkert, men:
  for ($y = 0; $y <$img_height; $y++) {
      for ($x = 0; $x <$img_width; $x++) {

de bliver ikke lukket ?? Altså
}
}
Avatar billede shjorth Nybegynder
03. oktober 2004 - 16:33 #4
heh Doh.. så jeg ikke.. sorry
Avatar billede leif Seniormester
03. oktober 2004 - 16:41 #5
bromer -> Hmm, okay, nu har jeg prøvet at lukke dem ved at sætte }} lige før ?> men så får jeg bare:

Warning: imagejpeg(): Unable to open 'nyt.jpg' for writing in /var/www/virtual/bruger/domain.dk/public_html/pix.php on line 45

Warning: imagecolorat(): 3 is not a valid Image resource in /var/www/virtual/bruger/domain.dk/public_html/pix.php on line 25

Warning: imagecopy(): 3 is not a valid Image resource in /var/www/virtual/bruger/domain.dk/public_html/pix.php on line 42


Sandbox -> Skal jeg nok huske !
Avatar billede Slettet bruger
03. oktober 2004 - 16:55 #6
Så vidt jeg lige kan se, så skal de være placeret omkring som her:

  for ($y = 0; $y <$img_height; $y++) {
      for ($x = 0; $x <$img_width; $x++) {
          $rgb = imagecolorat($sourceImage, $x, $y);
          $red  = ($rgb >> 16) & 0xFF;
          $green = ($rgb >> 8)  & 0xFF;
          $blue  = $rgb & 0xFF;

          $gray = round(.299*$red + .587*$green + .114*$blue);
       
          // shift gray level to the left
          $grayR = $gray << 16;  // R: red
          $grayG = $gray << 8;    // G: green
          $grayB = $gray;        // B: blue
       
          // OR operation to compute gray value
          $grayColor = $grayR | $grayG | $grayB;
      }
  }

Men der mangler noget mere, for der bliver beregnet en grå-værdi for hvert enkelt punkt i det originale billede, men der bliver ikke gjort noget med den værdi. Ud fra kommentarerne vil jeg tro, at det var meningen, at gråværdien skulle sættes tilbage i billedet igen.
Avatar billede leif Seniormester
17. oktober 2004 - 09:32 #7
Han indrømmede at scriptet var hamrende defekt og var planlagt til at blive includeret i nogen andre sider !

Men mange tak for jeres forsøg !

Nogen der vil have point ?
Avatar billede Slettet bruger
17. oktober 2004 - 13:29 #8
Tjoh, hvis du synes...
Avatar billede leif Seniormester
17. oktober 2004 - 13:35 #9
Du havde i hvert til fald ret i at der manglede lidt i scriptet.

Saa du faar lidt for at ledt mig paa sporet !
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