Avatar billede hurra Novice
15. december 2005 - 20:48 Der er 4 kommentarer

Redigere et billed fra et blob

Hej folkens

Jeg har lavet en lille side, hvor det skal være muligt at uploade nogle billeder. Billederne bliver gemt i en mysql database.

Jeg kan også hente billederne ud igen, og de ser ud som de nu skal.

Så fik jeg den igen at jeg lige kunne lave en funktion til at lave thumbs af mine billeder, så jeg har lavet det her:

$db = mysql_connect($server, $dbusername, $dbpassword) or die("unable to connect to database server: " . mysql_error());
mysql_select_db($database, $db) or die("unable to select database: " . mysql_error());
$query = mysql_query("SELECT `pic` FROM `products` WHERE `id`='$id'") or die("unable to get image from db: " . mysql_error());
$data = mysql_fetch_array($query);
$org =
if($small)
{
    $width = 200;
    $height = 150;
    $OrgWidth = imagesx($data['pic']);
    $OrgHeight = imagesy($data['pic']);
    if( ($OrgWidth/$width) < ($OrgHeight/$height) )
        $width = $height*$OrgWidth/$OrgHeight;
    else
        $height = $width*$OrgHeight/$OrgWidth;
       
    $thumb=ImageCreate($width, $height);
    ImageCopyResized($thumb,$data['pic'],0,0,0,0,$width,$height,ImageSX($data['pic']),ImageSY($data['pic']));
    echo $thumb;
}
else echo $data['pic'];

Hvis ikke $small er sat, kommer billedet i fuld størrelse fint frem. Men hvis jeg sætter $small får jeg følgende fejl:
Warning: imagesx(): supplied argument is not a valid Image resource in /var/www/html/butik/prodimg.php on line 16
plus en del flere som jo kommer som følger af denne fejl.

Hvad gør jeg galt? Jeg har godt en ide om at når jeg henter billedet ud fra bloben, er det bare en text streng, så det jeg mangler er at få lavet et nyt billed, og lade scriptet vide at de data der skal være i det billedet svarer til det der er i bloben/text stringen.

Som en anden ting, burde jeg ikke sende noget header info om hvad det er for et type billed jeg er ved at sende? Kan jeg evt gemme den header i bloben så jeg har en måde at se om det er png eller jpeg jeg har gemt der i (andet end også at gemme filnavnet i databasen)?
Avatar billede hurra Novice
15. december 2005 - 20:50 #1
hov, den linie hvor der står "$Org =" skulle ikke liege ha været med :)
Avatar billede hurra Novice
15. december 2005 - 20:54 #2
Den her linie her er et hit, den svarer på den sidste del af mit spørgsmål:
header("Content-type: image/jpeg");

den skal være der hvor "$Org = " ikke skal være :)
Avatar billede brego Nybegynder
15. december 2005 - 21:05 #3
Så vidt jeg ved, når du trækker et BLOB fra MySQL bliver den ikke konverteret til typen resource for PHP - dvs at du giver funktionen imagesx() en kæmpe string istedet for ressource den skal bruge. Det prøv eventuelt at kigge på funktionen imagecreatefromstring()[1] - og en af komentarerne til funktionen[2].

[1] http://dk2.php.net/manual/en/function.imagecreatefromstring.php
[2] http://dk2.php.net/manual/en/function.imagecreatefromstring.php#31178
Avatar billede hurra Novice
15. december 2005 - 21:53 #4
Det er lige før det virker nu. Jeg har prøvet at lave det med en jpeg, og det virker ikke. Så prøvede jeg lige med et png, bare om der kunne være noget der, og det virker perfekt.
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