Avatar billede blach Nybegynder
19. juni 2006 - 21:41 Der er 32 kommentarer og
1 løsning

GDlib udskriver tekst

Jeg har hentet et Resize script her:
http://www.netcoders.dk/sources.asp?mode=view_source&tech_id=2&forum_type=1&id=1800

Og gør brug af funktionen example.rezise.php:

    # include the imageresize() and imagethumbnail() classes
    include("class.imageresize.php");

    # instantiate the class imageresize()
    $rz = new imageresize();

    # set source image to "test.jpg"
    $rz->source("test.jpg");

    # set width to 300. maintain aspect ratio is default true, so height will be adjusted automatically.
    $rz->new_width = 300;

    # resize the image and output it directly to the browser
    $rz->resize();


Det der så sker er, at den udskriver en masse tegn.. Hvad kan dette skyldes?

--- vist herunder --

ÿØÿàJFIFÿþ;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90 ÿÛC     ÿÛC   ÿÀ»ú"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?üÆE*H#ê)Í´çžœŠ¹äõÚ)†=¤ePAX€OÒŒ)#iè:f Ö@Ð}ÅÚ1€ W,síO_½À©~ÊHÈ ‘ÔÒ¬

-- osv ---
Avatar billede blach Nybegynder
19. juni 2006 - 21:47 #1
Hmm, den forstår i hvert fald ikke hvis man f.eks. har:

$rz->source("http://domænet.dk/test.jpg");

eller

$rz->source("/test.jpg");
Avatar billede smirnoff Nybegynder
19. juni 2006 - 21:49 #2
det er fordi den skriver billedets data direkte til browseren, men den opfatter det som tekst. Sæt følgende ind som aller første linie i dit script(direkte under include):

header("Content-type: image/jpeg");
Avatar billede blach Nybegynder
19. juni 2006 - 21:53 #3
OK.. men hvorfor forstår scriptet ikke en direkte URL?
Avatar billede smirnoff Nybegynder
19. juni 2006 - 21:56 #4
no clue - kender ikke frameworket
Avatar billede blach Nybegynder
19. juni 2006 - 21:56 #5
Skal med andre ord kunne angive en absolut placering...
Avatar billede blach Nybegynder
19. juni 2006 - 21:56 #6
ok.. :-/
Kender du til noget bedre så?
Avatar billede blach Nybegynder
19. juni 2006 - 22:00 #7
# include the imageresize() and imagethumbnail() classes
include("class.imageresize.php");
header("Content-type: image/jpeg");

Den laver stadig om til tekst...
Avatar billede smirnoff Nybegynder
19. juni 2006 - 22:06 #8
hmm - jeg ka se i kildekoden at den selv sætter den header ind .. men mærkeligt at billedet ikke vises ?
Avatar billede smirnoff Nybegynder
19. juni 2006 - 22:08 #9
hmm - det virker fortrinligt her
Avatar billede blach Nybegynder
19. juni 2006 - 22:48 #10
Gør det egentlig også her.. Er det mig som bruger det forkert?

For man kan da ikke indsætte det sådan her f.eks.:


<html>
<head>

</head>
<body>
  <table border="0" width="100%" height="100%" cellpadding="0" cellspacing="0">
  <tr>
    <td valign="top" width="50%">


<?php
    /*
        ImageResize() class example #1.
        Pixel resize and show an image named "test.jpg". Width: 300, height adjusted.
    */

    # include the imageresize() and imagethumbnail() classes
    include("class.imageresize.php");

    # instantiate the class imageresize()
    $rz = new imageresize();

    # set source image to "test.jpg"
    $rz->source("test.jpg");

    # set width to 300. maintain aspect ratio is default true, so height will be adjusted automatically.
    $rz->new_width = 300;

    # resize the image and output it directly to the browser
    $rz->resize();
?>

  </td>
  </tr>
</table>
</body>
</html>
Avatar billede smirnoff Nybegynder
19. juni 2006 - 22:56 #11
ahh - nej det kan du ikke ... hvis først der er skrevet data til browseren (i dit tilfælde HTML) kan man ikke sætte en header med header(...)

Fjern php koden og sæt den tilbage i filen "example.resize.php" ud - og sæt dette ind stedet:

<img src="example.resize.php" />

