Plaatje resizen, ziet geen plaatje
AgentX - 03/08/2006 11:17 (laatste wijziging 08/08/2006 21:36)
HTML beginner
Hallo sitemasters,
Jullie kennen het bekende probleem, plaatjes vergroten of verkleinen.
Edit: de code is veranderd, de onderstaande code werkt. Zie topic voor oplossing en overig ;)
Hiermee kun je dus een plaatje groter dan 100 x 100 verkleinen, en als hij kleiner is blijft hij normaal. Werkt bij alle soort plaatjes.
<?php
function imageresize($plaatje){
$size = getimagesize($plaatje);
$width = $size[0];
$height = $size[1];
$maxwidth = 100;
$maxheight = 100;
if(($height > $maxheight) AND ($width > $maxwidth)){
echo "<img height='" . $maxheight . "' width='" . $maxwidth . "' src='" . $plaatje . "'>";
}
else{
echo "<img src='" . $plaatje . "'>";
}
}
?>
<?php
function imageresize( $plaatje ) {
$width = $size [ 0 ] ;
$height = $size [ 1 ] ;
$maxwidth = 100 ;
$maxheight = 100 ;
if ( ( $height > $maxheight ) AND ( $width > $maxwidth ) ) {
echo "<img height='" . $maxheight . "' width='" . $maxwidth . "' src='" . $plaatje . "'>" ; }
else {
echo "<img src='" . $plaatje . "'>" ; }
}
?>
Edit:
Ik zie dus alleen een rood kruisje [x]
In de bron staat <img src="">
En op de pagina bij egigenschappen staat als link http://localhost
Weet iemand hoe ik het werkend kan krijgen??
18 antwoorden
Gesponsorde links
marten - 03/08/2006 11:41
Beheerder
Plaats eens wat meer informatie. Hier kunnen we niet veel mee. Wat gaat er fout? Krijg je foutmeldingen enz enz
AgentX - 03/08/2006 11:43
HTML beginner
Ik krijg gewoon een kruisje. [x]
marten - 03/08/2006 11:51
Beheerder
doe eens rechtermuisknop op het kruisje en kijk welke path hij heeft.....
AgentX - 03/08/2006 11:52
HTML beginner
hij verwijst naar http://localhost /
en hoe kan ik hem dan naar ergens linken zodat het platje zichtbaar is?
rickwieman - 03/08/2006 11:57 (laatste wijziging 03/08/2006 11:59)
Onbekend
<?php
function imageresize($filename){
if(file_exists($filename)){
list($width, $height) = getimagesize($filename);
$newwidth = 80;
$newheight = 80;
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
$img = imagejpeg($thumb);
return $filename;
}
else {
return $filename;
}
}
echo "<img src=\"" . imageresize("img/spongebob.jpg") . "\">";
?>
<?php
function imageresize( $filename ) {
$newwidth = 80 ;
$newheight = 80 ;
$thumb = imagecreatetruecolor( $newwidth , $newheight ) ;
$source = imagecreatefromjpeg( $filename ) ;
imagecopyresized( $thumb , $source , 0 , 0 , 0 , 0 , $newwidth , $newheight , $width , $height ) ;
$img = imagejpeg( $thumb ) ;
return $filename ;
}
else {
return $filename ;
}
}
echo "<img src=\" " . imageresize
( "img/spongebob.jpg" ) . "\" >" ; ?>
edit: Altijd return doen...
CDNC - 03/08/2006 12:00
PHP ver gevorderde
En wat retrun je als je het geresized is? nix.....
AgentX - 03/08/2006 12:03
HTML beginner
Geef eens een voorbeeldje...
Anoniem - 03/08/2006 12:14 (laatste wijziging 03/08/2006 12:25)
PHP gevorderde
Het enige wat jij returned is filename! Het gemaakte plaatje return je niet. Dat blijft gewoon in de functie hangen. Je moet dus iets verzinnen om het gemaakte plaatje op te roepen. Dus met zo iets:
rezise.php?url=img/spongebob.jpg
En dan:
<img src="rezise.php?url=/img/spongebob.jpg">
Dus moet je de functie zo bouwen:
<?php
# rezise.php:
if(file_exists($_GET['url'])){
list($width, $height) = getimagesize($_GET['url']);
$newwidth = 80;
$newheight = 80;
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($_GET['url']);
$img = imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
header('Content-type: image/jpeg');
ImageJPEG($img);
ImageDestroy($img);
}
else {
//Maak hier een plaatje met een rood kruis of zo.
}
?>
<?php
# rezise.php:
$newwidth = 80 ;
$newheight = 80 ;
$thumb = imagecreatetruecolor( $newwidth , $newheight ) ;
$source = imagecreatefromjpeg( $_GET [ 'url' ] ) ;
$img = imagecopyresized( $thumb , $source , 0 , 0 , 0 , 0 , $newwidth , $newheight , $width , $height ) ;
header ( 'Content-type: image/jpeg' ) ; ImageJPEG( $img ) ;
ImageDestroy( $img ) ;
}
else {
//Maak hier een plaatje met een rood kruis of zo.
}
?>
Op te roepen met:
<img src="rezise.php?url=/img/spongebob.jpg">
AgentX - 03/08/2006 12:19
HTML beginner
jah het enige wat je nu doet is $filename veranderen in $_GET["url"]
nee dat helpt, het ordt aan geroepen uit een database...
riekele - 03/08/2006 12:29
PHP beginner
echo "<img src=\"" . imageresize("img/spongebob.jpg") . "\">"; ?
rickwieman - 03/08/2006 12:46 (laatste wijziging 03/08/2006 12:48)
Onbekend
Probeer dit anders eens: doet ongeveer hetzelfde en werkt direct:
<?php
function resizeimg($afbeelding) {
$maxwidth = 80; //hier dus hoe breed de afbeelding mag zijn
$maxheight = 80; //en hier hoe hoog de afbeelding mag zijn
$size = getimagesize($afbeelding);
$width = $size[0];
$height = $size[1];
if(($height > $maxheight) && ($width > $maxwidth)) {
echo "<img height='" . $maxheight . "' width='" . $maxwidth . "' src=\"" . $afbeelding . "\">";
}
else {
echo "<img src=\"" . $afbeelding . "\">";
}
}
resizeimg("img/spongebob.jpg");
?>
<?php
function resizeimg( $afbeelding ) {
$maxwidth = 80 ; //hier dus hoe breed de afbeelding mag zijn
$maxheight = 80 ; //en hier hoe hoog de afbeelding mag zijn
$width = $size [ 0 ] ;
$height = $size [ 1 ] ;
if ( ( $height > $maxheight ) && ( $width > $maxwidth ) ) {
echo "<img height='" . $maxheight . "' width='" . $maxwidth . "' src=\" " . $afbeelding . "\" >" ; }
else {
echo "<img src=\" " . $afbeelding . "\" >" ; }
}
resizeimg( "img/spongebob.jpg" ) ;
?>
edit: alleen de variabelen aanpassen is voldoende!
Maarten - 03/08/2006 12:59
Erelid
Ik zie het probleem niet, je kan toch gewoon die resize code in een apart bestand (resize.php ofzo) zetten, zoals Lemon aanhaalde.. wat Rick hierboven toont is geen resize, je afbeelding blijft daar even groot.
En om te verkleinen moet imagecopyresized niet gebruiken maar imagecopyresampled, die geeft betere kwaliteit.
AgentX - 03/08/2006 13:07
HTML beginner
En het is al opgelost.
Iemand toevallig geinteresseerd in het script?
Maarten - 03/08/2006 13:07
Erelid
Gewoon in je eerste bericht zetten..
Gesponsorde links
Dit onderwerp is gesloten .