Wie bekomme ich ein Bild aus einer mySQL-Datenbank und ändern Sie die Größe Dimensionen mit PHP?
UPDATE: Für alle anderen Fragen über dieses haben, überprüfen Sie heraus den Kommentar zu http://www.php.net/manual/en/function.imagecreatefromstring.php#31178
Ich habe Bilder in einer Datenbanktabelle abgelegt. Sie sind hochgeladen in Ihre ursprünglichen Abmessungen.
Kann ich die Ausgabe das Bild an den browser mit der PHP-Header kein problem (wie "Funktion" getImage.php?imgID=1"), aber ich bin stecken, wenn ich will, um die Größe des Bildes, bevor es an den browser ausgegeben.
Möchte ich nicht schreiben, um eine neue Datei, ich will einfach nur, um ein Bild aus der Datenbank-Tabelle, und ändern Sie die Größe (am besten in der gleichen PHP-Skript).
Sowas wäre perfekt: Funktion " getImage.php?imgID=1&width=75&height=75
Kann mir jemand sagen, wie ich könnte dies in PHP?
$query= "select * from `tablename`.`photos` where `ImageID` = '".$_GET['imgID']."' LIMIT 1";
$downloadResult = SendQuery("browse",$query); //my own custom php function to connect & send a mysql query
if(is_array($downloadResult)){ //check if a row was returned
foreach($downloadResult as $myfile) {
header("Content-Type: ". $myfile['mime']);
header("Content-Length: ". $myfile['size']);
if($d=="true"){
header('Content-Disposition: inline; filename="'. urlencode($myfile['name']).'"');
}
echo $myfile['data'];
}
- Poste den code der
getimage.php
. Auch die Grafik-Bibliotheken hast du auf deinem server installiert? Und die Bild-Formate sind die Bilder? - Sie sollten nicht halten Sie die Bilder in der Datenbank! Halten Sie in Dateien und speichern Ihre Pfade innerhalb der Datenbank. Datenbanken sind nicht gedacht, um Sie für die Dateien! Das ist, was die Filesystem ist!
- Sind Sie nicht die Speicherung von Bildern auf dem server in einem Ordner ?
- Ich habe den code Hinzugefügt.
- * seufz * ich weiß. Aber das ist, was ich habe, um die Arbeit mit jetzt.
- Die Bilder werden nicht gespeichert als Dateien in einem Ordner, sondern als Daten in einer Datenbank-Tabelle.
- Ich fügte hinzu, ein Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laden Sie die image-Daten aus einem binären string (
$myfile['data']
). Alles, was Sie brauchen, ist ein image library/extension, die in der Lage ist zu erstellen ein Bild-Objekt basiert auf einem Binär-string. Zum Beispiel die GD-Bibliothek können laden von Daten aus strings:Können Sie dann alle der sehr vielen Beispiele (einschließlich der Unmengen von Ihnen auf dieser Website bereits) dein Bild verkleinern, um Ihre Bedürfnisse.
Nachdem Sie haben verkleinert Ihr Bild können Sie die Ausgabe an den browser, e.g diese für ein PNG:
Sehen
imagecreatefromstring
Docs. Sie finden es möglicherweise hilfreich, wenn Sie eine Bild-Bibliothek, funktioniert die Größenänderung mit eine einfache Schnittstelle, zum Beispiel Wideimage, die unterstützt das laden aus einem Binär-string als gut. Es ist GD basiert:Ja, so einfach ist das. Siehe:
ist es wirklich möglich in php?
es gibt css-Eigenschaften, wie z.B. max-Breite
können Sie imagemagick, wie diese (ungetestete code):
Was macht Ihr getimage.php Skript im moment tun? Hat es die Anzeige des Bildes aus der Datenbank in eine
HTML
img
tag? Wenn es zeigt das Bild in einerimg
tag dann fügen Sie die Felder fürwidth
undheight
zu denimg
- tag zur Anzeige des Bildes auf die Größe die Sie benötigen.Bitte stellt Bild re Größe mit Erweiterung namens - imagic
Andere nützliche Skript :-
http://net.tutsplus.com/tutorials/php/image-resizing-made-easy-with-php/
http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/
http://shiftingpixel.com/2008/03/03/smart-image-resizer/