感谢此处的信息。 我发现这种嵌入非常有用,特别是对于移动设备,尤其是嵌入式图像的css文件被缓存。
为了让生活更轻松,因为我的文件编辑器本身没有处理这个问题,我为笔记本电脑/桌面编辑工作做了几个简单的脚本,在这里分享以防它们对任何其他人都有用。 我坚持使用php,因为它直接和非常好地处理这些事情。
在Windows 8.1下说---
C:\Users\`your user name`\AppData\Roaming\Microsoft\Windows\SendTo
...作为管理员,您可以在路径中建立批处理文件的快捷方式。 该批处理文件将调用php(cli)脚本。
然后,您可以右键单击文件资源管理器中的图像,然后发送到批处理文件。
Ok Admiinstartor请求,并等待黑色命令shell窗口关闭。
然后只需将剪贴板中的结果粘贴到文本编辑器中......
要么
`background-image : url("|")`
以下应适用于其他操作系统。
批处理文件......
rem @echo 0ff
rem Puts 64 encoded version of a file on clipboard
php c:\utils\php\make64Encode.php %1
并且在您的路径中使用php.exe,它会调用php(cli)脚本...
function putClipboard($text){
// Windows 8.1 workaround ...
file_put_contents("output.txt", $text);
exec(" clip < output.txt");
}
// somewhat based on http://perishablepress.com/php-encode-decode-data-urls/
// convert image to dataURL
$img_source = $argv[1]; // image path/name
$img_binary = fread(fopen($img_source, "r"), filesize($img_source));
$img_string = base64_encode($img_binary);
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$dataType = finfo_file($finfo, $img_source);
$build = "data:" . $dataType . ";base64," . $img_string;
putClipboard(trim($build));
?>