Avatar billede lemk5 Nybegynder
28. august 2003 - 10:49 Der er 14 kommentarer

hjælp til noget preg eller noget

Hejsa jeg har lavet et forum hvor det er muligt at indsætte billeder ved hjælp af en url til billede syntax. Billedet ligger altså ikke lokalt. Mit problem er nu har jeg gerne vil resize billeder som er over en hvis størrelse i pxl. altås bare i img taggen. Har prøvet noget med noget preg_match og getimgaesize men fungere slet ikke. Kom glad og hjælp mig :D
Avatar billede lemk5 Nybegynder
28. august 2003 - 10:56 #1
forresten har jeg prøvet at bruget table-layou0t:fixed i den table som billedet skal vises i men så bliver billedet bare skåret og ikke resized
Avatar billede detox Nybegynder
28. august 2003 - 14:29 #2
Jeg har rettet lidt kode til. Det er ikke verdens hurtigste løsning, så måske skal du overveje at gemme de genererede thumbs, så du ikke behøver downloade dem hver gang. Eksemplet kræver en mappe der hedder 'thumbs' i samme mappe som det afvikles.

<?
$scr = "Hejsa jeg har lavet et forum hvor det er muligt at indsætte billeder ved hjælp af en http://www.cyprus2000.com/html/cofee.jpg syntax. Billedet ligger altså ikke lokalt. Mit problem er nu  http://members.aol.com/miamimm3/bath.jpg har jeg gerne vil resize billeder som er over en hvis størrelse i pxl. altås bare i img taggen. Har prøvet noget med noget preg_match og getimgaesize men fungere slet ikke. Kom glad og hjælp mig :D ";

preg_match_all("|\[img\](http://[\w+\./]+)\[/img\]|i", $scr, $match);
if ($match[1]) {
    $i=0;
    foreach ($match[1] as $item) {
        $path = explode(".",$item);
        $type = array_pop($path);
        $i++;
        $dest = Thumb($item, "thumbs/thumb".$i.".".$type);
        $rep = "<img src=\"" . $dest . "\" />";
        $scr = preg_replace("|(\[img\](http://[\w+\./]+)\[/img\])|i", $rep, $scr, 1);
       
    }
    echo $scr;
    for ($j=$i;$j>0;$j--) {
        unlink("thumbs/thumb".$j.".".$type);
    }
}

//Thumb
function Thumb($sourcefile, $targetfile) {
$max_width = 40;
$jpegqual = 100;
$picsize=getimagesize("$sourcefile");
$source_x = $picsize[0];
$source_y  = $picsize[1];
$delta = $max_width/$source_x;
$dest_x = round($source_x*$delta);
$dest_y = round($source_y*$delta);
$source_id = imageCreateFromJPEG("$sourcefile");
$target_id=imagecreatetruecolor($dest_x, $dest_y);
$target_pic=imagecopyresampled($target_id,$source_id,
            0,0,0,0, $dest_x,$dest_y, $source_x,$source_y);
imagejpeg ($target_id,"$targetfile",$jpegqual);
return $targetfile;
}//END Thumb
?>
Avatar billede detox Nybegynder
28. august 2003 - 15:07 #3
Hvis du bare vil resize uden at gemme thumbs, kan du bare bruge noget i den her stil:

<?
$scr = "Hejsa jeg har lavet et forum hvor det er muligt at indsætte billeder ved hjælp af en http://www.cyprus2000.com/html/cofee.jpg syntax. Billedet ligger altså ikke lokalt. Mit problem er nu  http://members.aol.com/miamimm3/bath.jpg har jeg gerne vil resize billeder som er over en hvis størrelse i pxl. altås bare i img taggen. Har prøvet noget med noget preg_match og getimgaesize men fungere slet ikke. Kom glad og hjælp mig :D ";

preg_match_all("|\[img\](http://[\w+\./]+)\[/img\]|i", $scr, $match);
if ($match[1]) {
    foreach ($match[1] as $item) {
        $rep = "<img src=\"" . $item . "\" width=\"40\" height=\"30\" />";
        $scr = preg_replace("|(\[img\]http://[\w+\./]+\[/img\])|i", $rep, $scr, 1);
    }
    echo $scr;
}
?>
Avatar billede detox Nybegynder
28. august 2003 - 15:11 #4
Eller bare:

