[PHP] F5 nodig om resultaat IMG-resize te zien

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een scriptje gemaakt dat plaatjes van elke willekeurige grootte
aanpast zodat het binnen 260x200 pixels blijft.
het werkt, maar er is wel een raar iets.
__________________________________________________________
als ik submit heb gebruikt zie ik als nieuwe verkleinde versie het plaatje
dat ik de vorige keer heb verbouwd.
echter, op dat moment is het plaatje al wel aangepast en opgeslagen.
als ik het gewoon open met een ander proggie zie ik wel het goeie plaatje.

ik moet dus eerst nog een keer op F5 drukken eer ik het resultaat zie.

er is dus iets (volgens mij met I-explorer) dat de oude versie van het
verkleinde plaatje (mannen.jpg) laat zien.

ik doel dus op het gewenste resultaat van deze regel

PHP:
1
    echo "original:<hr>[img]\"$bron\"><br><br><br>[/img][img]\"mannen.jpg\"[/img]";


hoe kan het dat ik eerst nog een keer F5 moet doen?
aan die echo-regel kan het niet liggen.
___________________________________________
nog een 2e vraag over dit scriptje;
kan ik dit makkelijk verbouwen zodat het ook voor GIF te gebruiken is?


zie hier de code (die is niet zo moeilijk en lang):

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
    <form name="contactform" action="<?php echo $PHP_SELF ?>" method="post">
        <input name="bron" size="100">
        <input type="submit" value="Submit" name="submitform">
        <input type="reset" value="Reset" name="reset">
    </form>

<?php

if ($submitform)
{

    error_reporting (E_ALL);

    $bron = $HTTP_POST_VARS['bron'];
    
    list($width, $height, $type) = getimagesize($bron);
    echo "width=$width <br> height=$height <br> type=$type <br>";

    $maxx = 260;
    $maxy = 200;

    //nu aspectratio uitrekenen
    $aspect = $width/$height;
    echo "aspectratio = $aspect";

//_____________________________________________________________________________________________

//aspectratio groter dan 1,3 betekent breder dan 260x200.
if ($aspect > 1.3)
{
    echo '<br>breed plaatje, max breedte van 260 wordt aangehouden.<br>';

        $newaspect = $maxx / $width;

        $newx = $newaspect * $width;
        $newy = $newaspect * $height;

        $new = imagecreatefromjpeg($bron); 
        $dest = imagecreate($newx, $newy); 

        imagecopyresized($dest, $new, 0, 0, 0, 0, $newx, $newy, $width, $height); 
        imagejpeg($dest, 'mannen.jpg', 10); 
        ImageDestroy($new); 
        ImageDestroy($dest); 
    
    echo "original:<hr>[img]\"$bron\"><br><br><br>[/img][img]\"mannen.jpg\"[/img]";

    list($width, $height, $type) = getimagesize("mannen.jpg");
    echo "<br><br>width=$width <br> height=$height <br> type=$type <br>";
}
//_____________________________________________________________________________________________

//aspectratio groter dan 1,3 betekent smaller dan 260x200.
if ($aspect < 1.3)
{
    echo '<br>smal plaatje, max hoogte van 200 wordt aangehouden.<br>';

        $newaspect = $maxy / $height;

        $newx = $newaspect * $width;
        $newy = $newaspect * $height;

        $new = imagecreatefromjpeg($bron); 
        $dest = imagecreate($newx, $newy); 

        imagecopyresized($dest, $new, 0, 0, 0, 0, $newx, $newy, $width, $height); 
        imagejpeg($dest, 'mannen.jpg', 95); 
        ImageDestroy($new); 
        ImageDestroy($dest); 
    
    echo "original:<hr>[img]\"$bron\"><br><br><br>[/img][img]\"mannen.jpg\"[/img]";

    list($width, $height, $type) = getimagesize("mannen.jpg");
    echo "<br><br>width=$width <br> height=$height <br> type=$type <br>";

}

}
?>

