Goedenavond,

Ik slaag er niet in mijn foto in het midden van de pagina te plaatsen, de code <center> wordt steeds genegeerd en als ik het document type heel bovenaan de pagina zet, wordt de foto niet weergegeven..Ziet iemand hiervoor een oplossing?

<?php
$foto_src	= 'uploads/' . $foto['foto_filename'];
list ($breedte, $hoogte) = getimagesize($foto_src);
$image_ratio = $breedte/$hoogte;

			if ($image_ratio > 1){
			$new_width = THUMB_SIZ;
			$new_height = THUMB_SIZ/ $image_ratio;
		}
		else{
			$new_height = THUMB_SIZ;
			$new_width = THUMB_SIZ * $image_ratio;
		}

$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($foto_src);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $breedte, $hoogte);

imagejpeg($image_p, null); 
header('Content-Type: image/jpeg');

$foto_size = filesize($foto_src);
$foto_size = round($foto_size/1024, 1);?>
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>

<body>
	<center><img src="<?php echo $foto_src;?>" /></center>		
</body>
</html>
Snap je de headers wel? Je zegt nu dat je bestand een plaatje is. Volgens mij is het gewoon een HTML pagina?
Zet de echo eens tussen haakjes? Ik had er problemen mee, maar dat loste alles op.

Opzich doe ik 't normaal gewoon als dit:


<?
// Php dingen, je uitleg van alle var's.
?>
// Html, bijv. bij jou als lijn 19;
<div id="test"><img src="<? echo($foto_src); ?>" /></div>


Beetje vaag, maar hier werkt 't altijd.

Tevens centeer ik pagins door het in een 1x1 tabel te zetten, vervolgens dat te centeren.

Ook niet de beste oplossing. Toch werkt het geweldig :D.
Nee, werkt niet, ik denk dat de enige oplossing is het script spreiden over twee bestanden en dan in 1 bestand de html code en <img src="FILE_URL">
maar hoe dit precies moet weet ik niet en ik vind er ook geen uitleg over door in google te zoeken, er staan voorbeelden van imagecopyresampled maar niet in combinatie met html..
Pholeron schreef op 27.04.2009 00:43
De syntax zou moeten zijn:
<img src="FILE_URL">

In plaats van een URL op te geven probeer je binaire data te outputten. Dat gaat niet werken.

Je moet je code over 2 files verspreiden; de 1e file genereert de afbeelding de andere file bouwt de html code op, en bevat o.a. <img src="FILE_URL">, waarbij FIL_URL verwijst naar het PHP script dat de image uitput


Niet liegen hea. Je kunt met data:image/jpeg;base64,... wel binaire data outputten.
Jezpur schreef op 12.06.2009 20:18
Snap je de headers wel? Je zegt nu dat je bestand een plaatje is. Volgens mij is het gewoon een HTML pagina?

Lees dit bericht nog eens goed... Door de header('content-type') toe te voegen zeg je dat de server voor het lopende HTTP request een plaatje moet versturen.

Aangezien je het plaatje wilt weergeven binnen een HTML pagina, heb je dus 2 requests, en dus inderdaad 2 scripts nodig... Of natuurlijk 1 script die je op 2 verschillende manier aanroept...

Dus 1: je HTML pagina, en 2: het script om je plaatje te genereren, met je header('content-type: image/jpeg');
ik heb nu twee bestanden maar het werkt nog niet:
image.php en image2.php

image.php bevat:


<?php
define ('THUMB_SIZ', 350);
header('Content-Type: image/jpeg'); // JPG picture
$foto_src    = 'uploads/' . $foto['photo_filename'];
list ($breedte, $hoogte) = getimagesize($foto_src);

$image_ratio = $breedte/$hoogte;

		// Stap 3: bereken op basis van de ratio de nieuwe hoogte
		if ($image_ratio > 1){
			$new_width = THUMB_SIZ;
			$new_height = THUMB_SIZ/ $image_ratio;
		}
		else{
			$new_height = THUMB_SIZ;
			$new_width = THUMB_SIZ * $image_ratio;
		}

$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($foto_src);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $breedte, $hoogte);
imagejpeg($image_p, null);
?> 

image2.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>

<center><img src="image.php"></center>

</body>
</html>

Wat werkt er niet? Als je geen foutmelding krijgt maar de afbeelding enkel niet juist getoond kan worden, haal dan die header eens tijdelijk weg uit image.php en vraag dat bestand op in je browser. Als er een fout in dat scriptje zit, krijg je nu wel de foutmelding te zien.

ps. Ik denk dat ik al weet waar het fout gaat, waar komt in image.php de variabele $foto['photo_filename'] vandaan? Die is nergens gedefinieerd?
ok, maar onderstaande code doet het ook niet..in image2.php

<center><img src="detail.php?img=' . $foto_src . '"></center>
Moet jij je echt bezig houden om images te resizen?

Heb je niet genoeg aan gewoon wat css?

Functies zoals imagecreatetruecolor zijn heel erg belastend voor de server.
Voor het zelfde geld heb je enkel iets nodig zoals

<img src="mijn_afbeelding.jpg" width="100px"/>

Wetende wat je nu weet... Leg nog eens uit wat je precies wil bereiken.

Reageren