【问题标题】:Display Images from raw data on web page在网页上显示来自原始数据的图像
【发布时间】:2014-11-07 00:24:22
【问题描述】:

这个问题可能有一个简单的答案,我可能问错了。

我有一个 Web 应用程序,它通过 API(特别是 librets 和 MLS 提要)从服务器中提取信息。部分 API 以原始二进制数据的形式返回图像。

目前,我正在将此原始二进制数据写入 .jpg 文件并将它们存储在我身边以供以后访问。我想知道是否有一种方法可以使用原始数据在网页上显示这些图像,而不必将它们保存在我身边。

【问题讨论】:

  • raw binary data 是什么意思?从哪里?什么格式?我的意思是JPEG是二进制的?你的意思是第一个字节是左上角的红色像素,第二个是绿色,第三个是蓝色?
  • 基本上我有一个形式为 '\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00\x00\x00\x00\xff\ xe1\x00"Exif\x00\x00MM\x00...' 等。目前我打开一个名为“foo.jpg”的文件写入它,然后将其保存到我身边的资源文件并访问 中的文件src 标签稍后显示在页面上。

标签: image binary jpeg


【解决方案1】:

我同样不确定我的答案是否正确,所以请忽略或说,如果我对您的问题的解释是 in the wrong way 就像您的问题一样,请不要投反对票!

您可以从 PHP 而不是从文件中提供图像 - 我的意思是您可以让 PHP 动态创建图像并提供图像,而不必在您的网络服务器的文件系统中拥有一个文件,并且必须在HTML 中 <image> 标记的 src 字段。

所以,而不是

<image src="....jpg" alt="..." size="...">

你可以使用

<img src="/php/thumb.php?param1=$col&param2=$ref"/>

这会导致在页面呈现时调用位于“/php/thumb.php”的 PHP 脚本。在该脚本中,您可以像这样动态创建图像(如果您愿意,可以使用额外的参数):

<?php    
header("Content-type: image/jpeg");
$p1 = $_GET['param1'];
$p2 = $_GET['param2'];

$src = imagecreatefromstring(SOMESTRING);
$dst = imagecreatetruecolor($width,$height);
imagecopyresampled($dst,$src,0,0,0,0,$width,$height,$size[0],$size[1]);
imagedestroy($src);
imagejpeg($dst);
imagedestroy($dst);
?>

我在前 3 行之后省略了一些代码,所以您只看到技术而不是我的代码的所有血腥细节。您感兴趣的实际线路是:

header(...image/jpeg);

它告诉浏览器即将出现什么类型的东西 - 即图像,以及

imagejpeg();

它实际上将 JPEG 数据流发送到浏览器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多