27. januar 2004 - 21:13Der er
8 kommentarer og 1 løsning
Manipulering af billede i MySQL vha. PHP/GD
Den her er vist lidt svær:
Jeg har lavet et script, der efter upload af et billede til en fil, automatisk genererer en thumbnail og gemmer den med et nyt filnavn med forstavelsen thumb_:
Nu har jeg valgt i stedet at have billeder gemt i en tabel i MySQL, men jeg vil stadig gerne bruge image-funktionerne fra GD-biblioteket til at generere en thumbnail.
Billedet ligger i tabellen PICTURE i feltet DATA, som er longblob.
Og scriptet show_picture.php?pictureid=2 viser f.eks. billede nr. 2
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Ved at trække billed-data ud og sende det direkte til ImageCreateFromString($data) får jeg istedet denne: Warning: imagecreatefromstring: Passed data is not in 'WBMP' format Det skal siges at billedet netop er i jpeg.
detox; imageCreateFromString virkede, da jeg fik kigget lidt nærmere på den linket og kommentaren, og iøvrigt fik henvist til de rigtige data i min tabel! Så det må jo betyde points til dig, hvis du giver et svar.
Jeg gik videre og fik thumbnailen lagt ind i tabellen (feltet thumb_data). Hele scriptet der nu sådan ud:
$q=mysql_query("SELECT * FROM picture WHERE pictureid=$pictureid"); $r = mysql_fetch_array($q);
$im =imageCreateFromString($r[data]);
$width=imagesx($im); $height=imagesy($im); $thumb = @imageCreate(100,100); imageCopyResized ($thumb, $im, 0, 0, 0, 0, 100, 100, imagesx($im), imagesy($im)); ob_start(); // output to buffer Imagejpeg($thumb); // write jpeg data as string (to buffer) $th = mysql_escape_string(ob_get_contents()); // get buffer content ob_end_clean(); // cleanup buffer $q=mysql_query("UPDATE picture SET thumb_data='$th' WHERE pictureid=$pictureid"); imageDestroy($im); imageDestroy($thumb);
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.