php - HTML <img>(或 JS 图像)与通过 PHP 的内联图像(base64_encoded 图像)

标签 php javascript html image

我的网页最初通过在 javascript 中动态创建图像填充了大约 1000 个缩略图。由于权限问题,我迁移到 suPHP。现在不用标准 <img>标签本身

<img src="/foo/bar.jpg" alt="Foo Bar"/>

我正在通过这个 php 脚本进行检索

$file = fread($handle, filesize($filename));

$a = array(
    'type' => 'image/jpeg;base64',
    'image' => base64_encode($file)
);

echo json_encode($a);

然后像这样创建图像(在 xmlhttprequest 回调中,已经创建图像的地方)

image.src = 'data:' + data['type'] + ',' + data['image'];

它可以工作,但我只能可靠地加载一半的图片。如果我尝试加载所有这些,Chrome 会崩溃。我认为这与性能无关,因为图片加载速度非常快。知道为什么会这样吗?

最佳答案

如果您可以调用 PHP 脚本来生成 base64_encoded 图像,那么您应该(?)能够让浏览器从 PHP 脚本加载图像并完全跳过 JSON/AJAX。

<?php
header('Content-Type: image/png'); // Change MIME type for different images (JPEG / GIF)
// Probably need Content-Length header in here too
header('Content-Length: ' . filesize( $filename));

echo file_get_contents( $filename);
exit;
?>

然后使用类似的东西(我使用 image_id 来确定加载哪个图像,你必须有类似的东西):

<img src="/load_image.php?image_id=1234" alt="" />

关于php - HTML <img>(或 JS 图像)与通过 PHP 的内联图像(base64_encoded 图像),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8167231/

相关文章:

php - 用PHP从Mysql数据库获取数据报错

javascript - Ajax 程序在 Chrome 上无法运行

javascript - 从 Javascript 中的 groupedBy 数组中删除并计算重复项

html - 仅将混合模式应用于投影

html - 用于表单的 CSS 网格系统

javascript - onclick 按钮需要在父窗口中打开

PHP 使用 exit()

php - 比较两个相同的字符串在 PHP 中返回 false

javascript - Angular 选择 ng-selected 不起作用(使用 <option ng-repeat>)

javascript - 如何只隐藏没有文字的 anchor ?