webForumDet fria alternativet

förminska bild

12 svar · 446 visningar · startad av WebbisNet

WebbisNetMedlem sedan feb. 20032 027 inlägg
#1

nån som vet hur man automatiskt förminskar en bild så att den behåller sitt höjd/bredd-förhållande?

finns det ett php-script så tar jag gärna emot ett exempel då jag inte kan php

Nexus86Medlem sedan okt. 20023 030 inlägg
#2

Vill du att php ska spara bilden på servern också eller bara att man använder php-scriptet som bild i img-taggen?
D.v.s

<img src="tumnagel.php?bildfil=bildensnamn.jpg">

eller

<a href="skapatumnagel.php?fromfil=bild1.jpg&tofil=bild2.jpg">Förminska bild1.jpg och spara den som bild2.jpg</a>
WebbisNetMedlem sedan feb. 20032 027 inlägg
#3

Nexus86 skrev:

Vill du att php ska spara bilden på servern också eller bara att man använder php-scriptet som bild i img-taggen?
D.v.s

<img src="tumnagel.php?bildfil=bildensnamn.jpg">

eller

<a href="skapatumnagel.php?fromfil=bild1.jpg&tofil=bild2.jpg">Förminska bild1.jpg och spara den som bild2.jpg</a>

Jag vill att bilden bara ska vara förminskad på klientsidan så att bilden kan visas i fullstorlek på servern.

Nexus86Medlem sedan okt. 20023 030 inlägg
#4

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?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#5

Nexus86 skrev:

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?

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

Nexus86Medlem sedan okt. 20023 030 inlägg
#6

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).

<a href="storabilden.jpg"><img src="bild.php?bild=storabilden.jpg"></a>
<?
$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å. ;)

Nexus86Medlem sedan okt. 20023 030 inlägg
#7

Som jag kan se på http://www.webbisen.com/pics så har du slagit ihop båda koderna. På http://www.webbisen.com/pics ska du bara ha den översta koden, i http://www.webbisen.com/pics/bild.php lägger du den nedre koden. (Den färgade)

WebbisNetMedlem sedan feb. 20032 027 inlägg
#8

Nexus86 skrev:

Som jag kan se på http://www.webbisen.com/pics så har du slagit ihop båda koderna. På http://www.webbisen.com/pics ska du bara ha den översta koden, i http://www.webbisen.com/pics/bild.php lägger du den nedre koden. (Den färgade)

la om adressen till https://www.webbisen.com/pics/php/index.php
Koden verkar funka, men bilden visas inte förminskad, bara i orginalstorlek

Nexus86Medlem sedan okt. 20023 030 inlägg
#9

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.

http://jspc.mine.nu/demonstration

WebbisNetMedlem sedan feb. 20032 027 inlägg
#10

Nexus86 skrev:

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.

http://jspc.mine.nu/demonstration

Vad betyder GD2?

Mitt webhotell kör på linuxserver så de borde väl hålla den uppdaterad

Nexus86Medlem sedan okt. 20023 030 inlägg
#11

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. :)

<? phpinfo(); ?>
WebbisNetMedlem sedan feb. 20032 027 inlägg
#12

http://www.webbisen.com/pics/php/phpinfo.php

jag har 1.6.2 eller högre enligt infon

MatteMedlem sedan aug. 20002 975 inlägg
#13

Tar du då Nexus86 skript och byter ut imagecreatetruecolor mot imagecreate samt imagecopyresampled mot imagecopyresized, med samma parametetrar, så tror jag det ska fungera.

135 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)