Avatar billede blach Nybegynder
21. juni 2006 - 14:38 Der er 10 kommentarer og
1 løsning

Imageresize problemer med absolutte urls og nogle formater

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

Gør brug af funktionen example.rezise.php:
--script--
    # include the imageresize() and imagethumbnail() classes
    include("class.imageresize.php");

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

    # set source image
    $path = $_GET["pic"];
    $rz->source("../../billeder/$path");

    # width and aspect ratio of image
    if($_GET["ratio"] == '0') {
      $rz->maintain_aspect = 0;
      $rz->new_width = $_GET["width"];
      $rz->new_height = $_GET["height"];
    } else {
      $rz->new_width = $_GET["width"];
    }

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

Det virker fint, men jeg har 2 problemer:

1) source("../../billeder/$path") vil jeg gerne kunne angive som f.eks source("http://domæne.dk/billeder/$path"); eller source("/billeder/$path");
--> Altså en absolut url!

2) Jeg har et billede der fylder ca. 100.000 Bytes, 1092x1456
Dette billede vil den ikke vise i 223 (vil gerne op i 250) pixels bredde.
Men den vil gerne hvis jeg sætter bredden til 222 (eller f.eks. 200) !!
Avatar billede blach Nybegynder
21. juni 2006 - 15:55 #1
Scriptet kan generelt ikke tage større billeder.. Hvad kan jeg gøre ved dette?
Avatar billede Slettet bruger
21. juni 2006 - 21:29 #2
Større billeder - kører du på en hosted server? Så kan det godt skyldes at der ikke er afsat nok hukommelse.

Bredden er formentligt en fejl i funktionen resize(). (formentligt at højden ikke bliver afrundet)

Du skal have øje for, at du arbejder med to stier når du programmerer til web "server stien": /home/mappe1/mappe2
Og "client stien": http://

Du kan finde en fil placering ved hjælp af en række forskellige funktioner og konstanter - prøv med __FILE__ og getcwd() - selv foretrækker jeg at arbejde med to konstanter: _WEBROOT (http:// )og _ROOT (/home/mappe1/mappe2).

Prøv eventuelt dette script: http://www.reginscorner.dk/eng/index.php/PHP_Scripts/Image_Class
Avatar billede blach Nybegynder
21. juni 2006 - 22:46 #3
Du havde ret i det med hukommelsen, som bestemmes i php.ini..
Det gør at billederne kan vises!

Du skriver om 2 former for stier, kan godt følge dig. Vil du mene at jeg til dette script skal bruge server stien, altså /home/ osv?
Avatar billede Slettet bruger
22. juni 2006 - 11:04 #4
Til dette script skal du bruge server stien. Når du så bagefter skal vise billedet i browseren bruger du "client stien". Ideen med _WEBROOT og _ROOT er at:
_WEBROOT.'dir/fil.txt'; //henviser til filen fil.txt for http-requests (browser).
_ROOT.'dir/fil.txt'; //henviser til filen fil.txt internt på serveren.
Avatar billede blach Nybegynder
22. juni 2006 - 14:14 #5
Så hvis jeg skal implementere dette i mit script, bliver det:

$rz->source(_ROOT."billeder/".$path);

(og grunden til at jeg spørger, er at det selvfølgelig ikke virker)
Avatar billede Slettet bruger
22. juni 2006 - 16:41 #6
du skal først sætte _ROOT et andet sted...
define('_ROOT','/home/www/'); //stien til din rod!
Avatar billede blach Nybegynder
26. juni 2006 - 19:53 #7
Det virker :) Tak for hjælpen...

Ved du om det er normalt at bruge thumbnails-script når man viser billederne, eller når de uploades?

Det script du sendte:
http://www.reginscorner.dk/eng/index.php/PHP_Scripts/Image_Class
Er det ikke til at indsætte et vandmærke i billedet?
Avatar billede Slettet bruger
26. juni 2006 - 21:25 #8
Hvis du bruger funktionen tag kan du indsætte et vandmærke.
noget i stil med:
$img = new rgImage();
$img->byStr('sti/til/billede.jpg');
$img->tag('sti/til/tag.jpg');
$img->gif('sti/til/billede-med-vandmaerke.jpg');
//Synes selv det ser skide smukt ud!

Det smarteste er nok at gøre det når billederne bliver oploadet - så bliver serveren kun belastet af det EN gang...

SMider også selv et svar
Avatar billede Slettet bruger
26. juni 2006 - 21:27 #9
$img = new rgImage();
$img->byStr('sti/til/billede.jpg');
$img->tag('sti/til/tag.jpg');
$img->jpeg('sti/til/billede-med-vandmaerke.jpg');
//Virker bedre
Avatar billede blach Nybegynder
26. juni 2006 - 22:06 #10
OK tak! Men hvad så hvis vandmærket skal være i bunden?

Kunne godt bruge en lækker upload hvor man kan tilknytte disse ting.. Har du et link?
Avatar billede Slettet bruger
28. juni 2006 - 17:31 #11
Har desværre ikke noget link...

Tror ikke det er så svært at ændre funktionen tag så du selv kan placere vandmærket...
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