Ik begon met het zoeken naar een php script om jpg afbeelding 180 graden te draaien. Dan kon ik makkelijk Ipod foto's op het web aanpassen. Al snel een script gevonden maar zodra ik het uitprobeerde kreeg ik een melding dat de foto header niet zou kloppen. Om de fout oorzaak te vinden gooide ik regel voor regel weg tot ik de melding kwijt was.
Ik kwam uit bij header('Content-type: image/jpeg');
Goed, daarna verschillende jpg's geprobeerd en allemaal bleven ze de foutmelding genereren. Grote letters, kleine letters, grote afbeeldingen kleine afbeeldingen niets hielp.

Nou dan eens kijken wat er gebeurt als ik een jpg door php laat maken dacht ik. Maar ook dat blijft een foutmelding geven.'De afbeelding kan niet worden weergegeven omdat hij fouten bevat'. Netjes in het Nederlands terwijl ik geen fout afhandeling in het Nederlands zie.

Als ik //header('Content-type: image/jpeg'); even niet actief zet krijg ik geen foutmelding maar een heleboel vreemde tekens.

Ik gebruik nu 2 PHP script voorbeelden die foutloos moeten zijn.
Omdat ik dacht dat het kwam van mijn Synology heb ik het op een experimentele site van me gezet http://eenander.xyz/tuin/foto.php maar ook daar netjes in het Nederlands een fout melding.

Nu is de vraag wat gaat er fout en hoe kan ik een willekeurige JPG draaien? De Nederlandse foutmelding vind ik leuk om te weten hoe die gegenereerd wordt.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>foto roteren</TITLE>
</HEAD>
<BODY>
<?php 
// Create a blank image and add some text
$im = imagecreatetruecolor(400, 400);                            // afmetingen
$text_color = imagecolorallocate($im, 5, 230, 150);              // afbeelding, R, G, B waarden  
imagestring($im, 5, 15, 25,  'A Simple Text String', $text_color); // afbeelding, font, x-linkerhoek, y-linkerhoek, tekst, kleur
// Set the content type header - in this case image/jpeg
// Output the image
imagejpeg($im,'simpeltext,jpg');
// Free up memory
imagedestroy($im);

// File and rotation
$filename = 'simpeltext,jpg';
$degrees = 180;

// Content type
header('Content-type: image/jpeg');

// Load
$source = imagecreatefromjpeg($filename);

// Rotate
$rotate = imagerotate($source, $degrees, 0);

// Output
imagejpeg($rotate);

// Free the memory
imagedestroy($source);
imagedestroy($rotate);
?>
<IMG SRC="simpeltext,jpg">
</BODY>
</HTML>

Volgens mij zijn de modjes nog niet aan de koffie. (hint)
Al 2 dagen staat dit topic in de "koffie hoek".
Heeft dit topic niet gewoon een programeer probleem? (nog een hint)
Bart V B wellicht heb je gelijk, ik dacht dat ik juist hiet moest zijn omdat het gaat over voorbeelden die niet door een PHP beginner bruikbaar zijn. Dat kan aan de php beginner liggen maar wellicht ook aan de gene die het voorbeeld geeft. Even een voorbeeld over voorbeelden ;-) Op http://www.17educations.com/php/how-to-rotate-image-and-save-in-php/ zie ik een voorbeeld met php en html. In mijn bovenstaande topic krijg ik (terecht) juist te lezen dat het php een eigen pagina moet hebben. Als php beginner is dat lastig te snappen.

Ik heb een grote foto en een thumbnail die gedraaid moeten worden.


<?php
ob_start(); 
ini_set('display_errors', 1); // 0 = uit, 1 = aan

$fotonaam = $_GET['foto'];
$thfotonaam = "th".$fotonaam;
$padnaarplaatje="../plaatjes/";

// File and rotation
$filename = $padnaarplaatje.$fotonaam;
$thfilename = $padnaarplaatje.$thfotonaam;
// rotatiehoek
$degrees = 180;
// Content type
header('Content-type: image/jpeg');
// Load
$source = imagecreatefromjpeg($filename);
// imagerotate(bron, hoek, achtergrondkleur, transparant kleuren negeren)
$rotate = imagerotate($source, $degrees, 0);

// Output
imagejpeg($rotate);
//and save it on your server...
//file_put_contents($filename,$rotate);

//move_uploaded_file($rotate, $filename);
if(empty($errors)==true){
         move_uploaded_file($rotate, $filename);
         echo "Success";
      }else{
         print_r($errors);
      }

imagedestroy($source);
imagedestroy($rotate);

// File and rotation
$thfilename = $padnaarplaatje.$thfotonaam;
// rotatiehoek
$degrees = 180;
// Content type
header('Content-type: image/jpeg');
// Load
$thsource = imagecreatefromjpeg($thfilename);
//imagerotate(bron, hoek, achtergrondkleur, transparant kleuren negeren)
$throtate = imagerotate($thsource, $degrees, 0);

// Output
imagejpeg($throtate);

//and save it on your server...
file_put_contents($thfilename,$throtate);
//echo " -- filenaam=".$thfilename;
//move_uploaded_file($throtate, $thfilename);
imagedestroy($thsource);
imagedestroy($throtate);
?> 


[size=xsmall]Toevoeging op 01/12/2016 13:39:20:[/size]

-Ariën- zie bovenstaande code.
De grote foto krijg ik op zijn kop te zien, de kleine foto niet. Geen van beide wordt opgeslagen.

Op http://www.17educations.com/php/how-to-rotate-image-and-save-in-php/ zie ik een voorbeeld met php en html. In mijn bovenstaande topic krijg ik (terecht) juist te lezen dat het php een eigen pagina moet hebben. Als php beginner is dat lastig te snappen.

Vind je? Je ziet in het voorbeeld dat de output niet gebruikt wordt, maar wordt opgeslagen als een nieuw bestand (zie het 2e argument voor [php]imagejpeg[/php]. Als je het voorbeeld zou volgen zou je geen probleem moeten hebben.
Ben hartelijk dank voor je reactie. Na een dag zoeken merk ik dat ik dus daar overheen gelezen heb. Gewoon bij imagejpeg de $filename invoeren en klaar. ;-)

Reageren