<?
$scr = "Hejsa jeg har lavet et forum hvor det er muligt at indsætte billeder ved hjælp af en http://www.cyprus2000.com/html/cofee.jpg syntax. Billedet ligger altså ikke lokalt. Mit problem er nu  http://members.aol.com/miamimm3/bath.jpg har jeg gerne vil resize billeder som er over en hvis størrelse i pxl. altås bare i img taggen. Har prøvet noget med noget preg_match og getimgaesize men fungere slet ikke. Kom glad og hjælp mig :D ";
    $pattern = "|(\[img\](http://[\w+\./]+)\[/img\])|i";
    $rep = "<img src=\"\\2\" width=\"40\" height=\"30\" />";
    $scr = preg_replace($pattern, $rep, $scr);
    echo $scr;
?>
Avatar billede lemk5 Nybegynder
28. august 2003 - 23:25 #5
ser lovende ud checker det ud imorn har været på job og er helt bombet (detox god humor btw :D)
Avatar billede lemk5 Nybegynder
28. august 2003 - 23:27 #6
ps. ser ud til jeg skal bruge lidt fra jer begge da jeg gerne vil beholde billedets oprindelige størrelses forhold
Avatar billede detox Nybegynder
29. august 2003 - 00:50 #7
Ja, det tænkte jeg nok. Det er lidt en tidsrøver,den der getimagesize(), men prøv det:

<?
$scr = "Hejsa jeg har lavet et forum hvor det er muligt at indsætte billeder ved hjælp af en http://image.pathfinder.com/time/asia/magazine/2002/0805/disney.jpg syntax. Billedet ligger altså ikke lokalt. Mit problem er nu har jeg gerne vil resize billeder som er over en hvis størrelse i http://www.billsims.com/graphics/disney.jpg pxl. altås bare i img taggen. Har prøvet noget med noget preg_match og getimgaesize men fungere slet ikke. Kom glad og hjælp mig :D ";

preg_match_all("|\[img\](http://[\w+\./]+)\[/img\]|i", $scr, $match);
if ($match[1]) {
    foreach ($match[1] as $item) {
        $newsize = Checksize($item);
        $rep = "<img src=\"" . $item . "\" width=\"".$newsize[0]."\" height=\"".$newsize[1]."\" />";
        $scr = preg_replace("|(\[img\]http://[\w+\./]+\[/img\])|i", $rep, $scr, 1);
    }
    echo $scr;
}

function Checksize($item) {
        $wanted_x = 50;
        $picsize=getimagesize($item);
        $source_x = $picsize[0];
        $source_y  = $picsize[1];
        $delta = $wanted_x/$source_x;
        $dest[0] = round($source_x*$delta);
        $dest[1] = round($source_y*$delta);
        return $dest;
}
?>
Avatar billede detox Nybegynder
29. august 2003 - 00:52 #8
PS: 'jer begge'? - LOL
Avatar billede sukos Juniormester
29. august 2003 - 00:54 #9
getimagesize() som tidsrøver?
Avatar billede detox Nybegynder
29. august 2003 - 00:56 #10
sukos -> Ja, det tager betydeligt længere tid når man bruger den ift. med en fast forudbestemt størrelse.
Avatar billede detox Nybegynder
29. august 2003 - 03:23 #11
sukos -> Det er jo billeder der ligger på en anden server. Det er osse derfor jeg foreslår, at gemme de genererede thumbs og en reference til url'en, så man ikke behøver hente det samme billede flere gange.
Avatar billede lemk5 Nybegynder
31. august 2003 - 02:35 #12
tak for besvarelserne detox gav inspiration til noget som nu virker. Men vær lige op mærksom på at adresser med bindestreg (www.hej-hej.dk) https og url uden www ikke fungere.
Avatar billede lemk5 Nybegynder
31. august 2003 - 02:35 #13
+r
Avatar billede detox Nybegynder
31. august 2003 - 02:45 #14
Ja, bindestregen er korrekt. Den ka nu nemt tilføjes. Men url ude www fungerer fint, hvilket eksemplet jo osse illusterer.
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