[ Voor 45% gewijzigd door Verwijderd op 04-08-2004 15:56 . Reden: 2e vraag ]


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
denk dat het gewoon in je browser cache zit.

tip : gebruik [php] tag's ipv [code]

edit : en dit hoort in P&W :X

[ Voor 20% gewijzigd door Cartman! op 04-08-2004 15:55 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
g00fy schreef op 04 augustus 2004 @ 15:54:
denk dat het gewoon in je browser cache zit.

tip : gebruik [php] tag's ipv [code]

edit : en dit hoort in P&W :X
hoe voorkom ik dan dat het uit mijn browsercache komt?

code-tags > php-tags gemaakt.

mag idd beter in P&W zie ik nu. ben ook maar nieuw he. }:O

[ Voor 12% gewijzigd door Verwijderd op 04-08-2004 15:58 ]


Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Door in de headers aan te geven dat er niet gechached mag worden :)

Of zet een vraagteken achter het plaatje: "bla.jpg?"

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
André schreef op 04 augustus 2004 @ 16:00:
Door in de headers aan te geven dat er niet gechached mag worden :)

Of zet een vraagteken achter het plaatje: "bla.jpg?"
hoe geef ik dat dan aan in die header?

en dat vraagteken werkt niet.

Warning: getimagesize: Unable to open 'mannen.jpg?' for reading. in /var/www/stasland/img.php on line 49


