SSteadyMedlem sedan dec. 2004225 inlägg Jag var helt ute och vimsade nu ser jag, eftersom jag kollade fel saker i if-satsen. Antar att det har att göra med den mängd alkohol man intog under nyårskvällen. ;)
Har uppdaterat inlägget nu, och det funkar finfint. Och ja, det är en prestandafråga, men eftersom det är en väldigt liten site så känns det som det inte spelar någon större roll.
Tack så mycket för all hjälp kjell, var skickar jag pengarna? :e
Ha de!
/red Envis som jag är, kunde jag inte släppa det där med prestandafrågan, men, eftersom din fråga bara hämtar en post blir det ju inte riktigt rätt heller, vad jag kan förstå. Hur menar du? :)
kjellMedlem sedan dec. 1999757 inläggJag menar att det räcker med en post för att konstatera om det var två timmar sedan någon laddade upp. Jag använde funktionen time() och när jag söker igenom tabellen plockar jag ut högsta värdet (senaste tiden) från fältet Uploadtime i SQL-frågan.
SSteadyMedlem sedan dec. 2004225 inlägg Istället för att öppna en helt ny tråd frågar jag här. Hur gör jag om jag vill rotera en bild? Det ska alltså först skapas en thumb av tempbilden så man ser hur den ser ut, sedan ska man kunna välja om man vill rotera bilden 90 grader medsols, 90 grader motsols eller 180 grader. Sedan ska min ovanstående kod köras, för att ladda upp bilden. Har bara hittat hur man gör med jpeg. Går det ens att göra med andra filformat?
Tack på förhand
kjellMedlem sedan dec. 1999757 inläggHar aldrig testat att rotera bilder men det fungerar säkert lika bra i formatet png. I manualen för imagerotate finns ett exempel angivet med jpg och det borde fungera på samma sätt med png. Förmodligen bara att byta ut jpg-specifika värden till motsvarande för png, exempelvis imagecreatefromjpeg till imagecreatefrompng o.s.v.
SSteadyMedlem sedan dec. 2004225 inlägg Okej, får till det, nästan! :) Såhär ser min thumb.php ut, den kör jag genom att skriva
<img src="thumb.php?bild=bilder/1.jpg" style="border: none;" />
Har försökt att redigera den lite så att den både förminskar och roterar bilden så jag vill ha det.
$maxhojd = 100; // Byt ut mot önskad maxhöjd
$maxbredd = 100; // Byt ut mot önskad maxbredd
$imgkvalitet = 90; // Byt ut mot önskad bildkvalitet (max 100)
$degrees = 90; // Byt ut mot önskad rotation
if (!isset($_GET['bild']) || !file_exists($_GET['bild'])) {
exit;
}
$img_x_y_size = getimagesize($_GET['bild']);
switch($img_x_y_size[2]) {
case 1;
header("Content-type: image/gif");
$imgres = ImageCreateFromGif($_GET['bild']);
break;
case 2;
header("Content-type: image/jpeg");
$imgres = ImageCreateFromJpeg($_GET['bild']);
break;
}
$rotate = imagerotate($imgres, $degrees, 0);
$imgbredd = imagesx($imgres);
$imghojd = imagesy($imgres);
$procentbredd = $maxbredd / $imgbredd;
$procenthojd = $maxhojd / $imghojd;
if ($procentbredd < $procenthojd) {
$nybredd = round($imgbredd * $procentbredd);
$nyhojd = round($imghojd * $procentbredd);
} else {
$nybredd = round($imgbredd * $procenthojd);
$nyhojd = round($imghojd * $procenthojd);
}
$thumbres = ImageCreateTrueColor($nybredd, $nyhojd);
ImageCopyResampled($thumbres, $imgres, 0, 0, 0, 0, $nybredd, $nyhojd, $imgbredd, $imghojd);
ImageDestroy($imgres);
ImageJpeg($thumbres, "", $imgkvalitet);
[b]ImageJpeg($rotate);[/b]
ImageDestroy($thumres);
Den delen jag har markerat med "bold" funkar inte, men om jag tar bort ImageJpeg($thumbres, "", $imgkvalitet); så funkar det. Hur gör jag för att köra två stycken ImageJpeg? Eller går det ens?