Решением для встраивания изображения непосредственно в HTML-страницу является использование схемы URI данных
Например, вы можете использовать некоторую часть HTML, которая выглядит следующим образом:
<img src="data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGP
C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IA
AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J
REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq
ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0
vr4MkhoXe0rZigAAAABJRU5ErkJggg==" alt="Red dot" />
На странице википедии, на которую я ссылаюсь, есть и другие решения:
- включая изображение как правило CSS
- Использование некоторого Javascript.
Но учтите, что эти решения не будут работать во всех браузерах - вы сами решаете, приемлемо это или нет, в вашей конкретной ситуации.
Редактировать: чтобы ответить на вопрос, который вы задали о "Как правильно генерировать URL-адреса данных с помощью PHP" , посмотрите немного ниже на странице википедии о схеме URI данных , что дает эту часть кода (цитирование) :
function data_uri($file, $mime)
{
$contents = file_get_contents($file);
$base64 = base64_encode($contents);
return ('data:' . $mime . ';base64,' . $base64);
}
?>
<img src="<?php echo data_uri('elephant.png','image/png'); ?>" alt="An elephant" />