;(

Acties:
  • 0 Henk 'm!

Verwijderd

Zie: http://nl3.php.net/header voor info over headers. Zorg er wel voor dat je als eerste die headers verstuurd en dan pas het plaatje en tekst e.d. naar de browser

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 04 augustus 2004 @ 16:11:
Zie: http://nl3.php.net/header voor info over headers. Zorg er wel voor dat je als eerste die headers verstuurd en dan pas het plaatje en tekst e.d. naar de browser
dit zou het toch moeten doen?

PHP:
1
2
3
header("Cache-Control: no-store, no-cache, must-revalidate");  // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");                          // HTTP/1.0


maar doet het niet.

weet iemand een antwoord op mijn vraag of ik dit script kan gebruiken voor GIF?

Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Verwijderd schreef op 04 augustus 2004 @ 16:07:

en dat vraagteken werkt niet.
Dat vraagteken zet je alleen achter je HTML output:

PHP:
1
2
3
<?
    echo "original:<hr>[img]\"$bron?\"><br><br><br>[/img][img]\"mannen.jpg\">";
?[/img]

[ Voor 18% gewijzigd door André op 04-08-2004 16:24 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
André schreef op 04 augustus 2004 @ 16:24:
[...]
Dat vraagteken zet je alleen achter je HTML output:

PHP:
1
2
3
<?
    echo "original:<hr>[img]\"$bron?\"><br><br><br>[/img][img]\"mannen?.jpg\">";
?[/img]
ik krijg er geen error van, maar F5 blijft noodzakelijk.

[ Voor 17% gewijzigd door Verwijderd op 04-08-2004 16:34 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 04 augustus 2004 @ 16:22:
[...]


dit zou het toch moeten doen?

PHP:
1
2
3
header("Cache-Control: no-store, no-cache, must-revalidate");  // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");                          // HTTP/1.0


maar doet het niet.

weet iemand een antwoord op mijn vraag of ik dit script kan gebruiken voor GIF?
Ik zou toch voor het hele zwikkie headers gaan die op php.net staan, die hebben mij altijd van het cache probleem afgeholpen..

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

// always modified
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
 
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);

// HTTP/1.0
header("Pragma: no-cache");

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mja, werkt niet, maar zo heel belangrijk is het nu ook weer niet.
als het resizen maar werkt.

nu moet ik nog zien te fixen dat dat ding ook GIF kan.
lijkt me een lastiger probleem.

Acties:
  • 0 Henk 'm!

Verwijderd

en als je nu de nieuwe size netjes meegeeft in je img-tag, dan zou die zeker moeten werken (http://nl2.php.net/getimagesize)

[edit]
volgens mij moet dat gewoon met dezelfde functie kunnen als http://nl2.php.net/imagecopyresized, verder zou ik de usercomments eens doorlezen over het kleurgebruik binnen gif omdat die maar tot 256 lopen...

[ Voor 47% gewijzigd door Verwijderd op 04-08-2004 16:49 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 04 augustus 2004 @ 16:33:
[...]


ik krijg er geen error van, maar F5 blijft noodzakelijk.
volgens mij geeft Andre ook een vraagteken bij het verkeerde plaatje aan, het gaat toch om mannen.jpg?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 04 augustus 2004 @ 16:49:
[...]


volgens mij geeft Andre ook een vraagteken bij het verkeerde plaatje aan, het gaat toch om mannen.jpg?
dat had ik door ja, maar een vraagtegen, waar dan ook geeft niks extra's.

zou een extra if-clausule helpen?

if plaatje is klaar met resizen
{
laat nieuwe versie zien
}

?

'k ga het proberen.

Acties:
  • 0 Henk 'm!

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 18-09 12:01

Acties:
  • 0 Henk 'm!

  • Cavorka
  • Registratie: April 2003
  • Laatst online: 27-03-2018

Cavorka

Internet Entrepreneur

Gif ondersteuning is toch uit GD gemikt, vanswege het algoritme wat gecopyright is?

*Edit: Even opgezocht:
Note: Since all GIF support was removed from the GD library in version 1.6, this function is not available if you are using that version of the GD library. Support is expected to return in a version subsequent to the rerelease of GIF support in the GD library in mid 2004. For more information, see the GD Project site.
En op de site van Boutell staat:
07/21/04: gd 2.0.28 has been released. gd 2.0.28 restores support for reading and writing GIF images. There is also a fix for a possible problem in gdImageTrueColorToPalette.
Dus net twee weekjes geleden weer erin gezet, ik weet alleen niet of het dus nu ook al in de laatste releases van PHP zelf zit...

Je script is ook niet echt helemaal jovel denk ik. Dat checken op die ratio kan je doen, maar waarom niet gewoon checken of de breedte breder is dan 260 en/of de hoogte hoger is dan 200 pixels?

Je rondt je image groottes ook niet af en ik vind het zelfs al een beetje te toelatend van PHP dat hij geen errors geeft, ondanks dat je floats erin pompt, terwijl een plaatje nooit 200.124354 pixels breed kan zijn. :)

[ Voor 42% gewijzigd door Cavorka op 04-08-2004 22:36 ]

the-blueprints.com - The largest free blueprint collection on the internet: 50000+ drawings.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 14:52

crisp

Devver

Pixelated

Cavorka schreef op 04 augustus 2004 @ 22:30:
Gif ondersteuning is toch uit GD gemikt, vanswege het algoritme wat gecopyright is?
Het LZW patent is bijna wereldwijd verlopen (alleen in Canada nog niet geloof ik, maar wel binnenkort):
07/21/04: gd 2.0.28 has been released. gd 2.0.28 restores support for reading and writing GIF images.

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Pastinakel
  • Registratie: December 2000
  • Laatst online: 19-09 00:02

Pastinakel

Zwammen en kwazoedels

Dat cache probleem heb ik vroeger eens opgelost door de tijd mee te geven als variabele aan het plaatje. Op 1 of andere manier had IE dan door dat het plaatje niet altijd gelijk was:

PHP:
1
echo "new:<hr>[img]\"mannen.jpg?var=".time()."\"[/img]";


edit: als je het helemaal wilt afvangen, zou je ook nog microtime() kunnen gebruiken.

edit2: verkeerd gelezen

[ Voor 55% gewijzigd door Pastinakel op 04-08-2004 23:10 ]

Ik kan je niet helpen. De frutsel is warrig en niet knopig. Bovendien heb ik maar één kant | Scrobblernakel

Pagina: 1