Frage

Ich habe eine Datenbank, in der Bilder in einem Feld MySQL Blob gespeichert sind. Ich habe ein Skript eingerichtet, das die Bilder basierend auf einer ID in der URL auswählt und anzeigt, und ich habe es auch gemacht, wenn Sie anhängen? Größe = 800 x 600, würde es das Bild (in diesem Fall auf 800 x 600) ändern.

Der Host, den ich benutze, hat Imagemagick nicht installiert und lässt mich es nicht selbst machen. Daher muss ich die GD -Bibliothek von PHP verwenden, um das Bild zu ändern.
Aber ich habe noch keine Funktion wie Imagicks gefunden readImageBlob(), Also kann ich die binäre Zeichenfolge, die ich aus der Datenbank bekomme, nicht bearbeiten, ohne zuerst eine temporäre Datei zu erstellen, sie zu bearbeiten, die binäre Zeichenfolge davon abzuholen, sie an den Browser zu senden und sie dann zu löschen (was zu viele Schritte ist Zumal dies ein paar tausend Treffer erzielt, wenn es in die Produktion geht).

Meine Frage ist also, gibt es eine Möglichkeit, sich zu replizieren readImageBlob Mit der GD von PHP, ohne die temporäre Dateilösung zu durchlaufen?

War es hilfreich?

Lösung

ImageCreateFromString () sollte den Trick machen. Ich denke, das Funktionsbeispiel im Handbuch ist fast genau das, was Sie brauchen:

$im = imagecreatefromstring($data);
if ($im !== false) {
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);
}
else {
    echo 'An error occurred.';
}

Wo $data ist Ihre binäre Datenzeichenfolge aus der Datenbank.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top