Gemme Thumbnails i MySQL
Jeg har lavet et script, der skulle lave et thumbnail af nogle billeder jeg uploader. Disse thumbnails bliver lavet og jeg kan se at de er iorden.Mit problem opstår blot når jeg vil lagre dem og hente dem igen fra en database.
Billederne bliver fyldte af kompressionsfejl. Masser af forkerte farver og firkantede artifakter.
Jeg gemmer billedet med følgende script:
$dst_img = imagecreate($dst_w,$dst_h);
imagecopyresized(
$dst_img, $src_img,
0, 0, 0, 0,
$dst_w, $dst_h,
$sz[0], $sz[1]
); // resize the image
//dette billede kan vises og ser 100% ok ud
imagejpeg($dst_img, "files/$uniquename.jpg", 70);
ob_start(); // Start capturing stdout.
imageJPEG($dst_img,'', 70); // As though output to browser.
$binaryThumbnail = ob_get_contents(); // the raw jpeg image data.
ob_end_clean(); // Dump the stdout so it does not screw other output.
$binaryThumbnail = addslashes($binaryThumbnail);
query("UPDATE FILES SET THUMBNAIL = '$binaryThumbnail' WHERE ID = $uniquename;");
Og henter det frem ved dette script:
<?php
header("Content-type: image/jpg"); // act as a jpg file to browser
require("functions.php");
$result=query("SELECT * FROM FILES ORDER BY ID DESC;");
$obj = mysql_fetch_object($result);
echo stripslashes($obj->THUMBNAIL); // send to browser, with special chars restored
?>
Hvad gør jeg galt?!?
