Co mam zastąpić/* co tu jest? */w jaki sposób zostaną wyświetlone moje dane obrazu?
Podświetlona lokalizacja to tak zwany atrybut src
z img
HTML-tagDocs. Wartość to tak zwana URIDocs.
W twoim przypadku chcesz, aby identyfikator URI wskazywał dane zdjęcie. Nie określono, który typ obrazu powinien być wyprowadzany jako, więc założę, że jest to obraz PNG w poniższym przykładzie.
Konieczne jest teraz przekształcenie danych obrazu w URI. Najbardziej prosta URI aby utworzyć z danych obrazu jest tzw data:
URIWikipedia:
<?PHP
//
//... stuff here
//
$im = imagecreatefromstring($imageData);
ob_start();
imagepng($img);
$png = ob_get_clean();
$uri = "data:image/png;base64," . base64_encode($png);
echo "<img src=" . $uri /* URI goes here */ . "alt=\"the image\" />";
//
// more stuff here
//
?>
Nawet ta jest najbardziej prosty sposób do przodu, to nie zawsze jest zalecane, aby to zrobić, ponieważ dane obrazu zostaną zwrócone z HTML do przeglądarki. Jeśli obraz jest duży, jest to zwykle uważane za narzut.
Zamiast korzystać z identyfikatora URI data:
można umieścić tam również dowolny inny identyfikator URI, na przykład identyfikator URI HTTP, który wskazuje skrypt PHP na serwerze, który zwraca obraz. Taki skrypt może być bardzo prosty:
<?php
$img = imagecreatefromstring($string);
header('Content-type: image/png');
imagepng($img);
Jest to porównywalne z tym, co Marc B suggested, see his answer as well.
Dziękujemy! Wymagało to buforowania wyjściowego; Chciałbym dać ci +5! – veeTrain