- så skulle du gerne se billedet
Avatar billede blach Nybegynder
19. juni 2006 - 23:08 #12
nåå :) Hehe.. Jeg er vist ikke helt up-2-date med den slags dynamisk php-kode :)
Avatar billede blach Nybegynder
19. juni 2006 - 23:14 #13
Så har jeg et andet problem: Mine billeder er gemt dynamisk i en datbase. Hvordan sender jeg en variabel over til example.resize.php ($rz->source("test.jpg");) med navnet på filen?
Sagt på en anden måde, er det ikke altid test.jpg den skal trække ud, men et filnavn den henter fra DB.
Avatar billede smirnoff Nybegynder
20. juni 2006 - 18:30 #14
klient:

<img src="example.resize.php?img=test.jpg" />

example.resize.php:

# set source image to "test.jpg"
    if($_GET)
        $path = $_GET["pic"];
    else
        $path = "test.jpg";
    $rz->source($path);

- resten må du selv rette til ;)
Avatar billede smirnoff Nybegynder
20. juni 2006 - 18:31 #15
$_GET["pic"] sku seføli være $_GET["img"]
Avatar billede blach Nybegynder
20. juni 2006 - 21:48 #16
Jeg ser lyset, mange tak for det Smirnoff :)

Nu har jeg kun 1 ønske.. At den forstår:
source("http://www.domæne.dk/billeder/$pic");

eller

source("/billeder/$pic");


Den vil kun forstå source i forhold til hvor scriptet ligger :-/
Avatar billede smirnoff Nybegynder
20. juni 2006 - 21:58 #17
det er en indstilling i php.ini - allow_url_fopen = 1 så med mindre du kører på din egen server skal dit webhotel understøtte det ... det er ude af mine hænder
Avatar billede blach Nybegynder
20. juni 2006 - 22:12 #18
OK...

Er det svært at få scriptet til at forstå gif? Ellers skal jeg jo tjekke på, om det er et gif, og så skal den ikke bruge GDlib...
Avatar billede smirnoff Nybegynder
20. juni 2006 - 22:15 #19
nogle versioner af GDLib understøtter gif - men det gør dit script ikke
Avatar billede blach Nybegynder
20. juni 2006 - 22:18 #20
ok.. du kender ikke til bedre scripts, som også understøtter gif?
Avatar billede smirnoff Nybegynder
20. juni 2006 - 22:22 #21
sorry dude ... længe siden jeg sidste har rodet med php i det hele taget
Avatar billede blach Nybegynder
20. juni 2006 - 22:43 #22
ok ok... :) Kan være jeg kan finde nogen som kan implementere det script der..
Avatar billede smirnoff Nybegynder
20. juni 2006 - 22:45 #23
ok hvis jeg lægger et svar nu ;)
Avatar billede blach Nybegynder
20. juni 2006 - 22:49 #24
Ja... Mange tak for hjælpen i hvert fald!!
Avatar billede smirnoff Nybegynder
20. juni 2006 - 22:59 #25
glad for at kunne hjælpe
Avatar billede blach Nybegynder
21. juni 2006 - 13:50 #26
smirnoff: Den står til "allow_url_fopen = On" i php.ini
Avatar billede smirnoff Nybegynder
21. juni 2006 - 14:04 #27
ok - og der er ingen forskel hvis du skriver:

source("http://www.domæne.dk/billeder/".$pic);

(bemærk concatenering af streng og variable)
Avatar billede blach Nybegynder
21. juni 2006 - 14:19 #28
Tester jeg lige ... Har fået et andet problem :-(

Jeg har et billede der fylder ca. 100.000 Bytes, 1092x1456
Dette billede vil den ikke vise i 250 pixels bredde.
Men den vil gerne hvis jeg sætter bredden til 200 !!

Kan du dreje hvad der er galt?
Avatar billede smirnoff Nybegynder
21. juni 2006 - 14:24 #29
desværre - opret hellere et nyt spørgsmål, så andre også ka begynde at svare på det
Avatar billede blach Nybegynder
21. juni 2006 - 14:24 #30
source("http://www.domæne.dk/billeder/".$pic);

--> dette virker nemlig heller ikke .. Gør det heller ikke med:
source("http://www.domæne.dk/billeder/test.jpg");
Avatar billede blach Nybegynder
21. juni 2006 - 14:33 #31
OK, gør jeg lige... Billeder virker ikke lige i skift mellem 222 og 223 pixels..
Avatar billede blach Nybegynder
21. juni 2006 - 14:39 #32
Avatar billede blach Nybegynder
21. juni 2006 - 16:15 #33
Ved du om der er begrænsninger på GDlib?
Man må i så fald kunne trække fra scriptet om den melder fejl/succes, og bare vise billedet almindeligt hvis der er fejl.
(All returns true on success, otherwise false.)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester