Rare tekens met functie ImageCreateFromJpeg

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Allard Keij

Allard Keij

30/06/2010 11:40:22
Quote Anchor link
Goedemorgen allemaal,

Ik heb een probleempje.

Ik maak nu gebruik van de ImageCreateFromJpeg functie.

Dat is de code hieronder:
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?

header("Content-Type: image/jpeg");
 
$im = ImageCreateFromJpeg("53207.jpg");  
 
$black = ImageColorAllocate($im, 255, 255, 255);

$start_x = 10;
$start_y = 20;

Imagettftext($im, 12, 0, $start_x, $start_y, $black, 'verdana.ttf', "Test");

Imagejpeg($im, '', 100);

ImageDestroy($im);                    
?>


Deze code werkt perfect als ik even een test.php bestandje maak, met alleen deze code erin. Nu probeer ik deze tussen huidige code te zetten en krijg ik een hele rare tekst. Hier een voorbeeldje:
Quote:
§i8Ïúu‡úeç\ÇŽY1¼77ÑÜÿfÉþ‘ ù?ê­: »+î¤vúñšú‡ã—Áø´|DÔuWÒä:‡tÑi,@\ ›KÛÞ>¸Çê;Šà´Ÿ‡ž!ðö›£ÜÙ马i÷º=¬ÿeŽ_´joú%—üzw¾°ÿ¨o¯×ÛQÎ0µrÌ5j–¯w-£džšÅù»Ý-¼¾Ry6&ž7J­·ÒÉit»i¯F­{?$x>Ÿ¥#êÚDsiQÜÿ³|¯7þÁ:/¿ý:õ«×5«9öi¸³¸ó


Zo gaat dat een regel of 100 door.

Kan iemand mij precies vertellen wat het probleem hier is? In het test bestandje doet hij het perfect.

Zijn er bepaalde dingen die dan niet in de huidige pagina voor mogen komen?
Ik maak in de pagina gebruik van: function en include.. Natuurlijk ook gewoon meta tags en doctype.

Mijn dank is groot,
 
PHP hulp

PHP hulp

27/11/2024 06:14:51
 
Pim -

Pim -

30/06/2010 11:47:52
Quote Anchor link
De image lijkt als tekst geïnterpreteerd te worden.
Waarschijnlijk vergeet je de Content-Type header.
Let op: Zo kan je alleen het plaatje direct weergeven, makkelijker is hem op te slaan:
http://nl3.php.net/manual/en/function.imagejpeg.php
 
Allard Keij

Allard Keij

30/06/2010 12:00:14
Quote Anchor link
Edit: Ik heb in mijn test.php bestandje geprobeerd om de Content-Type regel weg te halen, zelfs dan doet deze het nog.

Dat dacht ik dus ook al dat de image als text word weergeven.

Content-Type staat recht boven het script, deze is dus niet vergeten, wel heb ik het gevoel dat deze niet werkt op het moment.

Heeft misschien iemand een beter scriptje voor dit?

Alles wat ik zoek is tekst over een image. Opslaan is niet eens nodig, alleen weergeven met tekst. Die tekst kan gewoon in het script al aangegeven worden want die is altijd hetzelfde.
Gewijzigd op 30/06/2010 12:02:13 door Allard Keij
 
TJVB tvb

TJVB tvb

30/06/2010 12:00:27
Quote Anchor link
Pim de Haan op 30/06/2010 11:47:52:
De image lijkt als tekst geïnterpreteerd te worden.
Waarschijnlijk vergeet je de Content-Type header.

Die header heeft hij wel staan.


Allard Keij op 30/06/2010 11:40:22:
Deze code werkt perfect als ik even een test.php bestandje maak, met alleen deze code erin. Nu probeer ik deze tussen huidige code te zetten en krijg ik een hele rare tekst.

De cody die de afbeelding weer geeft moet in een los bestand gebruikt worden. Er mag dus geen andere output zijn.
Als je error reporting goed staat zal je ook een error krijgen op die header functie als je al output stuurt.
 
Allard Keij

Allard Keij

30/06/2010 12:08:05
Quote Anchor link
Ik heb in het testbestandje ook al even bovenaan
Quote:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
gezet, en dan word de image daar ook al niet meer weergeven, maar er komt ook geen rare teksten.

Is er dan misschien een andere manier om dit in mijn code te kunnen zetten.

Hierbij de gehele pagina(let even niet op de opmaak e.d):
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?include"header.php";?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?include"topmenu.php";?>


<div id="mediaconent2">
<table width="741"><tr>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php

        $cat
= $_GET['cat'];
        
        $teller = 0;
            if(isset($_GET['cat'])){
            $categorie = $_GET['cat'];

            $AantalPerPagina = 6;
            if(isset($_GET['n'])){
            $n = $_GET['n'];
            $Cijfers = true;
            if(!$n) { $n = 0; } $n = intval($n+1); $a = $n - 1; $b = $n - 2; $x = $a * $AantalPerPagina;

            $dbres = mysql_query("SELECT * FROM $cat ORDER BY pid LIMIT $x, $AantalPerPagina");
          while($list = mysql_fetch_object($dbres))
          {

          $img = $list->img1;
          $pid = $list->pid;
          $sold = $list->verkocht;
          ?>


<td height="219"><a href="product.php?pid=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?echo"$pid";?>
&cat=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?echo"$cat";?>
&n=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?echo"$pid";?>
"><center>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?if($sold == 0){?>

<img src="http://***/productimages/
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?echo"$img"?>
" height="200" width="200">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?}?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?if($sold == 1){?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
            header("Content-Type: image/jpeg");
                
                $im = ImageCreateFromJpeg("53207.jpg");
                
                $black = ImageColorAllocate($im, 255, 255, 255);

                $start_x = 10;
                $start_y = 20;

                Imagettftext($im, 12, 0, $start_x, $start_y, $black, 'verdana.ttf', "Test");

                Imagejpeg($im, '', 100);

                ImageDestroy($im);                    
            ?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?}?>


</center></a></td>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
          $teller
= $teller + 1;
if ($teller == 3){ echo "</tr>\n<tr>";
$teller=0;
}
          }
          }
          }

          
          $Aantal = mysql_num_rows(mysql_query("SELECT * FROM $cat ORDER BY pid"));
function
writeBladZijden()
{
if($Cijfers) {
 for($i = 0; $i < $Aantal; $i+=$AantalPerPagina) {
 if($Aantal > $i) {
 echo("[<a href='$PHP_SELF?n=".($i/$AantalPerPagina)."'>".($i/$AantalPerPagina+1)."</a>]");
 } } } }

echo"<table width=\"741\"><tr>";
if($b > -1) { echo(" <td width=\"247\"><a href='categorie.php?cat=$cat&n=$b'><center>VORIGE &nbsp;&nbsp;&nbsp;</center></a> </td>"); } else{echo"<td width=\"247\">&nbsp;</td>";}
echo"<td width=\"247\"><a href=\"antiek.php\"><center>HOME</center></a> </td>";
if($Aantal - ($n * $AantalPerPagina) > 0) { echo("<td width=\"247\"><a href='categorie.php?cat=$cat&n=$n'><center>VOLGENDE</center></a></td>");} else{echo"<td width=\"247\">&nbsp;</td>";}
echo"</table></tr>";
?>

</tr>
</table>
</div>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?include"footer.php";?>
Gewijzigd op 30/06/2010 12:19:00 door Allard Keij
 
Mark L

Mark L

30/06/2010 12:12:10
Quote Anchor link
Twee dingen.

1). header("Content-Type: image/jpeg"); zet de pagina om naar een image. De hele pagina, dus ook alle html etc. erin. Daarom doet dit het niet. Als je het op deze manier wilt doen, moet je je img in een ander bestand zetten en deze d.m.v. een <img> in je HTML zetten.
2). Je gebruikt hier en daar shorttags: <? Dit zorgt soms ook voor problemen. Het is verstandiger om gewoon <?php te gebruiken
Ook vraag ik me af waarom je zovaak van PHP naar HTML switcht.
Gewijzigd op 30/06/2010 12:14:20 door Mark L
 
Allard Keij

Allard Keij

30/06/2010 12:22:45
Quote Anchor link
Edit:
Aha, met <img src="image.php"> dus. Eerst proberen dan vragen, sorry ;).

Bedankt! dit werkt. Ook bedankt voor alle nuttige tips!

Nu is nog wel mijn vraag, hoe krijg ik precies de juiste afbeelding? Ik heb er nu even een vaste ingezet, maar deze moet automatisch worden.

Ik maak gebruik van:
$img = $list->img1;

Maar hoe krijg ik nu die $img in image.php?
--------------------------

Klopt, zelf ben ik ook nooit helemaal tevreden met m'n code, daar probeer ik ook veel verandering in te brengen. Ik zit nogsteeds in de leerfase.

Hoe bedoel je precies in een ander bestand zetten?. Ik kan de code bijvoorbeeld in image.php zetten, maar dat d.m.v een <img> snap ik dan niet helemaal, hoe ik het bestand in verband breng met een <img> tag.

Nog een extra vraagje, is het verstandig om altijd < ? php te gebruiken i.p.v < ?,

Bedankt alvast,
Gewijzigd op 30/06/2010 12:27:49 door Allard Keij
 
Pim -

Pim -

30/06/2010 12:33:47
Quote Anchor link
Gebruikt $_GET
Dus <img src="image.php?id=123" />
En in image.php: echo $_GET['id'] geeft 123
 
Allard Keij

Allard Keij

30/06/2010 12:35:27
Quote Anchor link
Dit is het punt waar ik me ga schamen.. Dat ik daar zelf niet aan dacht...

Super bedankt allemaal!

Fijn dat ik op dit forum altijd terecht kan ( en niemand een noobie zoals mij afkraakt, maar goede tips geeft ).

Thnx!
Cheers,
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.