Autor Zpráva
Milos
Profil
Zdravím všechny nadšence PHP,

mám na webu detaily o firmách s jednou fotografii, která má rozměry 800x600 a chtěl bych, aby v přehledu firem se ukázal jen rozklikávací náhled o rozměrech 200x150 a po kliknutí se ukázala fotka v plném rozlišení 800x600px - všechny jsou ve formátu JPG.

Kód PHP na zmeněšní rozměrů:

<?
Header("Content-type: image/jpeg"); //nevím zda toto nemá být úplně první v hlavičce stránky???
$obr=ImageCreateTrueColor(200,150);
$puvodni=ImageCreateFromJPEG("firma.jpg");
ImageCopyResampled($obr,$puvodni,0,0,0,0,200,150,800,600);
ImageDestroy($puvodni);
ImageJPEG($obr);
?>

a z toho mi vyleze:

˙Ř˙ŕJFIF˙ţ>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ˙ŰC    $.' ",#(7),01444'9=82<.342˙ŰC  2!!22222222222222222222222222222222222222222222222222˙Ŕ– a spousta dalších zmatenejch znaků...

nevíte kde je chyba

Hosting vypisuje v PHPinfo:

gd
GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled


Díky.

Miloš
Charlie
Profil
Zkuste změnit všechny JPEG na JPG.
llook
Profil
To vypadá, že to opravdu vypisuje JPEG, ale je špatná content-type hlavička. Není před tím header() nějaký výstup, třeba jen přehlédnutá mezera nebo odřádkování?
Kaifman
Profil
musis ten tvuj skript volat v tagu <img src="tvuj.srkipt.php"> ne primo ... to je jasen ze ti potom vypisuje obsah souboru


myslim ze ale potrebujes spis tohle:

zrus tu header a posli si ten obrazek do souboru takhle ImageJPEG($obr,'souborsnahledem.jpg');
Milos
Profil
Předem díky za rady, už sem to zprovoznil i na lokalhostu, ale...

Když dám samotný kód:
<?Header("Content-type: image/jpeg");
$obr=ImageCreateTrueColor(200,150);
$puvodni=ImageCreateFromjpeg("1.jpg");
ImageCopyResampled($obr,$puvodni,0,0,0,0,200,150,800,600);
ImageDestroy($puvodni);
Imagejpeg($obr);
?>

tak to funguje bez problémů, ale...
když k tomu dám i HTML:
<?Header("Content-type: image/jpeg");?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Nepojmenovaný dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
</head>

<body>

<?
$obr=ImageCreateTrueColor(200,150);
$puvodni=ImageCreateFromjpeg("1.jpg");
ImageCopyResampled($obr,$puvodni,0,0,0,0,200,150,800,600);
ImageDestroy($puvodni);
Imagejpeg($obr);
?>
</body>
</html>

tak to vypisuje ten kód??? Proč???

Dotaz na KAIFMANa - co to znamená pošli si ten obrázek??? Jestli možno, kousek kódu, třebe je v tom ten můj problém.

Díky.
Kaifman
Profil
jako ze si ten obrazek ulozis do souboru nikoliv ze ti pude rovnou na vystup jako to mas s tou header... to je ten druhej parametr u imagejpeg a pak das normalne <img src="jmenotohosouboru">
llook
Profil
Jde o to, že když kolem toho dáš to HTML, tak už to nebere jako obrázek, ale jako součást zdroje HTML. Do HTML nelze vložit obrázek přímo, jenom jeho adresu ve značce IMG.

Takže ten první kód (ten co funguje) dej do samostatného souboru, třeba obrazek.php a do HTML stránky <img src="obrazek.php">.
Milos
Profil
Díky všem. Ten poslední TIP od ILOOKa mi to vyřešil.
Končím debatu... :)
Toto téma je uzamčeno. Odpověď nelze zaslat.