Avatar billede wormsk8 Nybegynder
18. juni 2005 - 18:12 Der er 11 kommentarer og
1 løsning

resize img

Står på bar bund, angående et script der kan følgende.

Først finde ud af et billeds størrelse, og hvis det er over en max værdi i bredden. Skal det sciptet resize det ned til max-værdien i bredden + højden selvfølgelig skal følge med. Dernæst skal det selvfølgelig udskrive det, og nedenunder skrive : Se fuld størrelse eller noget i den dur og linke til billedets fulde sti. Altså billedet fulde størrelse.

Det skal ikke lave et nyt mindre billede, blot resize det. Cool

Håber enten en af jer kan hjælpe, eller har noget lignende jeg kan låne.

Ha en god sommer.
Mvh. Kasper Worm Andersson
Avatar billede rocha_dk Nybegynder
19. juni 2005 - 01:37 #1
Først:
http://dk2.php.net/manual/da/php/ref.image.php

Der finder du alt hvad du skal bruge. De funktioner du er ude efter er:
imagecreate - familien, som laver en img resource du skal bruge senere, alt efter hvilken type billede du vil resize bruger du den respektive imagecreate ( eks. et .jpg billede -> $ir = imagecreatefromjpeg($url);

Du skal naturligvis først have fundet ud af om billedet overhovedet skal resizes, det gøres med:
$org_width = imagesx($ir);
og tag lige original højden med, den skal bruges senere:
$org_height = imagesy($ir);

Hvis billedet skal resizes, definerer du bredden i en ny variabel:
$new_width = "200";

Og så skal du naturligvis finde ud af hvad den nye højde skal være, for at billedet ikke mister sine proportioner:
$new_height = ($new_width / $org_width)*$org_height;

Derefter bliver du nød til at lave et nyt billede hvor du resizer din imagesrc:
$new_image = imagecreatetruecolor($new_width, $new_height);

Som et resultat står du med en imageresource, som du kan vælge enten at skrive ud på skærmen, eller gemme på serveren. Til det bruger du image - familien (eks. for et jpeg, imagejpeg($ir); )

Jeg har lavet et lille eksempel til dig:
http://www.rocha.dk/imgTest/?new_width=200

Her er kildekoden:

<?
$new_width = (isset($_REQUEST[new_width]) ? $_REQUEST[new_width] : 200);   

$ir = imagecreatefromjpeg("test.jpg");

$org_width = imagesx($ir);
$org_height = imagesy($ir);

$new_height = ($new_width / $org_width)*$org_height;
$new_image = imagecreatetruecolor($new_width, $new_height);

imagecopyresampled($new_image,$ir,0,0,0,0,$new_width,$new_height,$org_width,$org_height);

imagejpeg($new_image);

?>


Håber det kunne hjælpe!
Avatar billede rocha_dk Nybegynder
19. juni 2005 - 02:02 #2
lavede lige koden om, åbenbart kan man ikke udskrive en imageresource med imagejpeg() når der er andet indhold på siden.. bumbummelum.
Nu gemmes det resizede billede i en ny jpg fil, så man skal lige refreshe siden en gang for at få det resizede billede hentet.

<h1>Imageresize</h1>
<form method="GET" action="">
Ny bredde:<br>
<input type="text" name="new_width" size="10"> <input type="submit" value="resize"> <input type="button" onclick="window.location.reload(false);" value="refresh">
</form>
<?
$ir = imagecreatefromjpeg("test.jpg");

$org_width = imagesx($ir);
$org_height = imagesy($ir);

$new_width = (isset($_REQUEST[new_width]) && $_REQUEST[new_width] != "" ? $_REQUEST[new_width] : 200);   
$new_height = ($new_width / $org_width)*$org_height;

$new_image = imagecreatetruecolor($new_width, $new_height);

echo "oprindelig størrelse: ".$org_width." X ".$org_height."<br>";
echo "ny størrelse: ".$new_width." X ".$new_height."<br><br>";

imagecopyresampled($new_image,$ir,0,0,0,0,$new_width,$new_height,$org_width,$org_height);

imagejpeg($new_image, "test2.jpg");

echo "<a href=\"test.jpg\"><img border=\"0\" src=\"test2.jpg\" alt=\"klik for stort billede\"></a>";
?>
Avatar billede wormsk8 Nybegynder
19. juni 2005 - 11:59 #3
Mange tak, det er på vejen til det jeg søger.

Vil gerne have det så:

Det ligger i <head></head>, og resizer alle billeder der f.eks. bliver brugt i en blog på min side.

Så den resizer alle (bruger bbcode) hvis billedet er større en en angivet max-width.

Håber du forstår.
Avatar billede rocha_dk Nybegynder
19. juni 2005 - 13:12 #4
Hvorfor vil du have det til at ligge i <head>, det er jo php, det bliver ikke vist nogen steder alligevel. Det du kunne gøre, er at lave det som en funktion, som du så kalder på de billeder som bliver sat ind med [img]. Du har sikkert en enkelt funktion som erstatter [img] med <img src... der ville jeg kalde den nye funktion eks. imgResize() og så sende billednavnet med som parameter. Jeg har desværre ikke tid til at hjælpe dig idag med hvordan det lige nøjagtigt skal implementeres, men det er der sikkert andre derude der kan :)
Avatar billede rocha_dk Nybegynder
19. juni 2005 - 13:16 #5
Ny URL, mit webhotel er ved at blive lidt for uoverskueligt:

http://www.rocha.dk/eksperten/imgTest/?new_width=200
Avatar billede wormsk8 Nybegynder
19. juni 2005 - 13:52 #6
Ja okay, ved godt det ligemeget hvor den ligger. Den skal bare resize, alle billeder i mine blogs, og så smide et link nedenunder til den fuldestørrelse. Ergo skal den ikke tage et bestemt billede, men alle billeder.

(http://worm-media.dk/re/ - her kan det også ses).
Avatar billede rocha_dk Nybegynder
20. juni 2005 - 22:20 #7
hehe... sweet !

Har du selv lavet koden som erstatter xxx.jpg med <img src="xxx.jpg"> ?
Som jeg nævnte ovenfor, ville det være et smart sted at kalde en resize funktion.
Avatar billede wormsk8 Nybegynder
21. juni 2005 - 12:49 #8
rocha, har ikke lavet noget om. Du sagde bare dit webhotel var rodet.

Har taget det ned nu.

Min spørgsmål er endnu ikke blevet besvaret, for har ikke fået det jeg søgte.
Avatar billede rocha_dk Nybegynder
22. juni 2005 - 00:25 #9
hehe.. det gør mig ikke noget at du har den til at ligge, det skal stå dig frit for ;)

Oki, jeg prøver at hjælpe dig, men du bliver vist nød til at vise lidt mere kode.
Et enkelt hurtigt spørgsmål:
Har du selv lavet koden til bloggen ?

Hvis ja, vil du så ikke poste den stump, som udskifter billede.jpg med HTML koden ? Så kan jeg sikkert hjælpe dig.
Avatar billede wormsk8 Nybegynder
22. juni 2005 - 22:57 #10
Har lavet en meget lidt om, men det er orginalt herfra:

http://www.isolated-designs.net/core/projects/27/php-bbcode-functions
Avatar billede wormsk8 Nybegynder
26. juni 2005 - 09:12 #11
Er udenbys, men er det noget du kan lave, eller skal jeg bare lukke spørgsmålet??
Avatar billede wormsk8 Nybegynder
30. juni 2005 - 18:25 #12
Lukket, spørgsmålet blev ikke besvaret.
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