Kan du utveckla lite mer? Exakt hur ska det fungera?
Vill du ha så att bilden visas förminskad hos klienten och när denne sedan klickar på bilden så öppnas en popup med den fullstora bilden i eller att klienten bara ska ha en förminskning?
Hur stora förminskningar talar vi om? Är det i procent eller maxhöjd/maxbredd?
Kan du utveckla lite mer? Exakt hur ska det fungera?
Vill du ha så att bilden visas förminskad hos klienten och när denne sedan klickar på bilden så öppnas en popup med den fullstora bilden i eller att klienten bara ska ha en förminskning?
Hur stora förminskningar talar vi om? Är det i procent eller maxhöjd/maxbredd?
på https://www.webbisen.com/pics har jag 2 bilder, en liten och en i fullstorlek. Jag vill att den i fullstorlek enbart ska vara förminskad tills man har klickat på den. När det gäller förminskningen så ska bilden vara 100px i höjd
Kopiera nedanstående kod (den i php-taggen) och lägg det i en fil kallad bild.php. För att sedan få länkarna som du vill, använd den andra koden (den utan färg i kod-taggen).
<?
$maxhojd = 100; // Byt ut mot önskad maxhöjd
$maxbredd = 100; // Byt ut mot önskad maxbredd
$imgkvalitet = 90; // Byt ut mot önskad bildkvalitet (max 100)
header("Content-type: image/jpeg");
if (!isset($_GET['bild']) || !file_exists($_GET['bild'])) {
exit;
}
// Bild-attribut finns. Ready to go. Vi börjar med att läsa in bilden
$imgres = ImageCreateFromJpeg($_GET['bild']);
$imgbredd = imagesx($imgres); // Hämta bildens bredd
$imghojd = imagesy($imgres); // Hämta bildens höjd
$procentbredd = $maxbredd / $imgbredd; // Räkna ut procentuell skillnad mellan maxbredd och bildbredd
$procenthojd = $maxhojd / $imghojd; // Räkna ut procentuell skillnad mellan maxhöjd och bildhöjd
if ($procentbredd < $procenthojd) { // Om vi ska gå efter breddens procent
$nybredd = round($imgbredd * $procentbredd);
$nyhojd = round($imghojd * $procentbredd);
} else { // Om vi istället ska gå efter höjdens procent
$nybredd = round($imgbredd * $procenthojd);
$nyhojd = round($imghojd * $procenthojd);
}
// Skapa bild-resurs för tumnageln
$thumbres = ImageCreateTrueColor($nybredd, $nyhojd);
// Nästan klar. Kopiera filen till den mindre resursen
ImageCopyResampled($thumbres, $imgres, 0, 0, 0, 0, $nybredd, $nyhojd, $imgbredd, $imghojd);
// Rensa minnet litegrann
ImageDestroy($imgres);
// Visa den färdiga bilden
ImageJpeg($thumbres, "", $imgkvalitet);
// Rensa lite mer minne
ImageDestroy($thumres);
?>
Har tyvärr inte testat med det ska fungera. Säg till om inte så ska jag kolla.
R// Glömde nämna, har även givit koden en kommentar eller två. ;)
Efter vad bild.php vill säga så har du inte GD2, plus att koden inte ligger överst i filen. Du får inte ens ha en ny rad.
GD2 är ett måste för att den här koden ska fungera. :l Kan däremot ge mig in på att skriva en ny kod för versioner lägre än GD2 imorgon. Har iaf slängt ihop en demonstration till hur det här scriptet ser ut. Du får däremot stå ut med ADSL-linan för webbhotellet hade inte heller GD2.
Efter vad bild.php vill säga så har du inte GD2, plus att koden inte ligger överst i filen. Du får inte ens ha en ny rad.
GD2 är ett måste för att den här koden ska fungera. :l Kan däremot ge mig in på att skriva en ny kod för versioner lägre än GD2 imorgon. Har iaf slängt ihop en demonstration till hur det här scriptet ser ut. Du får däremot stå ut med ADSL-linan för webbhotellet hade inte heller GD2.
GD2 är en såkallad extension som ger php nya funktioner för grafik. Gör såhär, skapa en fil t.ex. "phpinfo.php" och klistra sedan in nedanstående kod i filen. Sedan lägger du upp en länk så ska jag kolla om ditt webbhotell har någon version av GD alls. :)
Tar du då Nexus86 skript och byter ut imagecreatetruecolor mot imagecreate samt imagecopyresampled mot imagecopyresized, med samma parametetrar, så tror jag det ska fungera.
271 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e